ホームページ >バックエンド開発 >PHPチュートリアル >Google 決済サーバーの注文確認 PHP コード

Google 決済サーバーの注文確認 PHP コード

WBOY
WBOYオリジナル
2016-06-23 13:37:214103ブラウズ

以前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 パッケージをダウンロードすると、コードは次のようになります:


各支払いが成功した後、クライアントは、請求コールバック メソッドを呼び出してトランザクションのステータスを取得します。購入トークンと productId (Google アプリケーション アプリのバックグラウンドで設定された支払い製品のカスタム マーク) が存在します

リクエスト注文トランザクション ステータス コード

<?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 は同じ商品の繰り返し購入を許可していないためです)消費されていません)


developerPayload: これは、開発者によってカスタマイズされ、透過的に送信されるため、一般に、独自のシステムの注文番号などのトランザクションに固有であり、比較に使用できます。


purchaseState: 購入ステータス、1 は購入済みを表し、0 はキャンセルを表します



注: この API には Google プラットフォームの呼び出しに 20w/日の制限があるようです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。