以前Google決済のサーバー側認証についての記事を転送しましたが、今日は以前調べたサーバー側の注文決済認証コード(PHP版)を投稿して皆さんと共有しました
サーバー側のトランザクション認証を行う前に、 Google API にアクセスする必要があります。コンソール バックエンド https://console.developers.google.com は、Google Play 開発者 API を開き、リクエスト API 証明書 priket.p12 ファイルを取得します。
トランザクション ステータス API 公式ドキュメント: https:// Developers.google.com/android-publisher/api-ref/purchases/products/get
Google の PHP バージョンの公式 SDK パッケージをダウンロードすると、コードは次のようになります:
リクエスト注文トランザクション ステータス コード
<?phprequire_once 'Google/Client.php';require_once 'Google/Service/AndroidPublisher.php';//include 'Google/Auth/AssertionCredentials.php';try{$client = new Google_Client();$key_file_location = 'prikey.p12';$key = file_get_contents($key_file_location);$service_account_name = 'xxxxxxxxxxxx-t1280g9vsd7465aprh0xxxxxxxxxxx@developer.gserviceaccount.com';$cred = new Google_Auth_AssertionCredentials( // Replace this with the email address from the client. $service_account_name, // Replace this with the scopes you are requesting. array('https://www.googleapis.com/auth/androidpublisher'), $key);$client->setAssertionCredentials($cred);$service = new Google_Service_AndroidPublisher( $client );$packageName='com.xxxx.xxxx';$productId='9419';$token = 'omoaokhfkmiipfffmemjaclh.AO-J1OyFcurjPmcY4J5MFMYvW5z6jq-X9SrpZCo93etscPe0SzDItMnAY50RLWLwOEYl71HQEBXG8fREgJp-EVZTOwkG8uHuKf3UPlx0u8rwK7Qw4bRE9SI';$optps=array();$resp = $service->purchases_products->get( $packageName, $productId, $token, $optps );$resp = (array)$resp;var_dump($resp);}catch(Exception $e){ echo $e->getCode(),'|',$e->getMessage();}?>
正常であれば、API はそれに応じてリクエストに応答します。 対応するフィールドの説明については、公式ドキュメントを参照してください: https://developers。 google.com/android-publisher/api-ref/purchases/products#resource
consumptionState: 商品の消費ステータス、0 はまだ消費されていないことを意味し、1 テーブルは消費されました (Google は同じ商品の繰り返し購入を許可していないためです)消費されていません)
purchaseState: 購入ステータス、1 は購入済みを表し、0 はキャンセルを表します
注: この API には Google プラットフォームの呼び出しに 20w/日の制限があるようです