PHP回发URL谷歌钱包IAP
作者:互联网
我用于Google钱包应用内付款的回发php如下所示:
<?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);
?>
我有两个问题:
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);
哦哦出现问题了.
由于技术问题,我们无法完成您的购买.
问题的详细信息如下:
很遗憾,我们无法与商家的商家确认您的购买
服务器.您的订单已被取消.如果有请联系商家
这个问题还在继续.
解决方法:
您应该对发送到postback.php的原始编码jwt数据进行解码.
至少,您的postback.php看起来应该像下面这样(假设您的postback.php托管在apache服务器上).希望这可以帮助
<?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);
?>
标签:php,in-app-purchase,jwt,postback 来源: https://codeday.me/bug/20191009/1880159.html