0
点赞
收藏
分享

微信扫一扫

微信支付的总结

源码之路 2022-01-08 阅读 210
微信

大纲

一、流程总结

1.1 技术概览

  • v2的微信制度API(本文使用)
  • v3的微信制度API
  • IJPay - Java 聚合支付 SDK

1.2 官方业务流程时序图

在这里插入图片描述

1.3 支付流程

用户在请求支付的时候,服务端就要向微信支付发起统一下单接口:这里就会填入商户内部订单的编号、付款金额、通知地址等,统一下单接口就会返回调起支付的必要参数。服务器就需要将这个参数返回给客户端。

微信服务器验证正确后会自动通知微信弹出输入密码框。

用户在输入了支付密码之后,微信支付系统将会根据你在统一下单接口时候填入的通知地址,返回一些数据信息。服务端在处理了这些信息之后,就要返回微信支付系统需要的返回参数。

流程,如下所示:
在这里插入图片描述

1.4 退款流程

用户在发起退款申请,服务器就调起申请退款接口,输入退款结果通知

推荐使用异步通知进行处理:因为微信退款产生,并不是即时到帐,通常出现这个提示之后的几分钟之内,钱款就会到账。
请添加图片描述

二、支付注意事项

  1. 可以利用好统一下单接口的附加数据 attach,方便回调处理
  2. 在微信回调的时候,还需要验证信息
  • 得到的订单编号中能否查询相应的订单
  • 该通知是否已经处理过
  • 校验返回的订单金额是否与商户的订单金额一致
  1. 订单总金额,单位为
  2. 当且仅当 return_code 与 result_code 为 SUCCESS 时,才是付款成功
  3. 回调地址:必须为外网可访问的url,不能携带参数。 公网域名必须为https
  4. “回调中的支付失败”:有可能是商户配置出现问题
  5. 支付金额,应该是根据订单编号查询数据库中的支付金额进行支付申请

三、退款注意事项

  1. 退款结果通知验证
  • 当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过;如果没有处理过再进行处理,如果处理过直接返回结果成功。
  1. 当且仅当 return_code 与 result_code 为 SUCCESS 时,才是退款成功
  2. “退款异常”:
    当用户使用银行卡支付时,微信支付首先原路退款到银行卡,当银行卡状态不正常或银行卡错误时,微信支付会优先转退用户微信零钱,仅当用户微信零钱也注销,才会转入“退款异常”状态。此时可选择“其它方式退款”,手动录入用户的银行信息完成退款
  3. “退款关闭”:
    余额不足等其他情况会导致退款关闭
  4. 退款金额与支付金额相似
举报

相关推荐

0 条评论