デジタル グッズ用の Google ウォレットが機能しなくなりました
-
21-12-2019 - |
質問
私たちはデジタル商品用の Google ウォレットを php アプリと統合しようとしていますが、2 日前の 11 月 15 日になんとか機能させることができました。しかし、翌日、そして今日も再度確認すると、コードは同じままであり、その中の文字を変更していないにもかかわらず、まだ機能しておらず、次のエラーが表示されます。
ええとああ。問題が発生しました。
技術的な問題のため、購入を完了できませんでした。
問題の詳細は以下の通りです。残念ながら、販売者のサーバーであなたの購入を確認できませんでした。ご注文はキャンセルされました。この問題が続く場合は、販売者にお問い合わせください。
私たちが使用しているコードは次のとおりです。
$response = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : file_get_contents("php://input");
$response = substr_replace($response, "", 0, 4); //remove "
$response = JWT::decode($response, $sellerSecretKey);
header("HTTP/1.1 200 OK");
そして、私が言ったように、2日前には正常に動作していましたが、ログファイルには次の応答が出力されているため、現在も正常に動作していると感じています
stdclass object([iss] => google [request] => stdclass object([name] => product 1」。[説明] => あなたは当店から合計 1 個の商品を購入しています。ありがとう。価格] => 9.99 [CurrencyCode] => USD [SellerData] =>クライアント名、メールアドレス)
[response] => stdClass Object
(
[orderId] => GWDG_S.c7a66f5b-4674-43f0-be16-2b72f69a7445
)
[typ] => google/payments/inapp/item/v1/postback/buy
[aud] => 03083876603093172875
[iat] => 1384689627
[exp] => 1384689647
)
ポストバック URL は正しく指定されており、テストにはサンドボックスを使用しています。
これはGoogle側の問題なのでしょうか?彼らはソフトウェアか何かを開発していて、それが問題の原因なのでしょうか?それともここで何か間違ったことをしているのでしょうか?
ご協力いただければ幸いです。ありがとう。
解決
コメントしようと思ったのですが、収まりません…
そのエラーはあなたの中の何かを示しています ポストバックハンドラー. 。サンドボックスを試してみましたが、問題ないようです。
私は ない php 開発者なので、これは不正確かもしれません - ポストバックに応答していますか? orderId
?繰り返しますが、これは上記のコードを私が読んだことに基づいているだけです( 考える http 200 しか見えない?)
他に考えられる唯一のことは、応答までのタイムラグが 10 秒以上 (?) あるということです。 理由を説明できるかもしれない 別の理由かもしれない データは記録されていますが、 グーグル まだ それをキャンセルした。
*取り消し線 文章:Google がデータを送信するため、ログに記録するデータを取得できます。重要なのは、適切に応答するかどうかです。
販売者の秘密を使用して JWT をデコードしたら、ケーキの購入が正常であることを確認して記録できます。 10秒以内 ポストバックを受信すると、サーバーは 200 OK 応答を送信する必要があります。 唯一の内容は「orderId」フィールドの値です. 。そうでない場合、Google は取引をキャンセルします。
参照: https://developers.google.com/commerce/wallet/digital/docs/postback#responding
ひっ。