最佳实践

客户端优化 仅 App 端

主要涉及以下内容的优化:

  • 安卓端如何处理消除歧义框。
  • 如何判断买家是否安装支付方式应用。
  • 订单如何在商户应用内完成支付。

请参阅支付推进链接了解关于 App 终端的更多内容。

回跳商户页展示

跳转到商户结果页时,您可能会遇到以下情况之一,请参考以下建议方案进行处理:

处理重定向问题

当买家成功完成支付,但在跳转到您指定的 paymentRedirectUrl 时遇到问题,无论是由于网络问题还是支付方式的限制,请注意以下两点:

  • 不能将客户端重定向作为判断支付成功的依据。
  • 如果支付方式页面的 paymentRedirectUrl 未能重定向到商户页面,买家可以手动点击原始商户页面。为了避免买家误以为订单未支付而再次尝试支付,建议在原始商户页面上实现一个弹出窗口,用于查询交易结果。当买家点击此弹出窗口时,应显示交易结果,防止重复支付尝试。

重定向后触发订单结果查询

如果在调用 支付结果查询 接口后,商户端弹出弹窗展示结果,建议处理以下不同的结果:

  • 支付成功:支付成功后,页面将显示与发货相关的内容。
  • 支付失败:表明支付失败,并提供重试支付的指导,以帮助订单完成。
  • 支付处理中:显示加载效果,并在 3-5 秒内暂停,然后再次查询服务器以获取支付结果。如果结果仍然不确定(既不是成功也不是失败),建议显示“订单处理中”或“通过订单管理门户查看最终结果”。避免将延迟归因于“网络处理”。

支付失败重试

订单的支付尝试失败,且买家可以为同一订单重试支付时,我们建议遵循以下集成流程以实现无缝体验:

  1. 在支付请求中,将 referenceOrderId 设置为订单 ID,将 paymentRequestId 设置为支付订单 ID。
  2. 如果需要对同一订单重试支付,首先检查订单状态。如果支付已经成功,向买家显示“已完成支付”。如果没有,再次调用 支付(收银台)接口以获取新的 normalUrl 进行重定向。虽然 referenceOrderId 保持不变,因为它代表相同的订单,但后续支付尝试时必须更新 paymentRequestId
  3. 确保每个商户订单只与一个成功的支付相关联。如果检测到单个订单有多个成功的支付,调用 取消支付 接口来为买家发起退款。
  4. 对于不支持退款的支付方式,建议在发起新支付之前取消原始支付。

根据接入的支付方式是否支持退款,集成流程有所不同。

一个订单可先发起新的支付,若出现两个成功的支付单,再撤销其中一个即可。

yuque_diagram (9).png

接口超时时间设置

Antom 提供了多种支付方式的直接集成能力。在某些情况下,支付接口的处理延迟可能导致响应不及时,进而影响买家被重定向到支付推进链接,从而降低支付成功率并影响用户体验。因此,建议将接口超时时间设置为 10 秒,以提高响应成功率。若支付接口调用超时,建议重新发起原始请求以获取支付推进链接。

中间页优化

为了实现多种支付方式的统一接入,Antom 提供了中间页用于处理部分支付方式的特定支付要素,从而简化集成过程。然而,这种中间页跳转可能会增加用户体验的负担,影响支付成功率。为了提升用户体验,减少页面跳转,并提高支付成功率,我们建议您按照以下方案对部分支付方式进行定制优化: