サーバ側でのGoogle Play In-app Billing 購入チェック

6,220 views
Skip to first unread message

hattony

unread,
Aug 22, 2013, 3:28:09 AM8/22/13
to android-g...@googlegroups.com
こんにちは。
服部と申します。

サーバ側の質問となります。
Google Play In-app Billingを用いてクライアントで行われた課金アイテム購入をサーバ側で検証しようとしています。

ドキュメントを読んだところ Purchase Status API ( https://developer.android.com/google/play/billing/gp-purchase-status-api.html )
を用いて購入(レシート)の検証/確認ができるとのことでした。
そこで In-app billingのライブラリに付属されているTrivial Driveサンプルアプリを用いてクライアント側で課金アイテムの購入を行い、Google の APIs explorer ( https://developers.google.com/apis-explorer/#p/androidpublisher/v1.1/ ) というWebアプリで購入履歴の確認に成功しました。

実際にはサーバ側のコードでは購入の確認にウェブアプリであるAPIs explorer を用いるわけではないので、 Google APIs Client Library for PHP を使用して実装しました。
-----------------
....
$publisher = new Google_AndroidpublisherService($client);
$publisher->inapppurchases->get($packageName, $productId, $purchaseToken);
-----------------
しかし購入履歴の取得メソッド(getメソッド)をコールすると This developer account does not own the application. というエラーが発生します。
(OAuth2 のログインには成功しているようです。)

そこで質問なのですが、Google APIs Client Library (PHPに限らず) を用いてIn-app billingの購入履歴の確認ができた方はおられますでしょうか?
またその確認に用いたユーザのクライアントIDのアプリケーションタイプ は web application でしょうか、それとも service account でしょうか?

ちなみに私は service account を使用しているのですが、ウェブで調査したところ service account ではダメだと記載しているページもあったのですが Google 公式の回答ではなく情報が本当かどうかも分かりません・・・。 ( http://milancermak.wordpress.com/2012/08/24/server-side-verification-of-google-play-subsc/ )

何か少しでも情報があればご教授頂けないでしょうか。
以上、どうぞ宜しくお願いいたします。

服部











Hirokazu Fukami

unread,
Aug 22, 2013, 3:34:32 AM8/22/13
to android-g...@googlegroups.com
こんにちはfkmです。

ちょっと前に自分でブログに書いてました。
わたしが使っているのは定期購入の確認APIですが、
レシートの確認も同じ手順でいけると思います。
http://d.hatena.ne.jp/fkm/20130504

Application typeはWeb applicationにすること.
と3ヶ月ちょい前のfkmが言ってるので、
Web applicationでクライアントIDを作ればよさそうです


2013/8/22 hattony <wolfg...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

Hiroaki GOTO as GORRY

unread,
Aug 22, 2013, 4:45:43 AM8/22/13
to android-g...@googlegroups.com

後藤 浩昭(GORRY)です。

fkm氏の記事をもとに手許で動作を確認済みです。
この例では最後に「subscriptionの有効期限を取得する」となっていますが、
代わりに以下のようにすることで購入履歴を取得できます。

curl -v -X GET 'https://www.googleapis.com/androidpublisher/v1.1/applications/<アプリのパッケージ名>/inapp/<アイテムID>/purchases/<購入時にアプリが取得したpurchaseToken>?access_token=<取得したaccess_token>'


In message <CAN8EOVs6kJNLNp=TtzB3n=dhaBDVLjs7L9_f2Ayq=NEdt...@mail.gmail.com>
"Re: [android-group-japan: 24098] サーバ側でのGoogle Play In-app Billing 購入チェック"
Hiroaki GOTO as "GORRY" : 後藤 浩昭
EMAIL: gorr...@gmail.com

wolfgang

unread,
Aug 25, 2013, 10:47:26 PM8/25/13
to android-g...@googlegroups.com
こんにちは、fkmさま。

ブログを拝見させていただきました。
同じように試したところ課金の確認ができました。
やはり service account ではダメみたいですね・・・。

ありがとうございました!



2013/8/22 Hirokazu Fukami <fkm...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages