微信支付逻辑图
我可以提供关于微信支付逻辑图的详细描述。
微信支付时序图
微信支付时序图主要包括以下几个步骤:
1. 用户点击支付按钮: 用户在微信商城或其他支持微信支付的平台上点击支付按钮,触发支付流程。
2. 生成预付单: 支付系统生成一个预付单,包含订单信息、金额等数据。
3. 获取公钥: 支付系统获取微信支付公钥,用于签名和验签。
4. 构造请求包: 支付系统构造一个请求包,包含预付单信息、商户ID、时间戳等数据。
5. 签名: 支付系统使用私钥对请求包进行签名,生成签名值。
6. 发送请求: 支付系统将请求包和签名值发送到微信支付服务器。
7. 验签: 微信支付服务器验证签名值是否正确,如果正确则继续处理。
8. 生成随机数: 微信支付服务器生成一个随机数,用于防止重放攻击。
9. 构造回包: 微信支付服务器构造一个回包,包含随机数、订单状态等数据。
10. 验签: 支付系统验证回包的签名值是否正确,如果正确则继续处理。
11. 更新订单状态: 支付系统更新订单状态为已支付或其他状态。
微信支付官方文档
微信支付官方文档提供了详细的API接口和示例代码,帮助开发者快速上手。以下是部分内容:
* API接口: 微信支付提供了多种API接口,包括生成预付单、查询订单状态等。
* 签名: 微信支付使用私钥对请求包进行签名,生成签名值。
* 验签: 微信支付服务器验证签名值是否正确,如果正确则继续处理。
xml与对象的互转
微信支付使用XML格式通信,而不是JSON。以下是部分内容:
* XML结构: XML结构包括根元素、子元素等。
* 对象互转: 对象互转涉及将Java对象转换为XML结构,反之亦然。
签名
千万不要以为只是MD5一下,要是你自己开发,需要注意以下几点:
* **私钥**: 私钥用于签名和验签。
* **签名算法**: 签名算法涉及使用私钥对请求包进行签名,生成签名值。
以上就是关于微信支付逻辑图的详细描述。