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

news/2024/11/17 18:29:02/

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

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

检查配置

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

支付授权目录: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是你配置的授权支付页面,这就能解决问题了。


http://www.ppmy.cn/news/897843.html

相关文章

Wechaty创建属于自己的微信机器人(附源码)

1.微信机器人常用开源框架 itchat itchat是一个开源的微信个人号接口,基于python调用微信使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人wechaty Wechaty是适用于微信个人的Bot SDK ,可以使用6行 js 创建一个机器人具有…

微信小程序域名注册

在微信小程序中直接使用url地址进行网络请求,会报以下错误,这是因为在小程序中发送网络请求,对应的域名需要在小程序的域名列表中备案注册。 打开微信小程序官网登录进入后台管理 https://mp.weixin.qq.com/cgi-bin/wx 小程序中仅支持https协…

[记录]vue3实现PC项目微信扫码进行账号注册/登录(内嵌二维码)

记录 "PC端采用微信扫码,进行账号注册/登录功能" 的实现过程(仅前端) 使用场景:在网站顶部导航栏的登录入口,中实现微信扫码登录功能 开发参考文档:微信官方文档(微信登录功能-网站应用微信登录开发指南) 微信提供的扫码方式有两种,分别是: 跳转二维码…

PyTorch翻译官网教程-DEPLOYING PYTORCH IN PYTHON VIA A REST API WITH FLASK

官网链接 Deploying PyTorch in Python via a REST API with Flask — PyTorch Tutorials 2.0.1cu117 documentation 通过flask的rest API在python中部署pytorch 在本教程中,我们将使用Flask部署PyTorch模型,并开放用于模型推断的REST API。特别是&…

注册微信小程序并开通微信支付流程

首先我们要梳理清楚,微信到底有哪些平台,以及每个平台的作用。 微信开放平台(如果单单只做小程序的话,这个平台可以不管,我们公司因为还有App所以也开通了,并且可以在开放平台绑定小程序【目前来看绑定没什…

怎么免费注册微信小程序-微信小程序开发-视频教程1

自从去年微信发布小程序以来, 受到很多人的关注, 今年微信小程序不断的推出新功能, 组合线下活动, 让人有更多期待, 今天我们来看看怎么注册微信小程序。 什么人和机构可以注册微信小程序 微信公众平台允许以下5个主体…

如何正确的注册微信开发测试号

注册测试号 注册的地址在 这里 要进行微信公众号的开发,那就需要一个本地的开发环境来进行开发。而微信测试号就正好提供了这样的一个development环境。每个微信号只能对应一个测试号,但是每个测试号可以开发多个微信公众号项目。微信号与测试号是一一…

微信扫码登陆或注册设计流程

一、整体流程 1、点击微信登录按钮,跳转微信扫码页面 2、用户扫描登录码,匹配用户信息 3、未匹配到用户信息,做注册操作 4、匹配到用户信息,做登录操作 微信授权流程说明,参照微信开放平台 获取access_token时序图…