2012-02-14 7 views
1

Googleウォレットのための私のポストバックPHPアプリ内の支払いは次のようになります。PHPポストバックURLのGoogleウォレットIAP

<?php 
$payload = array(
    "iss" => $sellerIdentifier, 
    "aud" => "Google", 
    "typ" => "google/payments/inapp/item/v1", 
    "exp" => time() + 3600, 
    "iat" => time(), 
    "request" => array (
    "name" => "pizza ", 
    "description" => "yum yum", 
    "price" => "10.50", 
    "currencyCode" => "USD", 
    "sellerData" => "", 
) 
); 
$testToken = JWT::encode($payload, $sellerSecret); 
?> 

私は2つの質問があります。

1. 私はこのエラーが表示されない理由を?。 .. ええとああ。問題がありました。技術的な問題のため購入できませんでした。下記の問題の詳細:残念ながら、販売者のサーバーでの購入を確認できませんでした。あなたの注文はキャンセルされました。この問題が解決しない場合は、販売者にご連絡ください。

2. どうすることができ、私は販売のための複数のアイテムを持っている場合は、この作品?上記のPHPの例では、 '$ 10.50のピザ'を購入できます 'ホットドッグ$ 2.99'のような別のアイテムを追加するにはどうすればいいですか?

PS:私は、次のドキュメント研究してきた:

https://developers.google.com/in-app-payments/docs/tutorial#4

https://developers.google.com/in-app-payments/docs/jsreference#jwt

https://developers.google.com/in-app-payments/docs/postback

のお時間をいただき、ありがとうございます。

//更新!

postback.php: ますrequire_once 'JWT.php';

JWT.php: $ json = json_encode($ input、JSON_UNESCAPED_SLASHES);

ええとああ。問題がありました。 技術的な問題のため購入できませんでした。以下の問題の 詳細: 残念ながら、私たちは、商人の サーバーを使用して購入を確認できませんでした。あなたの注文はキャンセルされました。 この問題が引き続き発生した場合は、販売元にお問い合わせください。

答えて

1

あなたは、あなたのpostback.phpに送信された生のエンコードされたJWTデータをデコードすることになっています。 最低限、あなたのpostback.phpは以下のようになります(あなたのpostback.phpがApacheサーバ上でホストされていることを前提とします)。これは、.htaccessのパスワードとユーザー名なし

<?php 
require_once(dirname(__FILE__) . "JWT.php"); 

$response = isset($HTTP_RAW_POST_DATA) ? 
    $HTTP_RAW_POST_DATA : file_get_contents("php://input"); 
$response = substr_replace($response, "", 0, 4); //remove "jwt=" from raw http data 
$response = JWT::decode($response, "your secret key here"); 
print_r($response->response); 
?> 
+0

はあなたに私のPHPのポストバックソリューションを使用することができ、そのためにこれは実際にGoogleが必要であることをあなたの注文IDを与えるものではありません:http://stackoverflow.com/a/16845353/。 1418360 – Bashevis

+0

@Bashevisあなたが見落とした場合、私はprint_rを使用していますが、レスポンスフィールドにはオーダーIDが含まれています。[こちら](こちら)(https://developers.google.com/commerce/wallet/digital/docs/postback#jwt )あなたのコメントとは対照的に、** **は実際にGoogleが必要とする注文情報を提​​供します。 –

0

あなたpostback.phpがアクセス可能であるが役に立てば幸い?私はしばらくの間ということがあった - 私は私のpostback.phpはパスワードがホットドッグは、さらに、これを実行するために-.-

0

を保護されていたことに気づき考え出しまで...ナット私を運転した:

<?php 
$cake_payload = array(
    "iss" => $sellerIdentifier, 
    "aud" => "Google", 
    "typ" => "google/payments/inapp/item/v1", 
    "exp" => time() + 3600, 
    "iat" => time(), 
    "request" => array (
    "name" => "cake", 
    "description" => "yum yum", 
    "price" => "10.50", 
    "currencyCode" => "USD", 
    "sellerData" => "", 
) 
); 
$hotdog_payload = array(
    "iss" => $sellerIdentifier, 
    "aud" => "Google", 
    "typ" => "google/payments/inapp/item/v1", 
    "exp" => time() + 3600, 
    "iat" => time(), 
    "request" => array (
    "name" => "hotdog", 
    "description" => "yum yum", 
    "price" => "5.99", 
    "currencyCode" => "USD", 
    "sellerData" => "", 
) 
); 

$cake_token = JWT::encode($cake_payload, $sellerSecret); 
$hotdog_token = JWT::encode($hotdog_payload, $sellerSecret); 
?> 

は両方に渡しますJavaScriptで別途購入()関数は、(そうpurchase_hotdog() and purchase_cake()

0

あなたの例では、完全に@Pawanを働いた。ありがとう。私は必要な唯一の変更はJWT.phpへのパス上にあった。

私は今

を使用

するrequire_once(DIRNAME(FILE)。 "/ lib/JWT。PHP ");

ポール

関連する問題