有的则是每个收款码全部展现出来

微信扫这个,支付宝扫那个,不仅要加载多张二维码,还要加css/js让它变的好看,作为一个又懒又不想写这些东西的程序猿来说,这可不行。

那能不能把QQ微信支付宝三合一,只需要扫一个收款码就行呢?
这里涉及到一个知识点,则是User-Agent,大厂的webview都会携带自家的UA信息,比如说:

QQ:MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135
微信:MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN
支付宝:UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans

这样就很轻松区分是QQ还是微信还是支付宝扫码了:

User-Agent 含有 QQ/ 为QQ
User-Agent 含有 MicroMessenger 为微信
User-Agent 含有 AlipayClient 为支付宝

既然能够区分每个软件,那就可以通过自建一个网址,通过二维码生成扫描这个网址后,判断浏览器的UA,来分发不同的收款码

大致的流程则为:
客户端扫码 -> 服务端根据 User-Agent 判断客户端类型 -> 分别返回不同的处理

开始折腾

首先解码QQ、微信和支付宝生成的付款码,可以去这里在线解码。

QQ:https://i.qianbao.qq.com/wallet/sqrcode.htm?m=tenpay&a=1&u=17878127&ac=E04BE442991E7FFED28B3B5C3E187148F063DC3C6DACAD2983C87B482FC9E7AD&n=薛定谔的猫&f=wallet
(https 协议,无法唤醒QQ)
支付宝:HTTPS://QR.ALIPAY.COM/FKX03549OW666ME7BXWF7A
(https 协议,可直接唤醒支付宝 APP)
微信:wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k
(微信自己的支付协议,无法唤醒微信)

下面就可以直接写代码了,判断 User-Agent 如果是支付宝直接跳转支付宝链接,如果是QQ和微信则跳转QQ和微信的链接。

但由于QQ与微信无法直接唤醒APP,所以直接输出一个QQ与微信的二维码,然后长按扫码实现支付。

代码如下:

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strpos($ua, 'MicroMessenger')) {$type = 'wepay';$name = '微信支付';//微信支付链接$url = 'wxp://f2f09hjzo72AAYEITIBaolV-3cvGrDjE0q7k';$icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrwgr20oj303k03kglg.jpg" width="48px" height="48px" alt="'.$name.'">';
}
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=薛定谔的猫&f=wallet';$icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojrvmp427j303k03kjrb.jpg" width="48px" height="48px" alt="'.$name.'">';
}
else {$type = 'other';$name = '打赏作者';$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];$icon_img = '<img src="http://ww2.sinaimg.cn/large/005zWjpngy1fojs089x6tj303k03kjr6.jpg" width="48px" height="48px" alt="'.$name.'">';
}
$qr_img = '<img src="http://qr.liantu.com/api.php?text='.urlencode($url).'">';
?>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="renderer" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title><?=$name?></title><style type="text/css">* {margin: auto;padding: 0;border: 0;}html {-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%}body {font-family: -apple-system, SF UI Text, Arial, Microsoft YaHei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif;color: #333;}img {max-width: 100%;}h3 {padding: 10px;}.container {text-align: center;}.title {padding: 2em 0;background-color: #fff;}.content {padding: 2em 1em;color: #fff;}.wepay {background-color: #23ac38;}.qq {background-color: #4c97d5;}.other {background-color: #ff7055;}</style>
</head>
<body class="<?=$type?>"><div class="container"><div class="title"><?=$icon_img?><h1><?=$name?></h1></div><div class="content"><?=$type=='other'?$qr_img.'<h3>请使用支付宝、微信、QQ客户端扫码付款</h3>':$qr_img.'<h3>扫描或长按识别二维码,向TA付款</h3>'?></div></div>
</body>
</html>

文章作者由: 北大青鸟 任老师演示实例 HD089455

php制作QQ微信支付宝三合一收款码实例相关推荐

  1. PHP版单文件index.php直接生成QQ微信支付宝三合一收款二维码完整源码

    打开EditPlus 5类似的工具新建一个utf-8格式的php页面,将下面的源码复制进去,然后修改前十二行对应的信息即可,下面的两千多行代码为全自动生成内容无需修改,改好后保存名为index.php ...

  2. 谨防上当:3月1日微信支付宝个人收款码是可以继续使用的-附图

    近日,相信大家都在关注关于3月1日后微信个人收款码和支付宝个人收款码还能否正常使用的问题. 身边很多亲朋好友都在议论,有好几种说法: 第一种说是不能用了,出新规了. 第二种是说要升级为个人经营收款码. ...

  3. 微信支付宝H5收款码扫码转账个人通道仿原生接口带备注可回调成功率9成以上

    微信支付宝收款码转账H5免签出码带备注可回调成功率99.9%支持重复支付多种轮询规则提高存活率         本收款系统,可使用支付宝个人码 企业支付宝收款码 微信个人码收款,可以完成即时到账收款接 ...

  4. 微信支付宝H5收款码扫码转账个人通道,灵活配置,仿原生接口,带备注可回调成功率9成以上

    微信支付宝收款码转账H5免签高并发出码带备注可回调成功率99.9%支持重复支付多种轮询规则提高存活率         本收款系统,可使用支付宝个人码 企业支付宝收款码 微信个人码收款,可以完成即时到账 ...

  5. 微信QQ支付宝三合一收款二维码实现原理

    大家可以先看看我网站的效果: 收款吧 - 三合一收款码在线生成 收款码三合一大致原理如下: 第一步.解析用户上传的微信支付.QQ钱包.支付宝收款二维码,获取收款链接地址. 第二步.用自己的网站程序生成 ...

  6. 微信和支付宝聚合收款码是怎么做的呢?

    无现金消费时代,移动支付领域占领着主导地位,商户收银台前显眼位置会放置微信支付.支付宝支付但是还有一种更方便的收款模式,就是把微信收款码.支付宝收款码合并成一个二维码,无论客户是使用支付宝扫码还是微信 ...

  7. 极客日报:微信、支付宝个人收款码可继续使用;苹果或将推出7款新Mac;Swift之父正式退出Swift核心团队|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  8. 一种实现个人微信支付宝二维码收款接口的方法

    一种实现个人微信支付宝二维码收款接口的方法 只有企业资质才能申请微信支付宝接口,要想实现自动收款除了想办法搞到企业资质申请官方的微信支付接口外,还可以想办法通过个人收款码来实现. 1.上传个人微信支付 ...

  9. 微信支付宝个人收款将于2022年3月1日起被禁止用于经营收款

    元宵节过完2月份也已经过半,即将到来的3月,我和大多数人一样开启工作模式,闲时也摸摸鱼关注下热点新闻,其中有一个新规即将正式施行,将影响各大小商户经营收款的政策,不知道你是否还记得? 2021年10月 ...

  10. 微信小程序:微信也可以发闪照了闪照制作生成微信小程序源码下载,自定义闪照时间

    这是一款闪照制作的一款微信小程序源码 该源码呢也就是让用户在微信也可以实现QQ上面的闪照功能 用户可以自主上传照片,可以自定义的选择闪照的时间 另外这款小程序还支持流量主模式 这种东西目前在微信还是挺 ...

最新文章

  1. 娃哈哈困境:做好了生意,没做好品牌
  2. 最早做无糖茶的统一茶里王,是怎样错过年轻人的?
  3. NPOI 1.2教程(目录)
  4. android wifi设备连接通信,通过wifi与设备进行通信(Android)
  5. C/C++知识分享:C++常用内置函数你会几个,使用过几次呢?
  6. 浏览器 CSS Hack 收集
  7. IDEA采用Debug模式无法启动项目,但是采用普通模式可以正常启动项目
  8. [Fedora 20] 设置Terminal快捷键 + 设置桌面快捷方式 + Terminal透明解决方案
  9. 简单实现x的n次方pta_Day12 :数值的整数次方
  10. 深度学习之LSTM完全图解
  11. 百度 html 3d,百度地图实现3D棱柱
  12. tableau连接数据库时出现检查服务器是否正在运行以及您是否有权访问请求的数据库
  13. 刷机:酷比魔方iwork8 刷回双系统
  14. ios-弹窗输入六位密码
  15. 技术分享 | 误删表以及表中数据,该如何恢复?
  16. 苹果公司邮箱联系大全
  17. Android获取百度音乐下载音乐和歌词下载链接
  18. 华硕 ROG主题 提取主题包
  19. 内网架设FTP服务器(serv-u)
  20. sqlite3数据库损坏修复

热门文章

  1. 链表实现一元多项式的加法、乘法、求导,求值
  2. 登录页面加密token和盐的作用
  3. windows中office无法使用撤销键
  4. 列主元Guass消去法
  5. SSM Service ServiceImpl 优缺点
  6. CSS盒模型与box-sizing详解
  7. 一文了解LD7537RGL
  8. Java | JPanel与JFrame的区别
  9. Data Base学习记录:关系模型
  10. 维基百科中文语料建模