在公众号H5页面里拉起微信支付的方法有2种:
第一种:利用微信体系的浏览器内置对象WeixinJSBridge,再调用WeixinJSBridge.invoke()方法去拉起支付。但是这只能在微信公众号里面玩,在其他浏览器是不可行的。而这种方法在VUE3里面,是要空降一个'WeixinJSBridge',想要TS去编译他也是比较麻烦的事情。
第二种:利用JSSDK,这种方法可以使用在任何浏览器,但是前提是要先安装一个'weixin-js-sdk',而最终拉起微信支付的方法是wx.chooseWXPay()。
我这里是使用VUE3写的H5页面,固然我是选择了第二种方法。
首先 npm i weixin-js-sdk -S 安装下JSSDK。
然后,在你要拉起微信支付的页面,import wx from "weixin-js-sdk",导入JSSDK包,直接上代码:
如果这时候TS报找不到weixin-js-sdk的声明模块,你可以新建一个xx.d.ts文件,然后在文件里面写一个声明: declare module 'weixin-js-sdk',然后在tsconfig.json文件里面找到include,把你新建的xx.d.ts导进去:
我的完整版: