h5微信支付相对于扫码支付, JSAPI支付, 是更为简单的, 一共就四个步骤:
- 用户告诉我们需要付款, 我们生成订单, 调用微信统一下单接口下单. 微信返回给我们重定向链接, 我们使用该链接让用户重定向.
- 用户被重定向微信内部, 然后进行付款操作, 支付完成或失败后退回到我们网站.(和我们无关)
- 当用户付款成功后, 微信会发送通知给我们, 我们收到通知后回复微信.(未成功则没有通知)
- 用户退回到我们网站后, 引导用户向我们发出查单请求, 我们调用微信查单接口进行查单, 然后进行后续操作.
我们可以发现真正和微信交互最多就三次, 第一次是下单, 第二次是处理回调, 第三次是查询订单, 其中最重要的就是下单和查询订单的操作.
问: 为什么要引导客户查单, 处理回调通知不就行了吗?
回调通知不一定能接收到, 万一微信内部错误, 没接收到怎么办? 所以主动查单最保险.
问: 微信支付有几种结果?
- 当重定向超时5秒, 退回到我们网站, 支付失败.
- 用户主动放弃支付, 退回到我们网站, 支付失败.
- 用户支付成功, 退回到我们网站, 支付成功.