谷歌应用内付款:如何处理谷歌的回发JWT

tim*_*nho 3 php postback jwt

也许这是一个愚蠢的问题,但我不是一个高级程序员.我已经成功为我的应用设置了应用内付款,但它只能在不使用回发网址的情况下运行.

我已经谷歌大约几个小时试图解决这个问题但没有成功.希望任何人都可以帮助我.我已经包含了处理帖子数据的脚本,这显然有些不对劲.这就是Google所说的:

您的服务器必须为Google发送到您的回发URL的每条HTTP POST消息发送200 OK响应.要发送此响应,您的服务器必须:

解码在POST消息的jwt参数中指定的JWT.检查以确保订单正常.获取JWT的"orderId"字段的值.发送200 OK响应,其中只包含一个正文:您在步骤3中获得的"orderId"值.

这是我写的,但据我所知,没有办法测试它(我如何模拟谷歌的帖子?).

require_once 'include/jwt.php'; // including luciferous jwt library 

$encoded_jwt = $_POST['jwt']; 
$decoded_jwt = JWT::decode($encoded_jwt, "fdNAbAdfkCDakJQBdViErg"); 
$decoded_jwt_array = (array) $decoded_jwt; 
$orderId = $decoded_jwt_array['response']['orderId']; 

header("HTTP/1.0 200 OK"); 
echo $orderId; 
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.谢谢蒂姆

Bas*_*vis 5

一年后我遇到了同样的问题,用以下代码解决了这个问题:

require_once 'include/jwt.php'; // including luciferous jwt library 

$encoded_jwt = $_POST['jwt']; 
$decodedJWT = JWT::decode($jwt, $sellerSecret);

// get orderId
$orderId = $decodedJWT->response->orderId;

header("HTTP/1.0 200 OK"); 
echo $orderId; 
Run Code Online (Sandbox Code Playgroud)

Google电子钱包的In App Purchase文档相对较新,缺乏回调方面.此代码适用于沙箱和生产方面,只需确保您使用自己的卖家秘密.