0

アプリ内課金 v3 を実装しましたが、3 つの列を含むある種のテーブルを保持する方法が必要です

(文字列) 製品名、(文字列) SKU、(ブール値) true/false

これを行う最善の方法は何ですか?(私の意見では) 最善の方法は、最初の 2 つが文字列で、3 つ目がブール値である静的で読みやすい値のリストを保持できるようにすることです。最初はブール列のすべての値が false でしたが、購入を照会すると、値を簡単にリセットできます。

追加するだけで、

私が SQLite データベースに反対しているのは、ハッキングが簡単すぎるという理由からです。コードで作成したいので、配列リストまたは行列内の ArrayList または次のようなものの間で議論しています。

private static class CatalogEntry {
    public String sku;
    public String name;

    public CatalogEntry(String sku, String name) {
        this.sku = sku;
        this.name = name;
    }
}

private static final CatalogEntry[] CATALOG = new CatalogEntry[] {

new CatalogEntry("android.test.purchased", "Item1"),
        new CatalogEntry("android.test.canceled", "Item2"),
        new CatalogEntry("android.test.refunded", "Item3"),
        new CatalogEntry("android.test.item_unavailable", "Item4")

};

3 番目の列を追加した場合、CATALOG 配列の値をリセットする方法はありますか。それ以外の場合は、それと標準の配列リストの両方を使用することを検討しています。

4

1 に答える 1

0

4つの列でsqliteを使用します。

  • sku
  • 名前
  • PurchaseDate(または購入していない場合はnull)
  • md5Hash

購入が行われると、sku、name、purchaseDate、device-id、およびPSKを連結し、md5Hashを作成して、他のデータと一緒に行に保存します。テーブルの内容を確認するときは、保存されているmd5をデータと比較し、購入が有効であったか、テーブルが改ざんされているかを確認できます。ユーザーに購入テーブルをSDカードにバックアップさせることもできます(またはAndroidバックアップを使用することもできます)。

于 2012-12-15T05:49:29.710 に答える