2017-02-01 3 views
0

アプリでGoogleの定期購読を使用したいと考えています。
現在、私はクライアントで購読状況を購入して確認することができます。 phpバックエンドでサブスクリプションステータスを確認する方法はありますか?我々が持っているバックエンドで
バックエンドでgoogle androidサブスクリプションステータスを確認してください


  • パブリックライセンスキー
  • 製品ID(SKU)
  • 購入トークン

答えて

1

はい。あなたのサーバー(あなたの場合はPHP)から購入トークンの要求をプレイストアAPIに送信することで、購読状況を確認することができます。サーバーの応答のexpiryTimeMillisフィールドを確認し、購入が期限切れになっているかどうかを確認できます。 はまた、この答えをチェック - https://stackoverflow.com/a/34005001/4250161

をここでは、購入を取得する方法の例であるPHPで日付を期限切れ:

$ch = curl_init(); 
$TOKEN_URL = "https://accounts.google.com/o/oauth2/token"; 
$VALIDATE_URL = "https://www.googleapis.com/androidpublisher/v2/applications/". 
    $appid."/purchases/subscriptions/". 
    $productID."/tokens/".$purchaseToken; 

$input_fields = 'refresh_token='.$refreshToken. 
    '&client_secret='.$clientSecret. 
    '&client_id='.$clientID. 
    '&redirect_uri='.$redirectUri. 
    '&grant_type=refresh_token'; 

//Request to google oauth for authentication 
curl_setopt($ch, CURLOPT_URL, $TOKEN_URL); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $input_fields); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch); 
$result = json_decode($result, true); 

if (!$result || !$result["access_token"]) { 
//error 
return; 
} 

//request to play store with the access token from the authentication request 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,$VALIDATE_URL."?access_token=".$result["access_token"]); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch); 
$result = json_decode($result, true); 

if (!$result || $result["error"] != null) { 
    //error 
    return; 
} 

$expireTime = date('Y-m-d H:i:s', $result["expiryTimeMillis"]/1000. - date("Z")); 
//You get the purchase expire time, for example 2017-02-22 09:16:42 

+0

を参照してください。ここで重要な問題は、oauth2認証を渡す方法です。 php api-client-libraryの仕様には、0​​'2と書かれています。許可APIアクセス(OAuth 2.0) これらのAPI呼び出しはプライベートユーザーデータにアクセスします。それらを呼び出すには、プライベートデータにアクセスできるユーザーがアプリケーションにアクセスできるようにする必要があります。したがって、アプリケーションを認証し、アプリケーションにアクセス権を付与し、そのアクセスを許可する必要があります。 ユーザが自分のユーザデータにアクセスする方法を私たちのサーバに与える方法がわかりません私はクライアントから何かを呼び出さなければならないのですか? – undefined

+0

https://developers.google.com/api-client-library/php/start/get_startedから引用しています。 – little

+0

https://developers.google.com/api-client-library/php/start/get_startedから引用しています。 refreshToken、clientId、およびclientSecretは定数であり、ユーザー固有のものではありません。あなたはそれらを一度入手する必要があります。用語はちょっと混乱します。そのドキュメントでは、クライアントは実際にはサーバーです。つまり、OAuthを照会するクライアントです。あなたのアプリケーションについて話しているわけではありません。 – little

関連する問題