开发者社区> 问答> 正文

#支付宝 如何避免单边账?

如何避免单边账

展开
收起
保持可爱mmm 2020-05-05 23:21:15 1896 0
1 条回答
写回答
取消 提交回答
  • 背景

    如何处理单边账,首先要明白的是什么是单边账。

    单边账是指对于一笔交易,商户端和用户端的结果不一致,分为两种情况:

    1、商户资损单边账:用户实际未付款成功,但商户系统判定支付成功;或用户支付成功后,商户系统由于逻辑问题发起了撤销。

    2、用户资损单边账:用户付款成功,但商户系统未得到支付成功的结果,误认为付款失败,再次扫用户付款码发起支付,导致用户多支付了一笔。在用户手机网络不好的情况下,支付成功后用户手机不一定会显示支付成功页面,用户自己也不知道已经付成功了。这种情况在小额场景下尤其容易出现,且难以发现,需要商户和系统商特别注意。

    根据以上描述,可以知道单边账就是商户或者用户其中一端造成资损。

    处理方案

    为了避免单边账,建议商户和系统商采取以下措施:

    1、每一笔交易一定要闭环,即要么支付成功,要么撤销交易,一定不能有交易一直停留在等待用户付款的状态。

    2、轮询+撤销的流程中,如轮询的结果一直为未付款,撤销一定要紧接着最后一次查询,当中不能有时间间隔。

    3、门店收银系统应该具备独立的手动查询功能作为兜底,输入商户订单号(可从用户手机账单中获得)调用支付宝查询接口获得确切的支付状态。

    4、当遇到网络超时和未知异常时,参考异常处理流程正确处理,对于每一笔交易或退款,一定要得到确切的结果。

    5、撤销接口调用成功后,需要在收银台页面为收银员展示撤销成功的强提示文案,且按实际业务情况引导收银员进行手工订单查询。如果撤销接口没有明确返回处理结果,如遇到网络超时或支付宝未知异常等情况,则需要在收银台提示文案中表明,撤销正在处理中;若该笔订单已经支付则后续会有发生退款的可能,并和用户做好线下沟通。

    6、对于经过轮询和撤销仍然无法确认结果的(例如系统故障或门店断网),应上报总部IT或财务,由IT(从系统内)或财务(从支付宝后台),确认支付结果后,通过后台发起退款。或让顾客查询手机支付宝账单,如顾客手机没网络,可拨打支付宝客服热线95188确认支付结果。

    7、在上述基础上,业务流程培训时应强调支付结果必须以商户端为准,用户手机上的支付宝结果或账单只能做参考,不能作为最终识别标准。如果商户未正确处理业务逻辑和业务流程培训,存在潜在的风险,商户自行承担因此而产生的所有损失。

    轮训流程

    当请求支付返回 WAIT_BUYER_PAY 时,收银系统需要做轮询处理,建议:

    1、收银终端界面阻塞并提示“等待用户确认支付”。

    2、轮询间隔设为3-6秒,轮询总时长60秒左右。

    3、轮询时,收银终端界面提供手动停止功能,停止时必须调用撤销 API 撤销支付宝交易。

    2020-05-05 23:21:26
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载