使用Vue的时候,有两种模式,hash 和 history 。在做微信公众号支付的时候,第一步需要做微信授权,而微信授权会涉及到一个回调页面,也就是支付页面。而hash 模式,因为 “ # ”,会导致回调页面失效,也就是获取不到code,而用history就不会出现这样的问题。所以,若是线上项目使用的hash模式,有两种做法,其中一种,用webpack打包的时候,将支付页面独立出来,去掉路由,打包后形成一个独立的html页面。还有一种,跳转到支付页面的时候,在路由后面加个 “?”号(这个方法我未试过,只是在输入域名的时候,手动加一个问号,是可以调起微信支付的)。具体的webpack配置多页面的方法:https://segmentfault.com/a/1190000007287998
微信公众号支付,只需要引入下面的代码,不需要引入微信sdk。而,微信支付需要的参数,是你在统一下单后(我的做法是进入支付页的跳转,其实是跳转到微信授权链接【静默授权】,然后授权后回调页面到支付页【redirect_uri 定义的地址】),此时,地址栏就有了code,获取code,传给后台,然后后台就可以根据code,去生成支付所需要的参数了。至于后台如何获取openid,不需要前端关心。再然后,通过获取接口的参数,传到微信支付代码里面,就可以了。