アンドロイドでのアプリ内課金(購入確認、jsonストリング)

私は支払いをコーディングする際に問題があります。

これはウェブゲームであり、支払い方法についてはこちらをご覧ください。

あなたはサイトに行ってボタンをクリックする(購入する)。買い物の情報をサーバーに送信して、購入した商品をアカウントに追加するサイトにリダイレクトされます。その前にすべてのURLをチェックするWebViewClientがあります。購入のためのURLが見つかった場合、購入依頼を送信します。今我々はそれが成功したアンドロイド市場からメッセージを返す場合は、リダイレクトを続行します。

私はこれについて全く新しく、これらの支払いのコンセプトを理解することはできません。私はダンジョンの例を使って自分のコードを書いた。私は自分のニーズに合わせて調整しようとしました。私は誰かが正しい方向に私を指すことができることに感謝します。
Atm私は成功した購入の応答を得る方法を理解しようとしています。私のコードの残りの部分が正常であると仮定すると、それはうまくいくはずです(私が望む)。

私は私のプロジェクトBillingReciver.java、BillingSerivce.java、PurchaseObserver.java、ResponseHandler.java、Consts.java、およびSecurity.javaを例に挙げています。必要があれば、私はこれらのコードをプロビジョニングすることができますが、それがたくさんあるので、すでに例を見た人が助けてくれることを願っています。


いくつかの研究とコンサルティングの後、私は必要なものを見つけました。

     /**
     * This is called when Android Market sends information about a purchase state
     * change. The signedData parameter is a plaintext JSON string that is
     * signed by the server with the developer's private key. The signature
     * for the signed data is passed in the signature parameter.
     * @param context the context
     * @param signedData the (unencrypted) JSON string
     * @param signature the signature for the signedData
     */
    private void purchaseStateChanged(Context context, String signedData, String signature) {
        Intent intent = new Intent(Consts.ACTION_PURCHASE_STATE_CHANGED);
        intent.setClass(context, BillingService.class);
        intent.putExtra(Consts.INAPP_SIGNED_DATA, signedData);
        intent.putExtra(Consts.INAPP_SIGNATURE, signature);
        context.startService(intent);
       }

私のアプリケーションがアンドロイドマーケットから得るJSON文字列からデータを取得する必要があります。誰でもそれをどうやって考えているのですか?

ベストアンサー

11月17日21時21分@Grzegorz ‘Gatz’ Siennickiは次のように書いています:

私のアプリケーションが取得するJSON文字列からデータを取得する必要があります
  アンドロイドマーケットから。誰でもそれをどうやって考えているのですか?

サンプルの Security.java モジュールの
verifyPurchase()メソッドを見てください:

JSONObject jElement = jTransactionsArray.getJSONObject(i);
int response = jElement.getInt("purchaseState");
PurchaseState purchaseState = PurchaseState.valueOf(response);
String productId = jElement.getString("productId");
String packageName = jElement.getString("packageName");
long purchaseTime = jElement.getLong("purchaseTime");
String orderId = jElement.optString("orderId", "");
String notifyId = null;
if (jElement.has("notificationId")) {
  notifyId = jElement.getString("notificationId");
}
String developerPayload = jElement.optString("developerPayload", null);

JSONはAndroidマーケットによって生成されるため、
JSONObject.getXXX()メソッドのフィールド名を指定するconst-stringは「ハードコード」されています(つまり、あなたが欲しいものならなんでも)。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です