質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

2738閲覧

Google Play Developer API のPurchases.subscriptions: deferで 500 InternalServerError

Yith

総合スコア16

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/06/15 07:13

編集2017/06/15 07:20

GooglePlayの定期購入に対し、サーバー側から期限の延期をおこなおうと思い、PHPにて以下のように実装してみましたところ、Google_Service_Exceptionが発生し、{ "error": { "code": 500, "message": null }}といった結果が返るのみで、希望の期限延期ができない状態です。

PHP

1$client = new Google_Client(); 2$client->setApplicationName("AppName"); 3putenv('GOOGLE_APPLICATION_CREDENTIALS=GooglePlayAndroidDeveloper-xxxxxxxxxxxx.json'); 4$client->useApplicationDefaultCredentials(); 5$client->addScope('https://www.googleapis.com/auth/androidpublisher'); 6 7$service = new Google_Service_AndroidPublisher($client); 8 9//現在の有効期限を取得 10//($purchase_tokenはDBに保存したトークンをセット) 11$data = $service->purchases_subscriptions->get('com.package.name','SKU_ID001', $purchase_token); 12$currentExpiryTimeMillis = $data->expiryTimeMillis; 13 14//4日延長 15$addMillis = 60 * 60 * 24 * 4 * 1000; 16$desiredExpiryTimeMillis = $currentExpiryTimeMillis + $addMillis; 17 18//リクエスト用のPostDataを用意 19$defer_data = new Google_Service_AndroidPublisher_SubscriptionDeferralInfo(); 20$defer_data->setExpectedExpiryTimeMillis($currentExpiryTimeMillis); 21$defer_data->setDesiredExpiryTimeMillis($desiredExpiryTimeMillis); 22$defer_request = new Google_Service_AndroidPublisher_SubscriptionPurchasesDeferRequest(); 23$defer_request->setDeferralInfo($defer_data); 24 25//リクエスト発行 26$service->purchases_subscriptions->defer('com.package.name','SKU_ID001', $purchase_token,$defer_request);// <=Exceptionが発生 27

アルファ版としてGooglePlayDeveloperにアップロードしたAppにて定期購入を行っております。

GET、CANCEL、REVOKEは期待通りに動作したのですが、DEFERに関しては、テスト購入(0円/日)、実費購入(xxx円/月)のどちらに対してもエラーとなりましたが、原因がわからず行き詰っております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問