回发取消并显示错误消息

时间:2014-10-05 19:31:52

标签: php android-pay

我正在将 Google电子钱包与我的网站集成以购买和创建新的用户帐户。

在我的回发(php)页面中,我创建了帐户。

如果帐户创建成功,我会使用200 OKorderId回复Google以完成购买。这很好用。

这是我的问题:
如果帐户创建不成功,我想取消购买并告知用户 它被取消的原因。

我还没有见过有人讨论如何做到这一点。

目前,我只是die()exit()回发页面,它有效取消了购买(因为没有200或orderId是echo ed)。 Google会等待10秒或立即取消吗?

这实际上并没有告诉用户它被取消的原因。

如何告诉用户购买被取消的原因? - 例如提醒他们并显示错误消息
这甚至可能吗?编辑sellerData以便客户端在出错时处理它?怎么样?

谢谢!

1 个答案:

答案 0 :(得分:0)

恕我直言 - 它可能类似于验证的最后一步,服务器端,通常是成功(see #6 in the diagram)。

在这种情况下,在失败上,使用标识符其他而不是Google订单ID - 例如sellerData field中的内容,因为您没有获得(订单ID)。

这意味着您将跟踪所有类型的订单" (也就像跟踪"失败或被遗弃的购物车")并检查(失败)回调。

... H个


<强>更新

如果失败(或成功),您将获得原始sellerData as shown here。所以你可以:

  • 添加&#34;购物车ID&#34; (您的应用独有)
  • 在故障回调时,查询您的服务器&#34;购物车ID&#34;
  • 并检查它的状态&#34; (可能是自定义/特定错误消息)
  • 在UI中显示,以便您的用户获得更友好/更具体的消息(如您​​所愿)...

注意:如果用户只是关闭窗口(不一定经过/继续处理),也会调用失败回调。所以你可以&#34;过滤&#34;何时致电您的服务器 - 例如POSTBACK_ERROR基于上述而不是必须对所有情况都这样做(尽管调试它,我还没有尝试过)。

添加说明:这取决于您对&#34的定义;帐户创建不成功&#34; - 如果这意味着&#34;任何&#34; case(包括你的服务器错误,你不需要区分),那么服务器检查/购物车ID可能是不必要的(你可以关闭POSTBACK_ERROR

... H个


更新2

如果您的使用案例要求您区分&#34的原因;帐户创建失败&#34; (某些商业规则)。否则,如果是/ all,那么你可以通过检查failure response中的错误类型来处理这个问题,而不必执行任何操作......

  

是随机生成的cartId吗?

不是那么多&#34;随机&#34;,但是唯一的

  

如果是,我可以将它作为GET查询参数传递给我成功。

根据您的OP /问题,不确定它对成功意味着什么。如果我理解了您的问题,那么您正在寻找一种方法来更好地与用户沟通失败 .....

如果您指的是验证成功的最后一步,则应使用Google订单ID。

  

第二个问题:失败时,服务器会将orderId放入表中,因为Google会将该信息发送给服务器。但客户从未得到回复 - &gt; orderId失败(仅在成功时给出)??

是的,&#34;失败&#34;,包括你选择&#34;取消&#34;根据某些业务规则并且没有正确响应(例如,HTTP错误而不是200 / OK),您无法在故障回调中获取订单ID。 Google will cancel the order

  

重要提示:如果您指定了回发网址,则您的服务器必须及时正确地回复Google为每笔交易发送的HTTP POST消息。否则,交易将被取消。

您的失败处理程序将被调用,那将是您使用唯一购物车ID的时候 - 您正在使用它来识别&#34;&#34; &#34;购物车&#34; /&#34;订单&#34;您选择&#34;取消&#34; (而不是Google订单ID)

希望我不要混淆你......只是抛出想法......