微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结

很久以来,一直想写一篇微信支付有关的总结文档;一方面是总结自己的一些心得,另一方面也可以帮助别人,但是因种种原因未能完全理解透彻微信支付的几大支付方式,今天有幸做一些总结上的文章,也趁此机会,将一年多以来的相关经验分享一下。

 

概述

1. 扫码支付

商户在pc端展示一个支付二维码,用户使用微信扫一扫功能,扫码后实现付款的支付方式。

2. 公众号支付

商户在微信APP内(微信浏览器)打开H5网页,通过微信支付实现付款的支付方式。

3. H5支付

商户在微信浏览器以外的手机浏览器打开H5网页,通过微信支付实现付款的支付方式。

4. 小程序支付

商户在小程序内,通过微信支付实现付款功能的支付方式。

 

开发前准备

第一步,登录到商户平台设置相关参数配置 

首先到微信商户平台申请一个企业账号,并开通微信支付,设置好相应的公众号支付、扫码支付、H5支付的相关参数配置。

微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结

 

 

微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结

 

其中,公众号支付需要设置JSAPI支付授权目录,且最多只能设置5个;

扫码支付需要设置扫码回调链接,既用户通过扫码支付完毕后微信回调到商户的页面链接;

H5支付则需要设置安全支付域名即可。

 

第二步,引入微信官方SDK

微信官方提供了一套Java、.NET、PHP等三个版本的开发SDK;我目前使用的是.NET,因此只需要下载.NTE的SDK即可。

地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 

微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结

下载完以后,在Visual Studio中打开项目,结构如下:

微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结

文件夹example是一些封装好的实例,lib跟business中的内容是SDK的核心部分,因此需要将这两个文件夹原样复制到我们实际的开发项目中:

微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结

 

 

 

业务流程

扫码支付

1. 用户下单,选择微信支付;

2. 商户后台根据订单信息,调用微信统一下单接口;

3. 统一下单接口返回预支付信息,商户后台将预支付信息通过技术手段生成二维码图片,并展示在网页中;

4. 用户使用微信扫码进行支付,输入支付密码;

5. 支付完成,微信后台向商户后台发出异步通知;

6. 商户后台接收到微信的异步通知后,获取相关参数,进行对应的业务处理,如修改订单状态,并返回SUCCESS或FAIL的标志以告知微信。

7. 微信向商户后台发送异步通知的同时,会向预先在商户平台设置的回调地址发起跳转,商户需在回调地址中获取相关参数并进行业务处理,一旦得知订单状态是已付款状态,则跳转至相应支付成功界面。

详细说明请看微信支付官方开发文档:

https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 

公众号支付

1. 用户下单,选择微信支付;

2. 商户后台根据订单信息,调用微信统一下单接口;

3. 统一下单接口返回预支付信息,商户后台获取预支付信息,并通过JSAPI发起支付请求,JSAPI调起微信支付;

4. 用户输入支付密码,支付完成;

5. 微信后台向商户后台发出异步通知,同时会在JSAPI发起页面返回支付信息;

6. 商户后台收到微信的异步通知,进行相关业务处理,并返回SUCCESS或FAIL的标志以告知微信。

7. 商户在JSAPI发起页面获取微信回调的信息,请求数据库获取订单状态,并进行支付成功或失败对应的页面跳转。

详细说明请看微信支付官方开发文档:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 

  H5支付

1. 用户下单,选择微信支付;

2. 商户后台根据appid向微信获取code参数,再通过code参数向微信换取openid参数;

3. 商户后台根据订单信息,调用微信统一下单接口;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsjyz.html