做过扫码支付的小伙伴一定会注意到文档中提到了两种模式,官方也给出了明确的业务流程时序图,然可能有的小伙伴们并没有仔细的阅读两种模式有什么区别。
模式一和模式二提供了两种不通的实现方式,最终都可以完成支付,但是适用于不同的业务场景,具体看自身项目需求。
欢迎关注
文档说明
开发文档之场景介绍文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1
开发文档之模式1的流程图:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4
开发文档之模式2的流程图:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5
适用场景
模式一,适合线下支付,比如无人职守的自动售货机,所有的商品都有一个固定的二维码,价格相对稳定。
模式二,适合线上支付,比如购物网站,支付金额不确定,更多的是多种商品的组合形式展示。
业务流程
模式一:预先根据商品ID以及相关参数生成一个固定二维码(并没有商品金额信息),用户扫描二维码会调用扫码支付回调链接(后台配置),回调方法中获取到二维码中的相关信息生成订单并调用微信预下单接口,最终展示给用户支付信息。
模式二:用户购买商品,确定好金额,然后创建一个订单并生成二维码,用户扫描二维码,直接支付即可。
交互区别
模式一:先扫码,再生成订单,用户扫码后微信会调用商家设置的回调链接,商户可以自定义交互过程,因此能够实现较为灵活的业务定制。
模式二:先生成订单,再扫码,用户扫码与用户授权支付是连续的,商户无法自定义中间的交互过程。
时效性
模式一:无时效性限制。
模式二:有2小时的时效限制。
由于涉及自定义流程,从生成二维码到扫码再到用户授权支付过程环节更多,因此模式一相对复杂,对商户的开发能力要求更高。