经常有朋友问我博客的多合一二维码收款是如何做的,其实网上已经有很多开源方案可以解决,这里就简单的分享一下。
收款啦
收款啦是一款开源的收款码合并工具,可以将支付宝、微信支付、QQ支付合并为一个二维码,收款直接到账,无手续费。
访问收款啦官网:https://qr.52ecy.cn/ 上传自己的二维码合并即可,该工具是开源的,相对比较安全,如果仍然担心安全的同学可以下载源码自行部署。
收款啦源码:https://github.com/178146582/qr
OneQRCode
OneQRCode是一款纯静态的收款码工具,代码开源,功能和收款啦一样,支持支付宝、微信支付、QQ支付收款码合并,不过需要自己动手修改一下才能使用。
1.访问:https://github.com/mengkunsoft/OneQRCode/archive/master.zip 下载最新的源码解压,需要用到的就一个单页面index.html
2.使用文本工具打开index.html
将qqUrl/wechatUrl/aliUrl
修改为自己对应的收款地址,如下截图。
3.以微信支付为例,打开微信支付 - 收付款 - 二维码收款,然后保存收款码。
4.我们需要识别二维码中的内容,以便配置,打开草料二维码扫描器https://cli.im/deqr ,上传刚刚保存的微信收款码,记录扫描结果。
5.将扫描结果填写到index.html
的wechatUrl
选项,支付宝、QQ支付的配置方法也一样,就不再重复赘述了。index.html
修改完毕后上传到您的网站中访问就可以了。
收款原理
收款啦、OneQRCode或者网上的其它多合一收款工具其实原理都一样,无非就是获取客户端UserAgent,然后根据UserAgent来跳转到不同地址或者显示对应二维码,比如你的客户端来自支付宝,就跳转到支付宝链接。下方是三个工具的UserAgent
Alipay
: 支付宝MicroMessenger
: 微信QQ
: QQ or TIM
一些问题
- 支付宝:支付宝的二维码返回的是https链接,可以直接跳转到支付宝发起支付。
- 微信:微信使用的自家协议
wxp://
,无法直接发起支付,只能返回一个二维码让微信识别后进行支付 - QQ/TIM : 返回的https链接,无法直接发起支付,也需要返回二维码识别支付
测试
了解原理后,就可以自己折腾一个多合一二维码收款啦,不想折腾也可以利用上述现有的开源方案。下方是xiaoz自己撸的收款码,在上述基础上简单优化了一下。
- 测试地址:https://dwz.ovh/donation
- PC访问让用户自行选择收款码打赏
- 手机浏览器访问直接发起支付宝打赏
- 微信访问显示微信收款码,需要识别后打赏
- QQ/TIM访问显示QQ收款码,需要识别后才能打赏
最后
文章下方就是小z博客的收款码啦,各位可以点击打赏试试效果哦。
好像很方便的样子
码有了,谁来帮我测试下,^_^
上传支付宝可以,上传微信图片警告图片包涵不支持的格式
把图片后缀该一下试试?
这东西很不错,谢谢分享 拿走了。
学习了,谢谢
东西很好,然而并没有人会打赏我,所以知道这个东西就行了。
按照你的配置,支付宝扫描后,会跳转到商家服务页面,无法正常支付;
自己扫自己是不行的哦,用别人的支付宝扫描试一下。