自学内容网 自学内容网

充值掉单的理解

个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力)

笔记目录学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客

个人随笔工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客

什么是充值掉单?

用户完成支付,但应用后台未能正确接收到充值通知,导致已支付的订单未能发货

通常是支付回调机制不可靠导致的

第三方支付平台流程(比如支付宝):

  • 商户在第三方支付平台,签署协议,注册账号
  • 用户A在淘宝选择商品,提交订单,发起支付,支付宝向清算机构发起支付请求

用户提交订单后(预付款):后端会生成订单,会有支付状态,一般不需要异步,然后会将订单托管到企业状态机,然后会把订单消息/订单号发到一个15分钟过期的RabbitMQ里(必然过期),这个mq是没有消费者的,过期订单会转发到死信队列里,死信队列是有消费者的,消费者监听到死信队列的信息,会判断订单是否支付,如果没则取消订单,如果支付则支付完成。一般订单和库存的判定,有可能在提交订单后检查,也有可能在支付检查,看实现机制,比如秒杀一般在发起订单后就锁库存,一般秒杀(服务降级,限流,热门商品信息放redis等)

发起支付:用户选择支付方式支付,比如支付宝,后端访问支付宝接口并且进行握手,支付宝检查企业的appid,认证是否正常,如果正常则会返回一个URL链接,并且后端返回前端,前端展示支付页面(后续的支付操作都是跟支付宝发起)

  • 清算机构向用户A银行卡所属付款行进行验证
  • 银行会把带有业务回执的资金转出
  • 清算机构返回交易状态回执到支付宝,支付宝并把资金暂扣
  • 支付宝发送入账通知给商户

支付宝收到付款后,会回调给商户,后端会根据回调情况对订单进行订单状态的修改,然后根据情况进行数据库存储

  • 商户按订单发货
  • 用户A收到后,向支付宝确认收货
  • 支付宝将暂扣的资金,通过清算机构,划入到商户的收款行
  • 交易完成

掉单一般发生在第三方平台返回回调结果,发生了异常,比如系统重启,因为后端没有拿到回调结果,则不会去修改订单状态,所以用户花钱了,但是没发货

怎么预防掉单?

1:设置订单状态,用于标识订单的支付状态

2:监听支付平台的支付通知回调,并在回调中更新订单状态

3:定期(如每隔一段时间)查询未支付成功的订单状态,并进行补单处理

测试遇到的充值问题

1:点击充值,无法调起支付界面

2:充值后,扣钱了,但是道具没获得

3:充值成功,但是没记录充值数据,或者没触发累充活动的累计值


原文地址:https://blog.csdn.net/weixin_42717928/article/details/137751111

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!