3

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

我已经用谷歌搜索了很多小时,试图自己解决这个问题,但没有成功。希望有人可以帮助我。我已经包含了处理显然有问题的发布数据的脚本。这就是谷歌所说的:

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

解码在 POST 消息的 jwt 参数中指定的 JWT。检查以确保订单正常。获取 JWT 的“orderId”字段的值。发送一个 200 OK 响应,正文中只有一件事:您在第 3 步中获得的“orderId”值。

这是我写的,但据我所知,没有办法对其进行测试(如何模拟来自 Google 的帖子?)。

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; 

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

4

2 回答 2

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; 

Google Wallet 的 In App Purchase 文档相对较新,在回调方面缺乏。此代码适用于沙盒和生产端,只需确保您使用自己的卖家密码。

于 2013-05-30T20:29:18.983 回答
-2

在您的 Google Wallet 设置中将 Sandbox Postback URL 设置为测试页面,然后将请求记录到该页面。您将看到一个 JWT。用它来测试。

于 2012-11-28T15:10:09.957 回答