单页应用微信浏览器不能正确的刷新当前页面的 href。

解决办法是进入支付页面后强制刷新一次当前页面。

这里需要注意的一点是,在微信支付的后台配置支付路径时,注意他要求配置的是目录!!

意思是如果你的支付页面是 /pages/pay/pay 那你应该配置的目录为 /pages/pay/ 目录末尾有斜杆!

ps:坑。

下面是代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
onLoad(options) {
// 1. 初始化页面数据,获取当前欠款、预付金(仅作展示用)
util.loading('初始化支付...');
// 延迟 0.5 秒再刷新页面。不然刷新不起作用
setTimeout(this.reloadUrl,500);
},
methods: {
reloadUrl(){
let key = 'wxPay_flag';
let that = this;
if (!cache.get(key)) {
// 设置缓存标识
cache.put(key,'flag');
that.newHref = 'rm';
uni.hideLoading();
that.initPage();
// 2. 获取 js api 签名
that.getSign();
}else{
cache.remove(key);
// 刷新页面
window.location.reload();
}
},
}