1.在用vue.js做微信公众号支付的时候碰到了很奇怪的问题,并且只有android系统会发生这种问题:get_brand_wcpay_request:fail 这个错误是因为授权目录填写错误导致的,授权目录整个链接中都不能出现#号哦,这个是微信支付官方不支持。相同的请求ios系统不会有任何问题,正常调起微信支付。而android则不行,得到的回复就是前面的描述。ps:我的微信授权目录配置没有任何问题,也不存在#号,只是vue.js的整个支付link存在路由的#号
2.所以首先我会考虑前端有没有什么方法可以去掉,或者改变路由地址以#号分隔这个问题。
3.如果前端不行,我看了HTML5 History Mode是否能够解决这个问题。文档给的信息很少,也没有说清楚是怎么解决的。希望能够得到答案
楼上正解,在#号前面加上一个?号即可解决,换成history好像会遇到其他问题(印象中是安卓行ios不行或者反过来),总之我是加了?号后成功支付了
这是微信的 bug ,添加 querystring 即可。
vue-router2.0 mode: 'history'
1.开启html history模式 https://github.com/vuejs/vue-...
2.rewrite url
// nginx例如 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.html?s=$1 last; break; } }
换个模式就可以了
const router = new VueRouter({ mode: 'history', routes: [...] })
http://router.vuejs.org/en/es...