(2018 年 08 月版)

一. 商户接入规范标准化

1. 接口调用规范

1.1 针对唤起收银台的交易确保能够及时获得用户支付结果

原因:对于等待支付的交易,商户如果无法及时确认顾客付款是否成功,容易引起资损和纠纷。

建议方案:对所有唤起收银台的交易(翼码接口返回码9998)发起轮询,并且建议轮询总时间设为60秒,轮询平均间隔设为5秒。在让用户再次支付前,必须通过查询确认当前订单的状态。

1.2 同一订单的部分退款确保退款请求号不重复

原因:同一笔交易如果不改变退款请求号pos_seq,会因为请求号冲突,导致部分退款失败。

建议方案:同一笔交易若发起多次部分退款,每一次都需要改变pos_seq。

2. 异常处理

2.1 接口调用发生异常时能够正确处理

原因:接口的大量调用错误,商户带宽被无效调用占用,容易导致访问翼码速度变慢,并且容易引发商户端处理错误,造成系统无法正常使用,严重影响系统稳定性及用户体验。

建议方案:在调用翼码接口时,可能会遇到网络超时或翼码未知异常(翼码接口返回码9998),此时业务处理结果是未知的,需要根据具体API采取一下措施。具体措施如下:

A. 条码支付接口调用异常,立即调用支付查询接口,如果:

查询的交易失败(返回码9990),可以重新开单并调用条码支付接口。

网络超时或未知异常(返回码9998),继续查询一分钟,如仍然超时或未知异常,需要记录该异常交易并走人工处理流程,不能简单的推断为付款失败。

B. 支付查询接口和退款查询接口调用异常:

立即重试一分钟,如果仍然返回超时或未知异常,需要记录该异常交易并走人工处理流程。

C. 支付退款接口调用异常,立即调用退款查询接口,如果:

查询的交易失败(返回码9990),可以重新调用支付退款接口。

返回超时或未知异常(返回码9998),需要记录该异常交易并走人工处理流程,不能简单的推断为退款成功或失败。

3. 支付体验

3.1 合理的轮询间隔以及轮询总时间

原因:如果轮询总时间太短,而用户输入密码时间较长,商户可能无法获得支付结果,导致资损和纠纷。如果轮询时间太长,会产生不必要的资源消耗,降低服务器性能。同样,轮询间隔如果过短,会给服务器带来压力,降低性能,反之,会无法及时得到支付结果,增加不必要的排队等待时间。

建议方案:建议轮询总时间设置在60秒,轮询间隔设为5秒。

3.2 提高订单支付成功率

原因:支付失败现象增多会引起商户收银问题,增加顾客等待时间,引起单边账,降低顾客满意度。

建议方案:对支付接口的返回进行监控,如果有较高比例的支付失败,需要及时排查原因。条码支付成功率建议保持在95%以上。

3.3 新建的订单都需要改变订单号

原因:外部订单号重复会导致交易失败,不予以控制将增大服务器开销,增加顾客等待时间。

建议方案:对新建的订单进行跳号处理。

4. 资金安全

4.1 未支付订单请及时撤销

原因:未支付订单如果不及时关闭,顾客可能会误支付,从而导致顾客资损,引起单边账

建议方案:对于未支付的订单,请及时通过调用支付退款接口关闭订单(注意:超过24H的订单无法撤销);目前支付宝设置1分钟订单自动关闭,微信没有订单自动关闭时间。

4.2 单品总金额与订单总金额要一致

原因:单品总金额与订单金额不一致会导致实收金额与应收金额不匹配,从而引起资损。

建议方案:在传入单品的情况下,订单总金额需要基于单品的单价和数量计算出来。

4.3 不要在没有获得交易结果的时候要求用户再次付款

原因:商户端没有获得交易结果,很有可能是用户已经付款成功只是商户端单方面原因(网络问题)导致没有获得支付结果,再次支付会导致用户资损。

建议方案:对于商户端没有获得交易结果的订单,请和用户确认支付结果,如果用户已经支付成功,请先退款然后让用户再次支付。

5. 入参规范

5.1 用户付款码建议做好设计预留工作

原因:由于业务发展需要,未来随移动支付产业的发展,用户付款码可能会有所加长,建议开发者做好设计预留工作。目前支付宝付款码由25-30开头,长度为16-24位;微信付款码由10-15开头,长度为18位。

建议方案:如果开发者在对接条码支付接口时,有对付款码做码段和长度的限制,请务考虑好未来升级工作。

5.2 门店号store_id不要含有中文字符

原因:中文有可能引起乱码,在有营销活动的情况下,会导致营销活动无法生效。

建议方案:建议门店号store_id全部用字母和数字的组合。

5.3 参与单品活动和智慧门店的交易需要传入正确的goods_detail信息

原因:如果交易参数中的goods_detail为空或者有误,将无法参与单品活动或智慧门店。

建议方案:参与单品活动的商户请检查请求是否包含goods_detail,并确保goods_id和支付宝/微信相关后台所配置的相一致。