h5微信支付功能封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了h5微信支付功能封装相关的知识,希望对你有一定的参考价值。

参考技术A 因为各种原因吧,我们在做移动端开发的时候,涉及到money,我们经常要做微信支付。如果是做小程序开发,我们可以直接用小程序的原生接口,一键搞定,如果是h5网页的话,那我们就需要使用微信提供的js-sdk了。
注:使用了jssdk不是所有的环境都可以调用微信来支付,它只是单纯的微信环境下支付,如果要想支持非微信浏览器内支付,需要开通微信h5支付功能,我们现在用的都是微信的JSAPI支付,而微信的h5支付是要求商户已有H5商城网站,并且已经过ICP备案。哈哈哈哈,是不是很惊讶!太坑了呀!
虽然坑,还得用,那咱就搞一下它。
首先,打开我们的微信公众平台,阅读一下网页开发的基本要求 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/iOS_WKWebview.html
然后我们了解到,使用js-sdk,我们先要

然后呢,这里给你们讲一下,我们接下来要做的事情。
首先呢,我们要先要获得网页授权,然后我们跳转我们项目中的业务页面。

这里主要是appid和重定向页面,至于是否弹出授权页面(scope=snsapi_userinfo/snsapi_base )等等,根据你自己需求来。然后呢,我们通过这个来进入页面的时候,在当前你支付页面的url上会有授权后返回的code参数。
如果提示:调用支付jsapi缺少参数: 这是由于没拿到openid导致,可以把window.location.href 替换成window,location.replace() ,这是因为微信网页授权会2次刷新页面,我们这样做能有效避免错误。
然后呢,我们定义一个方法

通过 let code = this.getQueryString('code'),我们去调用后端提供的接口,来获取openId。我们的支付不需要我去另外获取openId了,同学们自行卑微的通过接口用code换取openId吧
要注意的是,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期 。
然后我们接下来就是我们真正进行支付操作的时刻了

到这里,我们的微信支付基本就是完成了.其实整体做下来我们发现,无非是比把大象装冰箱里多两步而已

然后我们把我们封装的接口用起来

到此,一个完整的h5微信支付就完成了。下一次,我们把微信分享也添加进来。这样,一个我们常用的基于微信SDK的支付分享功能就被我们完成了。如果觉得对你有帮助的话,帮作者点个赞吧,码文不易,点一下支持支持!谢谢您嘞!

以上是关于h5微信支付功能封装的主要内容,如果未能解决你的问题,请参考以下文章

如何申请微信H5支付

H5微信支付啥意思

如何开通H5微信支付

由PHP开发的H5微信支付接口

微信公众号支付踩坑记

基于H5的微信支付开发详解