1

アプリ内購入の使用に関するいくつかのチュートリアルに従いましたが、これですべて機能しました。しかし、この例の場合に安全に使用することは可能ですか:

アプリは無料でダウンロードでき、チャット機能もあります。1 日あたり 100 件のメッセージを送信できます。このアプリは、年間 x の追加メッセージを送信できます。

ここでの問題は、ユーザーが何かを購入したことをサーバーがどのように知るかということです。これを使用して確認する Google サービスはありますか? アプリがサーバーにメッセージを送信できるようにすることで、「ねえ、これを買ったばかりです」は間違っているようです。

4

3 に答える 3

1

IAP の一部として、Google から通知を受け取るには BroadcastReceiver が必要です。通知の 1 つは com.android.vending.billing.PURCHASE_STATE_CHANGED です。その通知には、データ ブロックと署名が含まれます。両方を正確にサーバーに送信します。Google Play は、サーバー上のデータ ブロックの署名を検証するために使用できる公開鍵を提供します (php では、openssl_verify が機能します)。サーバー上のデータを確認したら、データ ブロック (json) を解析して、ユーザーが何を購入したかを示す製品 ID を含む注文のリストを取得できます。そこから、サーバーに対して検証するために、独自のプロトコルにデバイス/ユーザー/契約識別子を含める必要があります。あなたの計画についてもっと知らなければ、その部分についての提案をするのは難しい.

于 2013-03-07T16:42:25.417 に答える
0

このメソッドでは、トランザクションの応答を取得します。

@Override
    public void onRequestPurchaseResponse(RequestPurchase request,
            ResponseCode responseCode) {

responseCode が RESULT_OK の場合は、トランザクションが成功したことを意味します。

このリンクを参照できます。

于 2013-03-07T11:47:37.263 に答える
0

サービスから受信した購入に関する情報をサーバーに中継できます。

使用できますopenssl_verify ($data, $signature, $key)

データと署名は、サービスから取得した結果に含まれています。キーは、開発者コンソールで見つけることができる公開 RSA キーです。

于 2013-10-10T09:38:51.250 に答える