主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
最近,该公司申请了微信的H5支付。相关付款文件见https://pay.weixin.qq.com/wiki/doc/api/H5.php?。Chapter=15_4发布上线后,付款已报错。商家的参数格式不对。请根据微信官方文档的错误提示联系商家解决推荐人缺失的问题。所以,找出引荐人是不是真的失踪了,记录下解决问题的过程。
什么是Referer?HTTP Referer是HTTP请求头信息的一部分。当浏览器向web服务器发送请求时,它通常会携带Referer。
告诉服务器我是从哪个页面链接的,这样服务器就可以得到一些信息进行处理。
例如,在Chrome浏览器的控制台下,我们可以在请求标题下看到以下信息
临时头文件为show naccept:/Origin:local . test 5 . show referer:local.test5.show/test/showUser-Agent: Mozilla/5.0(Windows NT 10.0;Win64X64) Apple WebKit/537.36 (khtml,像壁虎一样)Chrome/70 . 0 . 3538 . 77 Safari/537.36其中Referer是属性。
referer的正确英文拼写是Referer。由于早期HTTP规范中的拼写错误,为了保持向后兼容性,会出现错误。
referer防盗链的作用,比如当你发现Referer访问和加载的是你自己的资源但不是你自己的站点时,你可以屏蔽Referer。
防止恶意请求同上。
微信H5支付等高级用法也需要这个,所以不知道他们是做什么的(hhh
referrer的流失:首先referrer是客户端的浏览器发送到服务器的,在客户端可以通过document.referrer获取。也就是说,发送referrer实际上是一种浏览器行为,发送与否的决定权在浏览器手中。话虽如此,HTTP协议对浏览器什么时候应该发送,什么时候不应该发送有严格的规定。
总结推荐人流失的几种情况。1.当网站使用刷新字段跳转时,大多数浏览器不会发送推荐人。
2.当用户点击从一个HTTPS网站到另一个HTTP网站的链接时,推荐人不会被发送。
3.在3.html5中,A标签的rel = "noreferer "可以让浏览器不发送referrer。
4.如果链接是使用数据URI方案创建的,浏览器不会发送推荐人。
5.使用内容安全策略,您还可以使浏览器不发送referer。
6.在html头中使用meta标签来控制不让浏览器发送referer。
自动生成URL链接。HTTPS改为HTTP。有时候,一些URL链接需要在API项目中生成并返回。但是,服务器端已经配置为支持HTTPS,通过HTTPS访问时生成的URL仍然是HTTP。
这个问题其实是服务器配置问题,类似于下面。
回到我遇到的微信支付问题,我跟踪了浏览器的跳转,发现是一个属性。第二种情况是我从HTTPS跳到HTTP,失去了Referer [PS:反过来,从HTTP跳到HTTPS也没问题,不会失去referer],中间隐藏的很深。
当然,我一开始并没有发现这个问题,因为从前端请求到API都没有问题。所有项目都与HTTPS一起部署,并且还携带了推荐人信息。然后推荐人在微信的付款请求URL的最后一步丢失了。
后来发现请求API项目时,API项目返回一个URL到前端。这个URL是后端代码根据规则(Laravel中的动作辅助函数)生成的。这个函数本身没有问题,但是生成的URL链接是HTTP,出问题了!!!
API配置了HTTPS请求,但生成的URL是HTTP。问题来了。我找了运维哥帮忙。最后发现是Nginx反向代理的配置问题。
nginx服务器配置片段如下:
location/{ proxy _ pass http://114.114.114.114:80;}可以看到proxy_pass参数指向HTTP协议,所以后台获取的URL都是HTTP协议。
将此设置为https://114.114.114.114:443;也就是问题终于解决了。
推荐:微信开发教程
以上是关于Referer(微信H5支付)流失细节的总结。请多关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:总结一下关于推荐人(微信H5支付)流失的问题 https://zhujicankao.com/73349.html
评论前必须登录!
注册