Coder Social home page Coder Social logo

iajue / qr Goto Github PK

View Code? Open in Web Editor NEW
420.0 15.0 184.0 32.84 MB

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

Home Page: https://qr.52ecy.cn

License: GNU General Public License v3.0

PHP 97.49% HTML 0.61% PLpgSQL 0.20% Smarty 1.69% Batchfile 0.01% Shell 0.01%

qr's Introduction

收款啦

收款啦,是一款支付宝、微信、QQ收款码三合一整合系统。

采用 thinkPHP5.0 + MySQL + layui 完成

前言

不论是教程还是现成的代码,在网上几乎是遍地都是,为什么我还要自己写一套呢?

就是一个体现字,包含上传二维码,识别二维码,生成三合一收款码,一整套流程服务。

绝大多数的三合一仅仅只是针对个人使用,而收款啦能对多用户提供三合一服务。

但是它却没有后台,原因主要有两个:

  1. 没有必频繁查看或修改配置,一次配置,终身使用。

  2. 作者懒癌发作(也促使没有安装向导)

  3. 如果实在需要的话,后面再说

本身代码是比较轻量级的,由于使用了框架导致体积增大。

好吧,本身也没啥技术含量,自己也几乎用不到,写给有需要的人类吧,顺便水水文~~逃(-

原理

收款码三合一,听上去感觉很神奇,其实原理非常简单!

所谓二维码,其实就是包含了一系列字符串的图片罢了。无论是支付宝还是微信的收款码,其本质上是一个包含了收款链接的二维码。所以我们的思路是:检测如果是支付宝浏览页面,就给出支付宝的付款链接、如果是微信,就给出微信链接……

然后这里涉及到一个知识点,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

微信:微信自己的支付协议,无法唤醒微信

安装

  1. PHP >= 5.6 + MySQL

  2. 将应用程序部署到你的服务器中

  3. public子目录设置为对外公开目录

  4. 将根目录pay.sql导入你的数据库中

  5. 修改application\database.php为自己数据库信息

  6. 设置网站伪静态为thinkPHP

  7. 修改根目录中config.php中的相关信息

  8. 输入你的域名进行访问(必须按步骤来)

需要在外网中才有效!需要在外网中才有效!需要在外网中才有效!重要的事情说三遍(里面局域网应该也有效,但那还有啥意义)

更新日志


赞助版 2019/8/02

  • 优化本地识别、生成二维码
  • 新增21套三合一模板
  • 新增对外二维码API接口
  • 其它一些细节优化

关于赞助版的详细内容请前往我的博客查阅 鸽主带着新版三合一回来了

v2.0 2019/7/27

  • 新增本地识别、生成二维码
  • 移除网络识别接口
  • 修复已知BUG
  • 其它一些细节优化

Author

© 阿珏, Released under the GPL License.
如果可以的话,请打赏作者一份 mahua

Blog · GitHub @阿珏

qr's People

Contributors

iajue avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qr's Issues

导入数据库的问题

错误

您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助。

ERROR: 无效的标识符 @ 28
STR: 5.5.
SQL: Host: localhost (Version: 5.5.53)

Date: 2018-08-29 10:00:59

Generator: MySQL-Front 5.3 (Build 4.234)

/*!40101 SET NAMES utf8 */;Host: localhost (Version: 5.5.53)

Date: 2018-08-29 10:00:59

Generator: MySQL-Front 5.3 (Build 4.234)

/*!40101 SET NAMES utf8 */;Host: localhost (Version: 5.5.53)

Date: 2018-08-29 10:00:59

Generator: MySQL-Front 5.3 (Build 4.234)

/*!40101 SET NAMES utf8 */;

SQL 查询:

Host: localhost (Version: 5.5.53) # Date: 2018-08-29 10:00:59 # Generator: MySQL-Front 5.3 (Build 4.234) /*!40101 SET NAMES utf8 */;

MySQL 返回: 文档
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Host: localhost (Version: 5.5.53)

Date: 2018-08-29 10:00:59

Generator: MySQ' at line 1

无法连接到数据库

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
配置文件是对的

请求上传接口出现异常怎么办?

[0] HttpException in App.php line 535
模块不存在:public
$config = self::init($module);

            // 模块请求缓存检查
            $request->cache(
                $config['request_cache'],
                $config['request_cache_expire'],
                $config['request_cache_except']
            );
        } else {
            throw new HttpException(404, 'module not exists:' . $module);
        }
    } else {
        // 单一模块部署
        $module = '';
        $request->module($module);
    }

    // 设置默认过滤机制
    $request->filter($config['default_filter']);

Call Stack
in App.php line 535
at App::module(['public', 'uploads', 'alipay'], ['app_host' => '', 'app_debug' => true, 'app_trace' => false, ...], null) in App.php line 456
at App::exec(['type' => 'module', 'module' => ['public', 'uploads', 'alipay']], ['app_host' => '', 'app_debug' => true, 'app_trace' => false, ...]) in App.php line 139
at App::run() in start.php line 19
at require('E:\Pay\thinkphp\star...') in index.php line 17

区分付款码

每个平台的付款码都有自己的生成规则,比如微信以 10-15开头,支付宝以25-30开头,可不可以用这个来区分

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.