公司公众号产品需要支持微信签约,通过后端接口跳转微信的签约页面,然后再mounted方法中获取签约完成后返返回的标识,来执行之后相应的页面步骤。

微信开发文档:微信支付签约

测试过程中很顺利,从出单到核保到签约。。。然这时候测试的小姐姐说签约成功后会跳403?

嗨害,最主要的是这玩意儿还分机型和版本型号,用iphone13测就跳转403其他就没问题。。。

检查了Nginx的配置,前端代码,都没发现有问题

之后去找微信开发文档  , 期望有类似于微信支付成功后的回调地址参数  例如require_web,然并没有

产品就这样在我们瑟瑟发抖的心情中一期上线了

抓包发现,微信的回调页面地址没有获取完整,比如我们发起签约的页面是www.baidu.com/#/a/b,签约成功后应该还在是回调这个b.vue,结果微信的回调地址直接是www.baidu.com,导致了nginx没有配置这个域名。嗨害~~

发现解决这个问题的途径是偶然在刷思否网站时候,有一篇博客提到了类似的问题 ,抱着试一试的想法,结果真成功了。附上小哥的链接:微信签约在部分安卓手机返回404

答案就是使用meta标签referrer属性

<meta name="referrer" content="always" />

这个属性的含义是在某些情况下,网站想要控制页面给服务(server)发送referrer信息。

referrer用来指定当前页面是从哪个页面跳转过来的,即http请求报文头中的referrer包含了跳转至当前页面的上一个页面的url地址

referrer的content值有never、always、origin

  • 如果content的值为never:删除请求头中的referer信息;
  • 如果content的值origin:只发送origin部分;
  • 如果content的值为always:不改变请求头中的referer的值;
  • 如果content的值same-origin:同源的链接和引用,会发送referrer,其他的不会;
  • origin-when-cross-origin:同源的链接和引用,会发送完全的 referrer 信息;但非同源链接和引用时,只发送源信息

1、跳转微信签约页面

wxPublicContract(productData,proposalNo){let params = {productCode : productData.productCode, //产品代码openid : productData.openid,//openIDcontractType : '0',name : 'xxx',proposalNo : proposalNo //投保单号}getWxPublicContract(params).then(res =>{if(res.code == 200){window.location.href = res.content; //跳转签约地址}else{this.$toast(res.message)}})
},

2、签约成功后,跳转页面

/** 签约完成 应该返回到支付页面 路由hash模式会导致微信跳转会截取#号之前的 所以会返回到投保页面 在该页面判断是否签约 跳转至支付成功页面   通过URL参数 from_wxpay=1来判断是否签约**/
var searchURL = window.location.search;
if(searchURL){searchURL = searchURL.substring(1, searchURL.length);let from_wxpay = Qs.parse(searchURL)['from_wxpay'];if(from_wxpay == '1'){this.fromWxpayVisible = truelet productData = JSON.parse( window.sessionStorage.getItem('productData') );//分支机构代码let querybusiness = ''if(productData.businessOrgCode){querybusiness = `&businessOrgCode=${productData.businessOrgCode}&salesPartnerCode=${productData.salesPartnerCode}`}//setTimeout( ()=>{window.sessionStorage.removeItem('productData')                  window.location.href = `${this.$_config.API.baseURL}${This.$_config.URL.success}/1?id=${productData.proposalNo}&code=${productData.productCode}&newFlag=1${querybusiness}`//},3000)}
}

完,感谢观看。

微信签约完成后,403错误解决相关推荐

  1. Asp.net MVC应用在IIS7上部署后403错误解决方案

    Asp.net MVC应用在IIS7上部署后403错误解决方案 参考文章: (1)Asp.net MVC应用在IIS7上部署后403错误解决方案 (2)https://www.cnblogs.com/ ...

  2. Tomcat容器部署 浏览器访问服务器页面404 403错误 解决方法

    启动一个tomcat容器,注意:新版本tomcat镜像启动时必须映射端口(8080为默认容器端口) docker run -d --name tomcat -p 8080:8080 -v /mnt/e ...

  3. nginx 403错误解决方法

    nginx 403错误解决方法 如果报了directory index of "/data/web/yafwx/public/moban/" is forbidden 看nginx ...

  4. Pycharm Error loading package list:Status: 403错误解决方法

    Pycharm Error loading package list:Status: 403错误解决方法 参考文章: (1)Pycharm Error loading package list:Sta ...

  5. 微信小程序开发时遇到403错误解决

    前端程序向后台服务器发送请求时,如果服务器不允许跨域请求,则会导致403错误发生(错误信息为:"Invalid CORS request").我们通常的解决办法是将信任的域配置到C ...

  6. win8安装wampserver报403错误解决方法

    看着别人开始体验win8了,前几天我也安装了win8系统,总体来说还不错,但是今天安装完Wampserver后,浏览器输入localhost,竟然报了403错误,我以为我安装出错了,后来研究了半天,发 ...

  7. centos7 安装 nginx(https) 及403错误解决方法

    1.检查并安装所需的依赖软件 1).gcc:nginx编译依赖gcc环境 安装命令:yum install gcc-c++ 2).pcre:(Perl Compatible Regular Expre ...

  8. ajax 调用服务器接口报403错误解决办法

    发现问题 在前端页面中远程调用服务器接口时报403错误,而直接在浏览器访问则不会报错. Ajax调用结果: 浏览器调用结果: 报403原因 经过分析发现是因为前端和服务器的域名不同而触发了防盗链机制. ...

  9. XAMPP本地配置虚拟目录 出现403错误解决办法

    1. 检查配置目录 <VirtualHost *:80>      ##网站根目录       ServerAdmin webmaster@dummy-host2.example.com ...

最新文章

  1. 软件开发面试_如何为成功的软件开发工作面试做准备
  2. Docker(二):Docker 容器使用
  3. python在会计工作中的应用-python有什么用(会计专业)
  4. 清华大学计算机系71班张晨,“神仙打架”要来了!网友:又到了凡人围观的时刻...
  5. 【文文殿下】快速傅里叶变换(FFT)学习笔记
  6. 使用intellij idea打开以前用maven的包
  7. 【转】用matlab画极坐标图,希望不同的半径点对应不同颜色,应该怎么做?有什么函数
  8. Nginx的rewrite之set指令
  9. 又是一年中秋节,好想举杯邀明月
  10. 为传递函数自动设定PID参数——pidtune学习笔记
  11. .animate css,animate-css
  12. java开始到熟悉100-102
  13. linux 安装php7.3
  14. 《政府采购货物和服务招标投标管理办法》指明的方向
  15. python时频图_怎样用python画wav文件的时频分析图
  16. word2003如何设置护眼模式_word2003护眼色设置
  17. 计算机视觉基础教程笔记索引
  18. 线阵相机调帧率_线阵相机调试文档
  19. 从游戏商业思维中分析游戏用户行为数据(主要是参考网上的一些感想)
  20. arcengine双击属性表内的一行,定位到该要素,并添加到选择集

热门文章

  1. 【MoCo】《Momentum Contrast for Unsupervised Visual Representation Learning》
  2. 【测量学】速成汇总——摘录高数帮
  3. android 字体慢慢变大 网易新闻,如何在网易新闻中设置字体大小?在网易新闻中设置字体大小的方法...
  4. 初识运营,明晰运营的学习路径
  5. Ros图像与Opencv图像的相互转换
  6. angular5学习系列之基础知识
  7. 基于VC++包过滤技术防火墙设计与实现
  8. python流行和java哪个好_python和java哪个好就业
  9. 维多利亚的秘密发布2023第一季度财报:维密中国合资后表现突出,扭亏为盈佳绩频传
  10. Hux-JPress免费博客模板