【问题标题】:Google Wallet: How to include the order ID in the success_handler?Google Wallet:如何在 success_handler 中包含订单 ID?
【发布时间】:2013-07-20 16:28:36
【问题描述】:

我正在使用 PHP 和 HTML/JavaScript 在网站中实施 Google Wallet for Digital Goods。

Google 将等待 10 秒,让 postback.php 响应 200/ok 并输出订单 ID。如果发生这种情况,它将向信用卡收费并调用 success_handler 函数。 10 秒无响应后会取消交易并触发 failure_handler 函数。

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

我如何将交易的订单 ID 输入到 success_handler 中,以便我可以在我的系统中验证它,如果所有匹配项都可以确保我收到了钱并交付了数字商品?

【问题讨论】:

    标签: php javascript android-pay


    【解决方案1】:

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

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

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

    【讨论】:

    • 完美!所以成功/失败处理函数包含一个结果参数success_handler = function(result),它包含所有必要的信息(尤其是订单ID或错误类型)。从那里我可以拨打result['response']['orderId']result['request']['sellerData']。说得通! :-) 非常感谢
    • 我相信您提供的有关故障处理程序的信息的链接不太准确。根据本文档的内容,我认为failure_handler= function(result) 会给我result['request']['sellerData']result['response']['errorType']。后者是正确的,但对于卖家数据和对象“层”中的任何值都在result['request']['request']['price'](一个额外的“请求”层)下。还是我读错了?
    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2017-10-13
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多