07-06 6679人
最近二维码收款很火,例如大家都知道的芝麻收款就是其一。
今天就和大家探讨下,如何制作多合一二维码。
第一,我们先来了解他的原理与构成。
多合一二维码是利用判断用户所使用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 网址生成二维码,这样就得到了我们需要的三合一二维码。
欢迎留言