【问题标题】:Google Wallet: Storing Order IDs in Database with PHPGoogle Wallet:使用 PHP 在数据库中存储订单 ID
【发布时间】:2014-07-24 14:05:01
【问题描述】:

创建订阅时,我记录了在数据库中创建的orderID,以便稍后引用它来处理取消postback。但是,我的取消 postback 似乎永远不会起作用。

我的postback 在创建时存储原始订单,然后在取消时尝试引用它并更新数据库,但orderID 略有不同,无法正确更新。

这是直接从数据库中解码的 JWT 中存储的 orderID

GWDG_S.886160e8-49b6-4f92-b485-9787c4cb4c06.0..0

这是在取消订阅期间根据控制台中的萤火虫发送的orderID

GWDG_S.886160e8-49b6-4f92-b485-9787c4cb4c06.0.

这是通过电子邮件发送给取消订阅的用户的orderID

GWDG_S.886160e8-49b6-4f92-b485-9787c4cb4c06

我不确定这里发生了什么。我该如何考虑这些变化?

欢迎任何意见!谢谢!

【问题讨论】:

    标签: php android-pay


    【解决方案1】:

    看来您需要将 orderID 标准化为最后一种格式。对于这个特定的,下面的正则表达式就可以了。

    preg_match('([^\.]+\.[^\.])\.', $orderID, $matches);
    $orderID = $matches[1];
    

    【讨论】:

      【解决方案2】:

      似乎无法重现...在我的沙盒中:

      订阅购买

      在测试网页上


      买家沙盒钱包


      回发数据

      这是我发送给自己的调试电子邮件,显示购买和随后的取消回发



      买家确实会收到收据,我相信是您在每次订阅时看到的“递增”交易编号(除非我被 Google 员工更正)更新 -

      例如第五次续订[...]6a6c4.0..5


      一段时间内取消回发的示例:

      【讨论】:

      • 非常感谢!感谢您清理 .0..0 的东西。我设法让它工作。我注意到沙箱参差不齐……在尝试测试按钮时,我经常遇到 500 个服务器错误。这很常见吗?
      猜你喜欢
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 2021-07-30
      • 2016-01-21
      相关资源
      最近更新 更多