一、场景介绍
参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/index.html Native支付
用户扫描商户展示在各种场景的二维码进行支付。
- 步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。
- 步骤2:用户使用微信“扫一扫”扫描二维码后,获取商品支付信息,引导用户完成支付。
- 步骤3:用户确认支付,输入支付密码。
- 步骤4:支付完成后会提示用户支付成功,商户后台得到支付成功的通知。
二、开发步骤
推荐使用模式二
1、模式一
参考流程:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4
商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。用户扫码后,微信支付系统将productid和用户唯一标识(openid)回调商户后台系统(需要设置支付回调URL),商户后台系统根据productid生成支付交易,最后微信支付系统发起用户支付流程。
2、模式二
参考流程:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5(时序图中红色部分是需要我们开发的内容)
模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。
注意:code_url有效期为2小时,过期后扫码不能再发起支付。
三、微信支付接口规则
微信支付接口调用的整体思路:按API要求组装参数,以XML方式发送(POST)给微信支付接口(URL),微信支付接口也是以XML方式给予响应。
了解参考官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=4_1
- 协议规则
- 参数规定
- 安全规范
使用sdk可以简化接口的调用