多合一收款二维码原理及实现(源码)
无论是支付宝还是微信的收款码,其本质上是一个包含了收款链接的二维码。所以我们的思路是:检测如果是支付宝浏览页面,就给出支付宝的付款链接、如果是微信,就给出微信链接……
那么问题来了,如何进行判定呢?
很好办,根据 UA 就能进行判定了!不懂什么是 UA?
这部分的代码如下:
if(navigator.userAgent.match(/Alipay/i)) {
// 支付宝
} else if(navigator.userAgent.match(/MicroMessenger\//i)) {
// 微信
} else if(navigator.userAgent.match(/QQ\//i)) {
} else {
// 其它
}
理论上来说,进行判定后直接给跳转到对应的收款页面就行了,然而实际测试发现在QQ和微信中并不能直接调用付款功能,只有支付宝能直接进行付款。
这里就只能用一个折中的办法:如果是QQ或微信扫的码,就再放出一个二维码的界面,让用户通过长按识别二维码进入支付流程。
最终完成的效果如下:
你可以用 QQ 或是微信或是支付宝中的任意一个扫描这个二维码进行测试(当然如果还打个款就再好不过了,哈哈哈哈… )
(文章结尾有源码)
注:请将代码中的收款链接按以下教程修改为自己的。
请用专门的 Html 编辑器(如 notepad++)进行编辑,切勿直接用记事本编辑,否则可能出现中文乱码!
收款链接获取方法
以下以微信为例,QQ、支付宝的获取方法类似。
打开微信,点击右上角>收付款>找到“二维码收款”>将得到的收款二维码保存(截图)
用二维码识别工具(如 https://cli.im/deqr/) 上传二维码图片并获取到二维码中的收款链接。
将获取到的收款链接粘贴并替换源码中的链接即可。
文章链接:https://www.lilianhua.com/multi-in-one-collection-qr-code-principle-and-implementation-source-code.html
English (US)
Español (ES)
Português (PT)
Français (CA)
Español (MX)
Español (VE)
Español (CO)
Español (AR)
Português (BR)
Quechua (PE)
Guaraní (PY)
简体中文 (ZH)
繁體中文 (HK)
日本語 (JP)
한국어 (KR)
हिन्दी (HI)
Pilipino (PH)
ไทย (TH)
Tiếng Việt (VN)
Bahasa Melayu (MY)
Bahasa Indonesia (ID)
বাংলা (BD)
اردو (PK)
සිංහල (LK)
ភាសាខ្មែរ (KH)
English (UK)
Français (FR)
Deutsch (DE)
Italiano (IT)
Русский (RU)
Nederlands (NL)
Türkçe (TR)
Polski (PL)
Svenska (SE)
Norsk (NO)
Dansk (DK)
Suomi (FI)
Ελληνικά (GR)
Čeština (CZ)
Magyar (HU)
Română (RO)
Български (BG)
Српски (RS)
Українська (UA)



