微信公众平台开发技术-业务流程
原创业务流程如图 7-11 所示。

图 7-11 业务流程
由于微信 5.0 版本后才加入微信支付模块,低版本用户调用微信支付功能将无效,因此,建议商户先通过 user agent 确定用户当前的版本号,然后再调用支付接口。以 iPhone 版本为例,可以通过 user agent 获取如下微信版本示例信息:
"Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X)
AppleWebKit/534.46(KHTML,like Geocko)Mobile/9B206 MicroMessenger/5.0"
其中,5.0 为用户安装的微信版本号,商户可以判定版本号是否高于或者等于 5.0。
H5调用支付API现在的微信支付方式有多种,如图 7-12 所示,有刷卡支付、公众号支付、扫码支付和 APP 支付。对于支付工具的开发,这里对公众号支付接口进行介绍,其他几种支付接口的开发思路基本上都是一样的。

图 7-12 微信支付方式
1. 思路详解
从微信支付接口文档里的业务流程图(如图 7-11 所示)看,基本思路如下。
首先在后台生成一个链接,展示给用户并让用户点击(例如页面上有微信支付的按钮)。用户点击按钮后,网站后台会根据订单的相关信息生成一个支付订单。此时会调用统一下单接口,对微信支付系统发起请求,而微信支付系统收到请求后,会根据请求过来的数据生成一个预支付交易会话标识(prepay_id,就是通过这个来识别该订单的)。网站收到微信支付系统的响应后,会得到 prepay_id,然后构造微信支付所需要的参数,接着将支付所需参数返回给客户端。用户此时可能会有一个订单信息页,会有一个按钮,点击支付,此时会调用 JS API 接口对微信支付系统发起请求支付。微信支付系统检查了请求的相关合法性之后,就会提示输入密码,用户此时输入密码确认,微信支付系统会对其进行验证,通过的话会返回支付结果,然后微信跳转回 H5 页面。这其中有一步是异步通知网站支付结果,网站需要对此进行处理(比如异步支付结果通过后,需要更新数据表或者订单信息,同时也需要更新订单日志,防止用户重复提交订单)。
2. 代码讲解
这里先简单说一下微信公众号支付的流程。首先获得 code,然后获得 openid,再根据 openid 获取预支付 ID(prepay_id)。获取到 prepay_id,自然得到 packages,这个最难获得的参数获得之后,基本上就做好一半了,剩余的参数包括 appId(公众号 ID)、timeStamp(时间戳)、nonceStr(随机字符串)、signType(签名方式)、paySign(支付签名)。
获取到这些参数后,新建一个页面,复制微信的代码。
1. function onBridgeReady(){ 2. WeixinJSBridge.invoke( 3. 『getBrandWCPayRequest』, { 4. 「appId」 : 「wx2421b1c4370ec43b」,//公众号名称,由商户传入 5. 「timeStamp」:「 1395712654」, //时间戳,自 1970 年以来的秒数 6. 「nonceStr」 : 「e61463f8efa94090b1f366cccfbbb444」, //随机字符串 7. 「package」 : 「prepay_id=u802345jgfjsdfgsdg888」, 8. 「signType」 : 「MD5」, //微信签名方式 9. 「paySign」 : 「70EA570631E4BB79628FBCA90534C63FF7FADD89」 //支付签名 10. }, 11. function(res){ 12. if(res.err_msg == 「get_brand_wcpay_request:ok」 ) {} // 使用 13. // 以上方式判断前端返回,微信团队郑重提示:res.err_msg 将在用户支付成功后 14. // 返回 ok,但并不保证它绝对可靠 15. } 16. ); 17. } 18. if (typeof WeixinJSBridge == 「undefined」){ 19. if( document.addEventListener ){ 20. document.addEventListener(『WeixinJSBridgeReady』,onBridge Ready, false); 21. }else if (document.attachEvent){ 22. document.attachEvent(『WeixinJSBridgeReady』, onBridgeReady); 23. document.attachEvent(『onWeixinJSBridgeReady』, onBridgeReady); 24. } 25. }else{ 26. onBridgeReady(); 27. }
这样,微信就会自动调用支付。
版权保护: 本文由 李斯特 原创,转载请保留链接: https://www.wechatadd.com/artdet/9558
- 上一篇:微信公众平台开发技术-资费标准
- 下一篇:微信公众平台开发技术-客服接口
阅读推荐
更多...- CHAPTER九讲找到痛点,放大需求,轻松提高销售业绩 2023-04-14
- 掌握微信营销技巧 2023-07-16
- 大客户销售的七大战略,赢得客户的信任和认可,提高销售业绩 2023-04-14
- 微商运营8大要点,以产品为核心 2023-07-13
- 营销活动要构思活动策划方案 2022-07-01
- 微商定位策略,客户群体定位 2023-07-13
- 靠谱的商业模式,商业模式(上) 2023-07-16
- 失业、生育和工伤保险 2024-07-06
- 微信朋友圈的本质及运用,微信大数据营销,富媒体应用 2023-07-08
- QQ群微营销的功能 2023-07-16
- 什么是百度直达号营销?百度直达号怎样开通、运营? 2022-07-26
- 带着目的问问题「销售技巧」 2023-03-02
- 没有稳定的关系就没有销售 2023-07-13
- 客户说「我很忙没时间」,用这 3 招,让他主动愿意听你讲下去! 2023-05-22
- 见招拆招——对症下药化解客户拒绝,让您的销售业绩高速增长! 2023-04-01
- 成交法则,为您的生意带来巨大成功 2023-04-01
- 小红书运营第三步:增加阅读体验的同时让用户 Get 到重点 2022-06-28
- 微博营销的诀窍有哪些?(微博营销的技巧) 2022-07-22