前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP制作 微信、支付宝、QQ支付多合一收款二维码

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

作者头像
游魂
发布2018-06-08 16:52:26
2.5K0
发布2018-06-08 16:52:26
举报
文章被收录于专栏:前端开发前端开发

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

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

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

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

那么如何获取APP的UA呢?

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

代码语言:javascript
复制
<?php
//php获取浏览器UA
echo $_SERVER['HTTP_USER_AGENT'];

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

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

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

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

2.点击该链接获取UA

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

代码语言:javascript
复制
//支付宝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同支付宝获取方法

代码语言:javascript
复制
//微信
  
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里所包含的特定字符。

代码语言:javascript
复制
//判断扫描二维码的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、微信制作一个二维码识别页面。

代码语言:javascript
复制
<!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页面,也就是我们要向用户展示的二维码内容页

代码语言:javascript
复制
<?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 网址生成二维码,这样就得到了我们需要的三合一二维码。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-7-6 0:,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档