关于微信公众号支付当前页面的URL未注册,正确答案看这里!

微信公众号支付

需求: 新旧收银台合并

问题: 当前页面的url未注册

  • 错误信息如下图: img 网上搜索的问题答案无非就以下2种
1. 授权支付目录配置有误
  • 微信公众号支付已经在生产环境运行2年了
  • 检查授权域名目录配置是正确的
  • 如上图,配置授权目录为***.com.cn/m/insurance_unlogin/
  • 千万不要忘记授权目录后面的斜杠
2. appid配置错误
  • 只有一个appid,检查是正确的

问题分析

未合并收银台之前是可以成功调起支付的

怀疑步骤流程或接口请求数据不对,比对之后发现是一样的,前前后后弄了一天,郁闷了一天...唉声叹气之时,华哥将我分享出去的产品,再次分享出来,这时候神奇的事情发生了,微信支付成功,不会再出现当前页面URL未注册了.哈哈,赶紧研究下再次分享发生了什么

由于链接中携带测试环境及公司信息,故用以下网址演示

window.location.href = location.origin + location.pathname.replace('index.html', 'client.html') + '#insurance/cashier/index';

老框架跳转新框架的时候,由于页面发生变化,将index.html页面替换为client.html,同时也去掉了location.search(天坑呀),此处去掉location.search主要是因为携带了shareId,在新框架中用不着也无法解析,去掉了location.search也就意味着去掉了from=***message

解决问题

3. 不是来自微信分享(微信环境)

search中没有from=***message

  • 修正后代码
// 去掉shareId, from是来自微信分享, 没有微信公众号无法支付,报错URL未注册
var fromStr = '';
if (searchObj && searchObj.from) {
    fromStr = '?from=' + searchObj.from;
}
window.location.href = location.origin + location.pathname.replace('index.html', 'client.html') + fromStr + '#insurance/cashier/index';

总结

  • 这是微信公众号支付,当前页面URL未注册的第三种场景,若有不对之处,请留言更正
  • 微信公众号支付, 如果分享到微信的产品需要处理location.search,一定要注意from='***message'
  • 如果此篇博客对你有帮助,请访问优惠谷,谢谢! image

转载于:https://my.oschina.net/u/3071990/blog/1480270

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值