当前位置: 首页 > 科技观察

制作QQ微信支付宝三合一支付码

时间:2023-03-18 15:22:24 科技观察

*{margin:auto;padding:0;border:0;}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-family:-apple-system,SFUIText,Arial,MicrosoftYaHei,HiraginoSansGB,文泉驿微黑,sans-serif;color:#333;}img{max-width:100%;}h3{padding:10px;}.container{text-align:center;}.title{padding:2em0;background-color:#fff;}.content{padding:2em1em;color:#fff;}.wepay{background-color:#23ac38;}.qq{background-color:#4c97d5;}.other{background-color:#ff7055;}前言最近浏览博客时,发现很多博客都有打赏功能。知道你写的文章是有用的,可以帮助别人。所以,我也想加入打赏功能~分析但是逛了一下github,发现打赏插件基本都是一样的:QQ扫码/微信扫码/支付宝扫码。在某些情况下,单击每个按钮时会出现每个付款代码,而在其他情况下,每个付款代码会完整显示。微信扫这个,支付宝扫那个。不仅需要加载多个二维码,还需要添加css/js让它好看。作为一个懒惰不想写这些东西的程序员,这是不能接受的。QQ、微信、支付宝可以合二为一,只需要扫一个支付码吗?这就涉及到一个知识点,就是User-Agent。各大厂商的webview都会自带UA信息,例如:QQ:MQQBrowser/6.2TBS/043221Safari/537.36QQ/7.0.0.3135微信:MQQBrowser/6.2TBS043220Safari/537.36MicroMessenger/6.5.8.1060NetType/4GLanguage/zh_CNAlipay:UCBrowser/11.5.0.939UCBS/2.10.1.6MobileSafari/537.36AliApp(AP/10.0.15.05180***lipayClient/10.0.15.051/805-ChineseLanguage这样就很容易区分是不是QQ、微信或支付宝扫码:User-Agent包含QQ/是QQUser-Agent包含MicroMessenger,WeChatUser-Agent包含AlipayClient是支付宝为了区分各个软件,可以自己建一个网址,通过二维码扫描这个网址后代码生成,判断浏览器的UA,分配不同的支付码。回到不同的处理开始折腾。首先解码QQ、微信、支付宝生成的支付码,可以去这里在线解码。QQ:https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=Schr?dinger'scat&f=SQQpaymentprotocol,unabletowakeupHTTPSQR.ALIPAY.COM/FKX03549OW666ME7BXWF7A(https协议,可以直接唤醒支付宝APP)微信:wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k(微信自带的支付协议,不能唤醒微信)可以直接写下面的代码,判断User-Agent是否是支付宝,直接跳转到支付宝链接。如果是QQ和微信,则跳转到QQ和微信的链接。但由于QQ和微信无法直接唤醒APP,所以直接输出一个QQ和微信的二维码,然后长按扫码实现支付。代码如下:';}elseif(strpos($ua,'AlipayClient')){//支付宝链接$url='HTTPS://QR.ALIPAY.COM/FKX03479QJ0RVOS3UJLQAE';header('location:'.$url);}elseif(strpos($ua,'QQ/')){$type='qq';$name='QQ钱包支付';//QQ钱包支付链接$url='https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=Schr?dinger'sCat&f=wallet';$inaimgrc.="http://simgrc.2"/large/005zWjpngy1fojrvmp427j303k03kjrb.jpg"width="48px"height="48px"alt="'.$name.'">';}else{$type='other';$name='奖励作者';$url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];$icon_img='';}$qr_img='';?><?=$name?>*{margin:auto;padding:0;border:0;}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-family:-apple-system,SFUIText,Arial,MicrosoftYaHei,HiraginoSansGB,文泉驿微黑,sans-serif;color:#333;}img{max-width:100%;}h3{padding:10px;}.container{text-align:center;}.title{padding:2em0;background-color:#fff;}.content{padding:2em1em;color:#fff;}.wepay{background-color:#23ac38;}.qq{background-color:#4c97d5;}.other{background-color:#ff7055;}">

请使用支付宝、微信、QQ客户端扫码支付':$qr_img.'

扫描或长按识别二维码,支付给TA

'?>
Demodemo可通过扫描文章底部二维码进行测试,或点击以下demo地址:http://lab.sangsir.com/api/do...