Google 应用内付款:如何处理 Google 的回发 JWT
Posted
技术标签:
【中文标题】Google 应用内付款:如何处理 Google 的回发 JWT【英文标题】:Google in-app payments: howto to handle Google's postback JWT 【发布时间】:2012-03-13 01:00:35 【问题描述】:也许这是一个愚蠢的问题,但我不是高级程序员。我有 已成功为我的应用设置应用内付款,但它只有效 不使用回发网址。
我已经在 Google 上搜索了好几个小时,试图自己解决这个问题 成功。希望有人可以帮助我。我已经包含了脚本 处理明显有问题的帖子数据。这就是谷歌所说的:
您的服务器必须为每个 HTTP POST 消息发送 200 OK 响应 Google 发送到您的回发 URL。要发送此回复,您的 服务器必须:
解码在 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;
任何帮助将不胜感激。谢谢蒂姆
【问题讨论】:
【参考方案1】:一年后我也遇到了同样的问题,用下面的代码解决了:
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 文档相对较新,在回调方面缺乏。此代码适用于沙盒和生产端,只需确保您使用自己的卖家密码。
【讨论】:
上面的代码对我有用。 Google 在此处提供了一个更完整的错误检查示例(在 Python 中):developers.google.com/commerce/wallet/digital/training/…【参考方案2】:在您的 Google 电子钱包设置中将 Sandbox Postback URL 设置为测试页面,然后将请求记录到该页面。您将看到一个 JWT。用于测试。
【讨论】:
以上是关于Google 应用内付款:如何处理 Google 的回发 JWT的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 和 VueJS:如何处理使用 Google 登录但未在我的应用中注册的用户?用户资料管理
Google API V 3.0 .Net 库和 Google OAuth2 如何处理刷新令牌
如何处理 google firebase web app 的安全性?