您的位置:首页 > 移动开发 > 微信开发

微信 支付流程

2017-02-25 13:54 260 查看
近期负责的一个微信直销项目,需要用到公众号支付功能。该项目是从微信公众号引导客户进入H5页面选购产品、下单支付,要在网页端调起支付API(即在微信浏览器里面打开H5网页中执行JS调起支付)。小编在开发过程中踩过不少坑,也花费了不少时间,所以有必要做个简单的总结,为以后类似业务的开发留点东西。

微信支付主要的流程:

1、申请微信公众号及支付功能申请:根据公众号申请流程申请即可。
2、获取商户支付配置信息及支付测试配置:



如上图所示,支付授权目录最多可以配置三个域名,测试授权目录只可以一个,这里需要注意的是域名大小写必须要网站URL一致,否则会无法通过授权,提示支付请求的URL不合法。另外,测试支付的微信号必须加到测试白名单,否则无法进行支付测试。

3、H5页面发起支付请求,请求生成支付订单。

4、获取用户授权(获取用户的openid):



授权获取openid,可能会遇到提示网站URL未注册等问题,需要检查接口权限->网页服务->网页账号->网页授权获取用户基本信息的url是否与请求的URL一致。获取code码和openid的具体实现可以查看微信支付api接口。

5、调用统一下单API,生成预付单:



授权获取openid,可能会遇到提示网站URL未注册等问题,需要检查接口权限->网页服务->网页账号->网页授权获取用户基本信息的url是否与请求的URL一致。获取code码和openid的具体实现可以查看微信支付api接口。



6、生成JSAPI页面调用的支付参数并签名,按照API的demo:



注意时间戳timeStamp是32位字符串,如果不是字符串或者过长,会提示如下信息:



7、返回支付参数prepay_id,paySign参数的html文本给前端。





8、微信浏览器自动调起支付JSAPI接口支付,提示用户输入密码。



9、确认支付,输入密码,提交支付。

10、异步通知商户支付结果,商户收到通知返回确认信息。

11、返回支付结果,并发微信消息提示。

12、展示支付信息给用户,跳转到支付结果页面。

  因为该项目采用API服务化、前后端分离的开发模式,所以上述的微信支付流程与微信支付开发文档的业务流程有出入,不是前后端分离的项目请按照支付开发文档的流程进行开发。

 

  上面是微信支付的开发,项目还设计有微信自动退款的功能,考虑到微信退款的安全性问题,目前未接入退款流程,以后接入再做总结。

 

由于小编见识有限,有不足之处请指出!

作者简介:

Yeoman:一个正在努力的菜鸟
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: