原理:生成的万能码其实就是一个判断的入口,是一个url地址,通过html代码,获取来访者的UA,然后根据UA返回对应的收款码。
源码下载地址:https://wwa.lanzous.com/isQM6fjp4dg
效果预览:万能收款码
升级版本:万能收款码Pro(更美观)
1、先单独生成保存微信、QQ、支付宝的收款码,如何生成保存不用单独介绍了吧。
2、打开草料二维码解码器,上传微信、QQ、支付宝的收款二维码图片,会对应生成扫描结果,复制保存好这个结果,第3步要使用。
3、修改pay.html文件,将源码中QQ、微信、支付宝的收款码链接替换掉。
4、将pay.html上传到网站根目录,保证自己的网站www.xxx.com/pay.html能访问(也可以放到任意子目录)。
访问草料二维码,将自己网站www.xxx.com/pay.html链接生成一个二维码,保存好这个二维码。
5、最后根据自己的喜好修改调整图片样式格式,大功告成。
理论上来说,判定后直接给跳转到对应的收款页面就行了,但实际测试QQ和微信中并不能直接调用付款功能,需要再识别一次,只有支付宝能直接进行付款,本站效果:
收款原理
生成的万能码其实就是一个判断的入口,获取客户端UserAgent,然后根据UserAgent跳转到不同地址或者显示对应二维码,比如你的客户端来自支付宝,就跳转到支付宝链接。三个支付方式的UserAgent
Alipay
: 支付宝MicroMessenger
: 微信QQ
: QQ or TIM
目前问题
- 首先需要跳转到网页,然后才会判断设备,微信扫码时可能会出现安全提示!
- 支付宝:支付宝的二维码返回的是https链接,可以直接跳转到支付宝发起支付。
- 微信:微信使用的自家协议
wxp://
,无法直接发起支付,只能返回一个二维码让微信识别后再进行支付。 - QQ/TIM : 返回的https链接,无法直接发起支付,也需要返回二维码识别支付。
关于Pro版本
刚开始的版本二维码没有白色边框,看起来很丑,于是想找下有没有其他的解决方案。
最终在GITHUB找到了这个:
? 微信、支付宝、QQ 三合一收款二维码(单文件版)
看了下发现和之前发的那个几乎是一样的,但作者并非同一人,也不知道到底是谁的作品了……
感兴趣的可以看下。
2020年8月13日 上午9:17 1F
用UserAgent判断,失败率很高啊。。。