QQ、支付宝、微信收款码三合一源码

作者: 蒋老师 分类: 网站源码 发布时间: 2018-11-19 02:30

  这是一款支付宝、微信、QQ 收款码三合一整合系统,事实上,类似的东西网上很多,而且都有源码提供。这里介绍的是国内作者阿珏制作的“收款啦”,并不是说这款是最好的。而是因为它有完整的源代码,更重要的是这个程序的设计思路不错。而且,其他同类程序绝大多数的仅仅只是针对个人使用,而“收款啦”能对多用户提供三合一服务。

  严格地说。这类程序并没有太多的技术含量,也就是一个上传二维码、识别二维码、生成三合一收款码三个步骤。“收款啦”采用 thinkPHP5.0 + MySQL + layui 完成,但没有做后台程序。据作者介绍,原因主要是没有必频繁查看或修改配置,只需一次配置,就能终身使用,所以没有必要做后台。“收款啦”核心部分算是轻量级的,但由于使用了框架,导致体积增大。

  程序名称:收款啦
  演示网站:https://qr.52ecy.cn
  代码托管:https://github.com/178146582/qr

  以下文字来源于上述站点:

  原理

  收款码三合一,听上去感觉很神奇,其实原理非常简单!所谓二维码,其实就是包含了一系列字符串的图片罢了。无论是支付宝还是微信的收款码,其本质上是一个包含了收款链接的二维码。所以我们的思路是:检测如果是支付宝浏览页面,就给出支付宝的付款链接、如果是微信,就给出微信链接 ……。
  然后涉及到一个知识点,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:https 协议,无法唤醒 QQ
  支付宝:https 协议,可直接唤醒支付宝 APP
  微信:微信自己的支付协议,无法唤醒微信

  安装

  PHP(>= 5.6) + MySQL
  (1)将应用程序部署到你的服务器中;
  (2)将 public 子目录设置为对外公开目录,将根目录 pay.sql 导入你的数据库中;
  (3)修改 application\database.php 为自己数据库信息;
  (4)设置网站伪静态为 thinkPHP;
  (4)修改根目录中 config.php 中的相关信息;
  (5)输入你的域名进行访问(必须按步骤来)。

  另外,需要在外网中才有效(局域网应该也有效,但那还有啥意义)。

  已知的问题

  支付宝正常,但 QQ 和微信都需要再按二维码识别。