web-dev-qa-db-ja.com

サーバー側でAndroidアプリ内課金の領収書を確認するにはどうすればよいですか?

Androidゲームにアプリ内課金を実装していますが、サーバーを使用して購入情報を保存したいと考えています。

これまでに理解したことによると、Androidマーケットは、購入ステータスについてブロードキャストレシーバーの形式でアプリにコールバックを返します。しかし、サーバー上でトランザクション情報を永続化しているため、私のアプリはいくつかのhttp post要求を行い、サーバーを更新する必要があります。このhttp postリクエストは、ハッカーによって手動で模倣される可能性が非常に高いです。サーバーコードからそのAndroidマーケットレシート情報を検証するにはどうすればよいですか?

サーバーへのGoogleチェックアウトコールバックはありますか?または、httpクライアントによって提供されたIAB応答が本物であり、それが私のアプリでのみ行われた購入であることを検証する方法はありますか?

Apple IOS IAPプロセスでは、 (検証Web APIがある @ https://sandbox.iTunes.Apple.com/verifyReceipt for合格できます

req.method = URLRequestMethod.POST;
req.data = "{\"receipt-data\" : \""+ t.receipt +"\"}";

そしてそれは領収書が適切であるかどうかを言います。 Androidにそのようなものはありますか?

30
Gopinath

Update:デベロッパーのドキュメントで説明されているように、getPurchases()メソッドを使用して、「未使用」の購入を取得できます。
http://developer.Android.com/google/play/billing/billing_reference.html#getPurchases

元の回答(現在は古い)

Google Checkout APIは廃止されました。ここで、購入ステータスAPIを使用する必要があります。

Purchase Status APIの使用を計画している場合、上記のリンクはこれらの制限について言及しています。

  • APIを使用して個々のアイテムのステータスのみを確認できます。現時点では、注文ステータスの一括リクエストはサポートされていません。
  • 2013年6月12日以降に行われた注文の詳細をクエリできますが、それ以前に行われた注文はクエリできません。
  • アプリ内課金v3 APIで行われたアイテムタイプの購入、またはアプリ内課金v1とv2で行われた管理対象アイテムの購入をクエリできます。 Purchase Status APIを使用して、アプリ内課金v1またはv2で行われた非管理アイテムの購入をクエリすることはできません。
23
Dan J

編集:この答えは時代遅れです、ダンJの答えを見てください。

コールバックはありませんが、Google CheckoutにはAPIがあります。あなたの答えは ここ です。

3
Seva Alekseyev

これは古い投稿ですが、私は他の人を助けたいと思います。

サーバー側からの購入を検証する方法があります。このREST APIを使用する必要があります。

https://developers.google.com/Android-publisher/api-ref/purchases/products/get