微信支付回调时,业务流程处理失败的情况下,该如何进行后续步骤

WayminS 2017-07-25 10:07:20
在进行微信支付开发,处理回调请求时,对于一切正常的订单,微信回调会正常终止;但如果处理回调过程中发生异常,不知该如何处理。具体过程大致如下:
1、微信支付成功,并且微信端可以正常发起回调;
2、回调过程中,正常处理业务(如更新订单状态为“已付款”)且成功时,返回<return_code><![CDATA[SUCCESS]]></return_code>,微信回调终止,订单后续流程可正常进行(如发货等);
3、若回调过程中,处理业务失败(如更新订单状态失败),返回<return_code><![CDATA[FAIL]]></return_code>时,微信会继续发起回调。
针对第3中情况,即使继续回调,在此过程中业务处理失败的问题未得到处理,待微信多次回调结束后,当前订单仍然是“待付款”状态,但用户的钱已经支付了,假设“待付款”的订单无法发货,这样的情况该如何准确处理呢?

P.S.个人认为准确的情况,应该是在回调过程中发生异常处理失败返回FAIL的时候,微信(或我的程序)调用退款接口,将用户支付金额返回到账户,但这样也有两点问题:
1、调用退款接口之后,针对原支付成功的回调,该如何返回?返回FAIL无法终止回调,返回SUCCESS,又感觉不符合场景。
2、调用退款接口,微信端同样会针对这个退款进行回调,如果这个退款的回调再发生异常失败,又如何处理?

以上,望有相关处理经验的朋友们解惑,谢谢~
...全文
6559 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
6586232 2020-11-10
  • 打赏
  • 举报
回复
我也是碰到同样的问题,看着官方文档也不知道如果异常或通知结果返回失败要怎么处理
softFE 2020-10-20
  • 打赏
  • 举报
回复
引用 8 楼 hp66722667 的回复:
return_code 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 result_code SUCCESS/FAIL
result_code=fail的时候,那关于后续 的处理, 怎样才比较合适
hp66722667 2020-06-12
  • 打赏
  • 举报
回复
return_code 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 result_code SUCCESS/FAIL
风吹麦浪2015 2019-05-27
  • 打赏
  • 举报
回复
自己可以创建定时任务在每天的凌晨执行,去微信那边对账,然后更新数据库订单状态。
yesefuxiao 2017-12-15
  • 打赏
  • 举报
回复
楼主如今可有良策...
qq_35723034 2017-11-02
  • 打赏
  • 举报
回复
最近也在做类似的业务,不知道怎么处理,
Tokyo_not_too_hot 2017-08-02
  • 打赏
  • 举报
回复
楼主搞定了么 ·我也是想问下这边的业务逻辑问题

869

社区成员

发帖
与我相关
我的任务
社区描述
本版块主要讨论微信支付开发接入过程中的技术问题。包括微信支付线上线下支付的接入,微信支付营销能力的开发等。
微信社交电子 技术论坛(原bbs)
社区管理员
  • 微信支付
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧