vue 路由配置如下: { path:'/opay/:openid', component: resolve => require(['@/page/act/orderPay'], resolve), /meta:{ requireAuth: true }/ }, 我的支付页面是 www.ceshi.com/opay/wwfjdkljfjklfjsdlk 示例 微信支付授权目录配置:www.ceshi.com/opay/ 点击支付时提示当前 url 未注册,不知道时 vue 的目录配置问题还是什么什么?望兄弟们支招,因为 vue 路由默认又一个#我们做了隐藏处理,不知道是不是跟这个有关系,
1
U2Fsd 2017-10-30 10:23:54 +08:00 1
# 前面加一个? 号
|
3
sarices 2017-10-30 10:35:39 +08:00
微信支付是要填写支付地址,最后一个要 / 结束,你这个示例微信是但你是新得一个目录,未授权,传参数最好用?,不要地址重写了
|
6
kanganxi OP |
7
kanganxi OP |
11
kanganxi OP @sarices 最坑的是我之前测试的时候加了一个 /ceshi 的目录,这个目录已经删除了,但是目前他娘的居然还能支付
|
12
qiayue 2017-10-30 11:56:20 +08:00
如果你注册的支付目录是 /opay/ ,那么你真实的支付页面地址必须是 /opay/fielname
filename 不能为空字符串,也就是支付地址不能是支付目录本身 |
13
BingoXuan 2017-10-30 12:00:32 +08:00 via Android
当初我们也遇到,不过根据前端同事说是关闭 history 模式,URL 调用时用 window.location.href.split('#')[0] 获取
|
14
ming 2017-10-30 12:34:26 +08:00
支付授权目录是一个目录,必须以 / 结尾,如果你的支付网址是 http://www.ceshi.com/opay/wwfjdkljfjklfjsdlk 那么你需要注册的是 http://www.ceshi.com/opay/wwfjdkljfjklfjsdlk/
|
15
sciooga 2017-10-30 12:35:05 +08:00 via Android
www.ceshi.com/ 加入支付授权就可以解决,因为目前 Android 微信客户端不支持 pushState 的 H5 新特性(看文档)
否则到 http://www.ceshi.com/opay/ 这里你不用 vue-route push 而是直接用 location.href 切 |
16
sujin190 2017-10-30 12:43:52 +08:00
@sciooga #15 Android 微信客户端不支持 pushState 这个其实好像 6.0 版本就已经修复了,jssdk 的其他接口都没什么问题,只是支付似乎不太稳定,我们测试来看 oppo 和华为的都是有时好,有时挂,不知道为啥,miui 和魅族以及原生的安卓都可以正常用,好奇怪
|
17
sujin190 2017-10-30 12:45:21 +08:00
@kanganxi #6 你是不是在 vue 路由切换到这个页面的时候没有重新做 config jssdk 啊,发现似乎 ios 在 vue 这样的单页用 history 切换路由是不需要重新 config jssdk 的,但是安卓需要,也是一个坑。。
|
18
kanganxi OP @sujin190 目前是安卓和 ios 都不行,最主要是我之前创建的 www.ceshi.com/ceshi1/可以完成支付,但是目前我已经在支付目录授权中已经删除,但是还是照样可以支付,其他的配置则无效,这个有点想不明白,我当时测试的时候 url 写了 ceshi1,开发完成我只是把 ceshi1 换成了 opay,就不行,这个就有点说不过去,目前最蛋疼的是我通过接口所有的配置参数都能获取到,就是报 url 为注册,
|
19
kanganxi OP @sciooga 我就是从上一页面通过:location.href 跳转到 http://www.ceshi.com/opay/的,而且跳过来所有配置参数都已获取到
|
21
kely 2017-10-30 13:03:27 +08:00 via Android
同 1L #号前面加个? 号
|
23
sciooga 2017-10-30 13:08:01 +08:00
|
25
favicon 2017-10-30 13:40:58 +08:00
兄弟 我之前刚解决了这个问题 我来给你说正确的解决方法
1.比如你微信配置的路径的是 www.xxx.com/pay/ 那么你支付页面的 url 就应该是 www.xxx.com/pay/xxx 也就是比配置的多一级 2.最坑的一点是由于是单页面应用,在 ios 里微信只记录你页面最后一次刷新的地址!这是重点! 比如你第一次打开是 www.xxx.com ,那么你即使页面和路由都切换到 www.xxx.com/pay/xxx/微信也认为你还是在首页,这应该是你遇到的“当前页面的 URL 未注册的问题”的根源所在。 解决方案:在进入支付页的时候强制刷新一下。 |
26
kanganxi OP @favicon 感谢兄弟,最奇葩的问题是我之前设置的支付目录是 /ceshi1/,实际我的请求 url 是 /ceshi1/openid(字符串),支付一直没问题,然后上周五我删除了这个授权目录,他娘的现在还是发起支付,我新设置的确实不行,
|
27
qiayue 2017-10-30 14:00:35 +08:00
25 楼结贴,就是 /pay/ 和 /pay/xxx 的问题
|
28
Alexisused 2017-10-30 14:26:25 +08:00
@favicon 请教一下微信强制刷新怎么搞,我试过原生 reload 方法 和 this.$router.go(0), this.$.router.go('/当前页') 都不行, 网上搜到说带随机数,试了也不行
|
29
sciooga 2017-10-30 17:23:59 +08:00
|