支付宝和微信收款码二合一(图层合并)

文章正文
发布时间:2025-07-29 04:45

支付宝和微信收款码二合一(图层合并)

网上看了一下,居然没有开源免费通过图层合并实现的.纯前端项目

pEC4oOP.png


在线demo
exe(纯webview套壳,需要webview2,win10以上自带)生成网址
https://wwtw.lanzouq.com/iZe8p2ki938b
macos:
https://wwtw.lanzouq.com/i0lHi2ki96md
html:
https://wwtw.lanzouq.com/iB4P82ki8vsd

源码

主要合并方式实现有三种:

通过 UA 判断

图片合并

第三方支付平台接入

UA(User Agent)判断 原理

根据访问者的 User Agent 信息判断访问者使用的 App(支付宝或微信)。

如果检测到 User Agent 包含微信标识,则跳转微信收款链接。

如果检测到 User Agent 包含支付宝标识,则跳转支付宝收款链接。

优点

实现简单:只需一个中间页面进行 UA 判断并跳转。

可以纯前端,把两个链接都包含在二维码中.

也可以把数据放后端

缺点

UA 可能变更:微信和支付宝的 User Agent 格式可能会更新。

微信不支持直接拉起:需要客户长按识别二维码。

不稳定:需要中间页面的服务器响应。服务器挂了就没办法使用

不安全: 跑路还好,最多不能用.如果后台恶意修改代码,钱就没了

第三方支付平台接入 原理

通过接入第三方支付平台,使用它们提供的 API 同时支持支付宝和微信支付。

优点

功能丰富:支持更多支付方式(如银联、信用卡)。

自动化程度高:无需自行维护逻辑。

缺点

成本较高:需要支付服务费或分成。

依赖第三方服务:平台不可用时可能影响业务。

二维码合并

pE9TYxs.png

原理

通过二维码的纠错机制,即使有一部分二维码被覆盖,也能正确解析.

支付宝的链接是https://qr.alipay.com/xxx  

微信的链接是wxp://xxxx  

微信识别二维码偏向于从左到右识别,支付宝不搭理微信的链接wxp://xxxx

其实不限于支付,其他微信/支付宝扫码都可以这个搞

所以可以这么实现:

把链接解析出来,然后用最高容错H(30%纠错),重新生成二维码

把微信作为底层,支付宝放在上层的右下角

顺时针旋转支付宝180°,防止微信优先识别支付宝二维码

删除支付宝的一部分,防止微信优先识别支付宝二维码

优点

简单易用:纯物理方式。没有服务器,不担心安全问题

缺点

兼容性有限:就能两个,3个(比如)都实现不了。

抗污能力差:如果涂黑了一部分,很容易导致用不了,不再像原生二维码那样有强大纠错能力。

微信拉起失败:极少部分情况下微信还是会打开支付宝的链接

总结 方式 实现复杂度 安全性 费率 多平台 其他
UA 判断   较简单       支持多个   微信不能直接拉起,需长按识别  
图片合并   简单       仅支持2个   微信极少数情况下会打开支付宝的链接  
第三方支付平台   较复杂   看第三方信誉     支持很多(比如直接银行卡)   没有任何问题  
关键代码             // 绘制支付宝二维码(旋转180度并裁剪)             const alipayPicWidth = qrSize.value / 2             if (alipayQrContent.value) {                 const alipayQrCanvas = document.createElement('canvas')                 await QRCode.toCanvas(alipayQrCanvas, alipayQrContent.value, {                     errorCorrectionLevel: 'H',                     margin: picMargin / 2,                     width: alipayPicWidth,                     color: {                         dark: '#000000',                         light: '#ffffff'                     }                 })                 // 创建临时画布来处理支付宝二维码                 const tempCanvas = document.createElement('canvas')                 tempCanvas.width = alipayPicWidth                 tempCanvas.height = alipayPicWidth                 const tempCtx = tempCanvas.getContext('2d')                 if (tempCtx) {                     // 绘制原始支付宝二维码                     tempCtx.drawImage(alipayQrCanvas, 0, 0, alipayPicWidth, alipayPicWidth)                     const clearHeight = alipayPicWidth / 2 / 2                     // 清除右下角1/4区域                     tempCtx.clearRect(alipayPicWidth / 2 + clearHeight, alipayPicWidth / 2,                         alipayPicWidth / 2 - clearHeight, alipayPicWidth / 2)                     // 保存当前状态                     ctx.save()                     // 设置旋转中心点并旋转                     ctx.translate(qrPosition.value.x + alipayPicWidth / 2,                         qrPosition.value.y + alipayPicWidth / 2)                     ctx.rotate(Math.PI)                     ctx.translate(-(qrPosition.value.x + alipayPicWidth / 2),                         -(qrPosition.value.y + alipayPicWidth / 2))                     // 绘制处理后的支付宝二维码                     ctx.drawImage(tempCanvas,                         qrPosition.value.x,                         qrPosition.value.y,                         alipayPicWidth,                         alipayPicWidth                     ) 更新

有人反馈支付宝扫不出来 或者微信经常跳
现在添加3个参数供大家测试
目前感觉 横向+从里到外清除+清除50% 效果最好
由于并不知道那种方案最好
添加高级选项,供大家调试
添加背景选项
添加自定义背景

 

免费评分 参与人数 198吾爱币 +198 热心值 +173 理由

gsh123china
  + 1   + 1   谢谢@Thanks!  

清风阁丶Hunter
  + 1     感谢发布原创作品,吾爱破解论坛因你更精彩!  

wlq127
  + 1   + 1   鼓励转贴优秀软件安全工具和文档!  

gzb888
  + 1   + 1   谢谢@Thanks!  

KONKAv983
  + 1   + 1   谢谢@Thanks!  

yundian233
  + 1   + 1   谢谢@Thanks!  

Firefox1
    + 1   热心回复!  

VincengGG
  + 1   + 1   热心回复!  

card628
  + 1     热心回复!  

alexxi0571
  + 1   + 1   谢谢@Thanks!  

浮尘晓梦
    + 1   谢谢@Thanks!  

JiuJingXiaoDu
    + 1   用心讨论,共获提升!  

anning666
  + 1   + 1   用心讨论,共获提升!  

BTCQAQ
  + 1     谢谢@Thanks!  

heiyue003
  + 1   + 1   我很赞同!  

1000Y
  + 1   + 1   谢谢@Thanks!  

sunline
  + 1   + 1   谢谢@Thanks!  

a446489393
  + 1   + 1   感谢您的宝贵建议,我们会努力争取做得更好!  

italywwy
    + 1   我很赞同!  

jsyczxyh
  + 1     我很赞同!  

dv99
  + 1   + 1   谢谢@Thanks!  

Icicle丶凌
    + 1   我很赞同!  

lemon395
  + 1   + 1   我很赞同!  

Zome
  + 1   + 1   用心讨论,共获提升!  

kyrzy0416
  + 2   + 1   谢谢@Thanks!  

苏紫方璇
  + 7   + 1   欢迎分析讨论交流,吾爱破解论坛有你更精彩!  

52pj420112
  + 1   + 1   我很赞同!  

liu18335229964
  + 1   + 1   我很赞同!  

591550797
  + 1   + 1   我很赞同!  

zj_tj
  + 1   + 1   热心回复!  

ihaveyou
  + 1     热心回复!  

wojaiyh
  + 1   + 1   谢谢@Thanks!  

hjsm
  + 1   + 1   感谢发布原创作品,吾爱破解论坛因你更精彩!  

hwf411
  + 1   + 1   谢谢@Thanks!  

ws001980
  + 1   + 1   谢谢@Thanks!  

moonrabbit
  + 1   + 1   谢谢@Thanks!  

吴风
  + 1     谢谢@Thanks!  

52bandari
  + 1   + 1   用心讨论,共获提升!  

ag129
  + 1   + 1   谢谢@Thanks!  

zjh106
  + 1   + 1   热心回复!  

iceSleeping
  + 1   + 1   谢谢@Thanks!  

yangqing020629
  + 1   + 1   我很赞同!  

jie520yun
  + 1   + 1   我很赞同!  

xie792
  + 1   + 1   用心讨论,共获提升!  

xiaoyaodulang
  + 1   + 1   我很赞同!  

dzc999
  + 1   + 1   谢谢@Thanks!  

xingchi
  + 1   + 1   谢谢@Thanks!  

小寒丶
  + 1   + 1   我很赞同!  

失落丶月
  + 1   + 1   我很赞同!  

wuqing89403
  + 1   + 1   谢谢@Thanks!  

SangerTom
    + 1   用心讨论,共获提升!  

导演
  + 1   + 1   感谢发布原创作品,吾爱破解论坛因你更精彩!  

zhijiandeyanhuo
  + 1   + 1   谢谢@Thanks!  

yuzmb520
  + 1   + 1   谢谢@Thanks!  

leolcg
  + 1   + 1   我很赞同!  

uuiuu
    + 1   我很赞同!  

Beast。
  + 2   + 1   谢谢@Thanks!  

旁观者迷
  + 1   + 1   谢谢@Thanks!  

memi
  + 1   + 1   谢谢@Thanks!  

何方妖孽
  + 1   + 1   鼓励转贴优秀软件安全工具和文档!  

wj18235894766
  + 1   + 1   谢谢@Thanks!  

xn2113
  + 1   + 1   谢谢@Thanks!  

Issacclark1
    + 1   谢谢@Thanks!  

wwbzmt
  + 1   + 1   谢谢@Thanks!  

awen1344
  + 1   + 1   鼓励转贴优秀软件安全工具和文档!  

myd444
    + 1   鼓励转贴优秀软件安全工具和文档!  

skywalkicer
  + 1   + 1   谢谢@Thanks!  

Glaotou
  + 1   + 1   谢谢@Thanks!  

不会化的冰
  + 1   + 1   热心回复!  

mydream_168
  + 1   + 1   谢谢@Thanks!  

liy007
    + 1   用心讨论,共获提升!  

Codeman
  + 1   + 1   我很赞同!  

guyuchao3
  + 1   + 1   我很赞同!  

XAQ1113
  + 1     谢谢@Thanks!  

Sundy745
  + 1   + 1   鼓励转贴优秀软件安全工具和文档!  

許你①ぜ溫柔
  + 1   + 1   用心讨论,共获提升!  

tanlini
  + 1   + 1   测试了一下很NICE。  

liaryl
  + 1   + 1   鼓励转贴优秀软件安全工具和文档!  

qwer1243
  + 1   + 1   我很赞同!  

cczyx
  + 1     我很赞同!  

crbiggun
  + 1   + 1   我很赞同!  

cl836
  + 1   + 1   谢谢@Thanks!  

gxsky
  + 1   + 1   谢谢大佬!  

Jesus1207
  + 1   + 1   用心讨论,共获提升!  

SomeBottle
  + 1   + 1   谢谢@Thanks!  

joeredhair
  + 1   + 1   谢谢@Thanks!  

qiangq233
  + 1   + 1   热心回复!  

星鱼
  + 2   + 1   谢谢@Thanks!  

abc023119
  + 1   + 1   谢谢@Thanks!  

diliuyue
  + 1     谢谢@Thanks!  

jb007
    + 1   热心回复!  

哒劳德
  + 1   + 1   我很赞同!  

大白康
  + 1     谢谢@Thanks!  

奥怪
  + 2   + 1   用心讨论,共获提升!  

wapjzczh
  + 1   + 1   用心讨论,共获提升!  

weidechan
  + 1     感谢发布原创作品,吾爱破解论坛因你更精彩!  

啊好菜啊
  + 1     谢谢@Thanks!  

a6455081a
    + 1   我很赞同!  

shihdhr
  + 1   + 1   热心回复!  

shifuwong
    + 1   谢谢@Thanks!  

查看全部评分