专栏首页前端开发PHP制作 微信、支付宝、QQ支付多合一收款二维码

PHP制作 微信、支付宝、QQ支付多合一收款二维码

最近二维码收款很火,例如大家都知道的芝麻收款就是其一。

今天就和大家探讨下,如何制作多合一二维码。

第一,我们先来了解他的原理与构成。

多合一二维码是利用判断用户所使用APP的UA进行分析并返回相符合的值。

那么如何获取APP的UA呢?

首先应该知道PHP如何获得各浏览器UA的代码

<?php
//php获取浏览器UA
echo $_SERVER['HTTP_USER_AGENT'];

那我们如何获取QQ、微信、支付宝各个app的UA呢?

把上面的代码上传到php空间里访问获取UA

我以支付宝为例,QQ、微信等其他操作类似

1.找个好友把获取UA的链接发送给好友

2.点击该链接获取UA

以下是我获取的支付宝APP UA

//支付宝APP UA
Mozilla/5.0 (Linux; U; Android 6.0.1; zh-CN; Redmi 4 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 Nebula AlipayDefined(nt:WIFI,ws:360|0|3.0) AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans useStatusBar/true  

获取QQ 微信的UA同支付宝获取方法

//微信
  
Mozilla/5.0 (Linux; Android 6.0.1; Redmi 4 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/WIFI Language/zh_CN  


//QQ

Mozilla/5.0 (Linux; Android 6.0.1; Redmi 4 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043220 Safari/537.36 V1_AND_SQ_6.5.5_1_TIM_D TIM2.0/1.1.5.1686 QQ/6.5.5  NetType/WIFI WebP/0.3.0 Pixel/1080

第二步,获取支付宝、QQ、微信的收款码。

还是以支付宝为例(PS:例子一用到底)。

点击 首页->收款->长按二维码保存二维码到本地。

支付宝单独的二维码收款这就到手了,微信、QQ相类似,就不一一阐述过程。

基本准备工作到这一步就完成了。

第三步,使用php获取UA 代码判断所用APP类型,并返回相关信息。

利用PHP直接判断UA里所包含的特定字符。

//判断扫描二维码的APP为 QQ
if(strstr($_SERVER['HTTP_USER_AGENT'], 'QQ/')){
 echo 'QQ';
 //判断扫描二维码的APP为 支付宝
}ELSE IF(strstr($_SERVER['HTTP_USER_AGENT'], 'Alipay')){
 echo '支付宝';
 //判断扫描二维码的APP为 微信
}ELSE IF(strstr($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger/')){
echo '微信';
}

最初在这里遇到个误区,不管是使用微信访问还是使用QQ访问,全部是跳转到QQ相关页面。后来仔细一看UA代码(第一步),原来QQ、微信里的UA全部都包括QQ这个字符,最后就在判断微信与QQ UA里QQ字符串后面加了个“/”,微信也一样在后面加“/”。

第四步,制作PHP页面,并上传到PHP空间。

PS:

QQ、微信 无法直接调起微信转账页面,所 以需要长按识二维码别进行转账。

支付宝,可以直接扫描二维码进行转账操作,不知道这样是便于用户,还是一个小BUG。

所以,就需要单独给 QQ、微信制作一个二维码识别页面。

<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>支付</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
 </head>
<body>
<img src="<?
if($_GET["app"]=="qq"){//使用APP为QQ
ECHO 'qq.png';//QQ支付的二维码图片位置
}else if($_GET["app"]=="weixin"){//使用APP为微信
 'weixin.png';//微信支付的二维码图片位置
}?>"/>
<br>长按二维码识别,向商家付款

</body>
</html>

现在来制作最最重要的index.php页面,也就是我们要向用户展示的二维码内容页

<?php  
header('HTTP/1.1 301 Moved Permanently');
if(strstr($_SERVER['HTTP_USER_AGENT'], 'QQ/')){
header('Location: erweima.php?app=qq');
}else if(strstr($_SERVER['HTTP_USER_AGENT'], 'Alipay')){
header('Location: 此处输入支付宝二维码所识别的链接');	
}else if(strstr($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger/')){
header('Location: erweima.php?app=weixin');
}
?> 

现在把index.php、erweima.php上传到PHP空间。

然后利用二维码生成技术 把 http://你的网址/index.php 网址生成二维码,这样就得到了我们需要的三合一二维码。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux硬盘分区,挂载,格式化,加到开机启动项

    游魂
  • sublime注册码失效解决办法

    该窗口的大致含义就是说你使用的 License 是一个 Sublime Text 2 版本的 Licence(当前是3),问你是否需要升级你的 Licence,...

    游魂
  • 小程序的全栈开发新时代

    小程序·云开发是微信团队和腾讯云团队共同研发的一套小程序基础能力,简言之就是:云能力将会成为小程序的基础能力。整套功能是基于腾讯云全新推出的云开发(Tencen...

    游魂
  • centos7 升级GCC版本到7.3.0

    旺财的城堡
  • mask遮罩层的华丽写法

    xing.org1^
  • 微信小程序仿APP section header 悬停效果

    在onReady方法中,查询section-header节点并拿到该节点此时距离当前顶部的距离

    韦弦zhy
  • javaWeb中cookie和session的区别和使用场景

    神秘的寇先森
  • 腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)

    每年年初腾讯公司都要制定 SNG 成本优化年度目标,过去三年已经用技术手段为公司节省了超过 10 亿的现金流。产品的架构和容量也越来越健康,继续成本优化变得十分...

    JackJiang
  • SAP最佳业务实践:FI–总账(156)-6冲销

    4.9 冲销凭证 本业务情景描述了冲销 FI 凭证的步骤。在这个过程中,系统将生成会计凭证、向现有凭证添加信息,并更新受影响的分类帐中的业务额。 系统支持下列...

    SAP最佳业务实践
  • Linux : E: Unable to locate package XXX

    努力在北京混出人样

扫码关注云+社区

领取腾讯云代金券