什么是单边账?

单边账 是指 商家或者用户其中一端造成资损
对于一笔交易,商家端和用户端的结果不一致,分为两种情况:

  • 商家资损:
    用户实际未付款成功,但商家系统判定支付成功;或用户支付成功后,商家系统由于逻辑问题发起了撤销。
  • 用户资损:
    用户付款成功,但商家系统未得到支付成功的结果,误认为付款失败,再次扫用户付款码发起支付,导致用户多支付了一笔。

解决方案

  1. 每一笔交易一定要结束,即要么支付成功,要么撤销交易,一定不能有交易一直停留在等待用户付款的状态。
  2. 轮询+撤销的流程中,如轮询的结果一直为未付款,撤销一定要紧接着最后一次查询,当中不能有时间间隔。
  3. 门店收银系统应该具备独立的手动查询功能作为兜底,输入商家订单号(可从用户手机账单中获得)调用支付宝查询接口获得确切的支付状态。
  4. 当遇到网络超时和未知异常时,参考异常处理流程正确处理,对于每一笔交易或退款,一定要得到确切的结果。
  5. 撤销接口调用成功后,需要在收银台页面为收银员展示撤销成功的强提示文案,且按实际业务情况引导收银员进行手工订单查询。如果撤销接口没有明确返回处理结果,如遇到网络超时或支付宝未知异常等情况,则需要在收银台提示文案中表明,撤销正在处理中;若该笔订单已经支付则后续会有发生退款的可能,并和用户做好线下沟通。
  6. 对于经过轮询和撤销仍然无法确认结果的(例如系统故障或门店断网),应上报总部 IT 或财务,由 IT(从系统内)或财务(从支付宝后台),确认支付结果后,通过后台发起退款。或让用户查询手机支付宝账单,如用户手机没网络,可拨打支付宝客服热线 4007585858 确认支付结果。
  7. 在上述基础上,业务流程培训时应强调支付结果必须以商家端为准,用户手机上的支付宝结果或账单只能做参考,不能作为最终识别标准。如果商家未正确处理业务逻辑和业务流程培训,存在潜在的风险,商家自行承担因此而产生的所有损失。

轮询流程

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

  1. 收银终端界面阻塞并提示 等待用户确认支付。
  2. 轮询间隔设为 3~6 秒,轮询总时长 60 秒左右。
  3. 轮询时,收银终端界面提供手动停止功能,停止时必须调用撤销 API 撤销交易。