前端时间在接入微信支付的时候,发现出现了这个问题。

借此记录一下排查思路和解决方法。

检查配置

确定微信后台已经配置了正确的支付授权目录,如下是我们设置的值。

支付授权目录:https://xxxx.com/pages/studio/

具体设置规则可看官方文档。

排查问题

唤醒支付目标页:pages/studio/list

登录页:pages/login/login

当时发现:为什么截图上显示的路径不是我们目标路径,反而是被登录拦截后登录页路径呢?

更奇怪的是,在目标页刷新了一下就能正常唤醒支付了。

带着这个疑惑,我们尝试用不同设备再次重复以上的步骤,出现的结果得出了一个结论,请看下面。

结论

IOS,如果首次访问的页面不是支付授权目录规则下的话就有问题。

而安卓是没有此问题的。

然后,根据尝试的结果,自我总结了以下结论。

安卓 和 IOS 判断这个支付授权目录的规则不一样,分为两种。

安卓:CurrentPath - 当前域名

IOS:LandingPath - 落地域名


怎么理解这两个呢?

CurrentPath 就是当前的页面;可以理解成 location.href,无论你跳转多次,都是获取你当前的路径。

LandingPath 就是你一开始加载进来的页面;在微信上的表现就是有顶部loading条的那个页面,无论你之后跳转多次,都是获取了你首次加载进来的页面。

这样就能解释,为什么IOS唤醒支付的时候会有几率报 当前页面的URL未注册 了。

因为首次加载的页面不是所配置的支付授权目录,无论你后续是否跳转到正确的目录,IOS微信也只会与你 Landing 的页面做比对。

解决办法

使用 location.href 强行跳转一次

还想起,之前测试的时候,都发现每次刷新后就能正常支付了。

所以,我们可以使用 locaiton.href 这种形式,用户点支付的时候跳转一下,让LandingPath变成你授权支付的页面。

从当初的页面流程由,用户访问 -> pages/login/login -> pages/studio/list -> 点击支付 -> 唤醒微信支付弹窗

改为目前的页面流程,用户访问 -> pages/login/login -> pages/studio/list -> 点击支付 -> pages/studio/checkout -> 唤醒微信支付弹窗

我们的做法是增加了一步“收银台”的步骤,把这个页面(pages/studio/checkout)添加到微信支付授权目录,用户点击支付的时候,location.href 跳转到这个页面,刷新微信的LandingPath,确保当前LandingPath是你配置的授权支付页面,这就能解决问题了。

微信公众号支付问题 - 当前页面的URL未注册相关推荐

  1. vue 调用共众url_vue单页面,在微信公众号支付中遇到的URL未注册BUG解决方法-Go语言中文社区...

    今天在做微信公众号支付的时候,遇到一个bug,在当前支付页面点击支付,就会报错,提示当前页面的URL未注册.如下图: 但是,这个URL我们是在后台微信公众号配置了的,所以说不会出错. 但是我们刷新一次 ...

  2. ios调用微信支付提示当前页面的URL未注册

      ios调用JSAPI微信支付提示"当前页面的URL未注册",而页面手动刷新后再次支付则正常,安卓也正常,肯定不是授权目录配置问题.   在微信支付页面,当通过JSAPI微信支付 ...

  3. 微信JSAPI支付方式与错误(当前页面的URL未注册,支付验证签名失败)

    微信JSAPI支付文档 前端调用JSAPI支付有两种方法 方法一: wx.chooseWXPay({// 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写.但最新版的支付后 ...

  4. 微信支付:“当前页面的URL未注册”

    最近在尝试着写微信支付方面的内容,今天下午的时候遇到了一个问题,也就是当前页面没有进行注册的问题. 在写好后台代码之后我在微信后台配置了测试授权目录和支付白名单,如下图所示,但是无论我如何进行测试总是 ...

  5. 微信支付 域名与后台配置不一致 当前页面的URL未注册

    在对接微信时,经常遇到这两个问题. redirect_uri域名与后台配置不一致 这通常发生在网页授权 为了获取openid,首先请求https://open.weixin.qq.com/connec ...

  6. 微信JSAPI支付,报错当前页面的URL未注册

    调用微信统一支付的接口,支付时报错: 解决方案: 打开微信商户平台,将当前页面的URL配置到JSAPI域名.

  7. 微信支付当前页面的URL未注册问题[单页面]

    前言 微信支付时,当调用微信支付的时候,微信会判断当前页面和微信公众号后台设置的支付授权目录是否一致,他会把页面最后一次刷新的url作为判断依据(如果用户刷新了任何页面,这个页面就是支付页面),这个时 ...

  8. 微信支付-当前页面的URL未注册

    微信支付出现下面问题: 解决办法: 微信商户后台> 产品中心 > 开发配置 > 支付配置 直接添加域名dev-runyi.dev.fuyichen.cn/即可, 上述图一中出现的地址

  9. yii2嵌入微信公众号支付

    序言 随着微信被越来越多的人使用,微信商城成为如今的热门.每一个商城都需要有自己的支付方式,微信商城也不例外.微信公众号支付就是微信商城的一种支付方式,微信支付随着微信的推广使用也被广泛应用.今天我主 ...

最新文章

  1. Linux文件目录付空,Linux 文件系统
  2. HDU5762(暴力)
  3. rpm 安装 忽略依赖_解决RPM包依赖关系
  4. 企业安全挑战 内网安全技术十大策略
  5. ConstraintLayout 不能作为activity的根节点,否则fragment显示不出来
  6. 多线程之旅之四——浅谈内存模型和用户态同步机制
  7. 【UAV】高度控制代码分析
  8. WIN 10 安装 Hadoop 2.7.7 + Spark 2.4.7 记录
  9. springboot整合websocket实现简易版单人聊天
  10. python生成热度图_Python数据可视化 热力图
  11. Nagios_快速配置
  12. sci translate好用吗_收藏!SCI论文Introduction 和Conclusion的写作建议
  13. Julia:Datetime的用法
  14. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 31: ordinal not in range(128)
  15. 【干货】区块链技术生态的设计|《白话区块链》作者蒋勇分享实录
  16. KEIL MDK的安装(包含HAL库)
  17. js判断浏览器是pc端还是手机端
  18. php解压有密码的zip,linux下解压有密码的rar压缩包的方法
  19. ZZUOJ 公主与骑士 (BFS)
  20. 那些年我做的毕业设计

热门文章

  1. 【BDTC 2016】大数据云服务论坛:云上的大数据探索
  2. jmp指令【原理详解 8086汇编语言+笔记】
  3. lol国服维护可以玩别的服务器吗,LOL:除了艾欧尼亚,其他服务器都只能算是“郊区”吗?...
  4. 高通8155/8295 boot分析
  5. 全球报告表明,中文是现如今增速最快的语言学习赛道,全球有超过600万人在学中文 | 美通社头条...
  6. 三天让车跑起来!stm32循迹车 —— 第一天:基本模块使用方法
  7. 数据结构约瑟夫环实验报告
  8. pd.DataFrame.melt()函数
  9. 数学公式——海伦公式
  10. 百度浏览器android,百度浏览器app下载