谷歌钱包:如何在success_handler中包含订单ID


Google Wallet: How to include the order ID in the success_handler?

我正在一个网站上使用PHP和HTML/JavaScript实现谷歌数字商品钱包。

谷歌将等待10秒,等待postback.php以200/ok响应并输出订单ID。如果发生这种情况,它将向信用卡收费并调用success_handler函数。但是,在10秒没有响应后,它将取消事务并触发failure_handler函数。

我想保护自己不受服务器速度慢的影响,只想在调用了success_handler的情况下交付数字产品。为了防止欺诈,我需要验证订单ID是否正确(因为成功处理程序是客户端)。

我如何将交易的订单ID获取到success_handler中,以便在我的系统中进行验证,如果所有匹配,则确保我收到了钱并交付了数字商品

正如您所指出的,为了防止欺诈,您需要与服务器检查调用成功处理程序的事务是否与对服务器进行的相应回发调用相匹配。

您需要匹配两个回调返回的订单Id。订单Id是成功处理程序或服务器回发中返回的jwt的一部分(在"response"->"orderId"下):

https://developers.google.com/commerce/wallet/digital/docs/jsreference#successhandler