支付宝网站支付在微信浏览器中跳转问题(亲测)
奉上整理好的测试url:
点我调用支付宝
之前的博客中提到了使用支付宝提供的sdk实现手机网站支付,今天整理一个简单版本的,原理很简单就是访问支付宝网关,并传递一些参数,我们可以通过这个地址在线测试地址看到,也可以去研究sdk的源码,只是签名这些需要我们自己计算了。
众所周知,在微信浏览器中是无法唤醒支付宝的。资本家之间的斗争,让我们开发者多走了一些弯路,解决方案,无非就是在跳转到支付宝网页之前,先跳转到一个自定义的页面,引导用户使用浏览器打开,然后用户使用浏览器打开以后,在跳转到支付宝的网页,进而使用网页调用支付宝,说起来很简单,但是实际操作中可能会有很多细节需要注意。
如图所示: 我们打开的地址是上面的,
在微信浏览器打开,我们通过浏览器标识判断是否是微信浏览器:
如果是我们就使用js对参数先加密然后跳转到新的地址:
也就是第一个截图中很长的地址,后面goto这个参数就是网页支付所需要的链接。
因为网页支付必须要有一个自己的网站,还要审核,因此这里使用沙箱进行测试。
沙箱和正式的区别主要是支付宝的网关是不一样的,我们需要改成如图:
配置域名:
js加密作用主要是防止自己的支付参数被别人获取,html用于提示用户使用浏览器打开链接
当我们访问 :http://pay.ltchao.top/1.php 时,
通过js跳转到pay.htm并携带参数,
效果如图:当然这个页面可以自定义,这里只是个参考。
https://img-blog.csdnimg.cn/ffcc0db022d84ea794a11900336ef28b.png
用户在浏览器中打开页面后,再一次通过浏览器标识判断是否时微信浏览器,如果不是把参数解密以后,重新跳转到正常的支付地址。
源码
解压密码: