Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gnu-xiaosong/pay

Repository files navigation

聚合云支付系统(yunPay)=自建的监控支付系统+集成官方支付+自带监控(移动+PC端)软件+后台管理系统+商户后台管理系统

image

开发者

  • 所有人:小松科技
  • 邮箱: 1466718670@qq.com
  • 说明:本系统是我花费大量精力和时间完成的,给我 star 下我就满足了。有任何问题都可以私信我

环境说明

  • php: 建议7.0 如果出现一些问题请切换php版本

鸣谢 🍓

  • vue
  • Ant Design vue
  • element
  • Euiadmin
  • thinkphp
  • autojs
  • electron
  • nodejs

在线文档

https://www.showdoc.com.cn/1819524507474584/8398407783645943

文档引导

监听软件演示

http://pay.xskj.store/down/pSAzEFVCtePI

  • 支付宝支付
  • 微信支付
  • 云支付(自建软件监控支付--安卓端+PC端)

软件支付监听对象:

  • 支付-------ok
  • 微信支付------ok
  • QQ------暂时不支持
  • PC端仅支持监听支付宝,而且需要以管理员身份运行应用。现在处于实际场景测试中。
  • 声明:监控软件不能保证100%的能监控层弄,可能会有掉单的情况,而且不适用大的业务场景和高请求量监控。

安全声明:

  • 不建议软件监听支付用于商业用途,该程序不适用于大型支付场景,适用于小型支付场景。监听成功比例与支付接口调用频率成反比。
  • 每个个体支付时间间隔需要大于 2 分钟。该时长与支付页面等待时长一致。
  • 设置不同金额会增加监听支付成功比例。
  • 后期会不断优化提高支付成功比例。

完整包下载:

拓展包下载:

介绍:

  • 前端利用 vue 开发,
  • 后端利用 thinkphp 开发
├─application 接口目录
│ ├─index 首页接口目录
│ ├─admin 管理员后台接口目录
│ ├─user 商户后台接口目录
│ ├─pay 官方支付接口目录
│ └─route.php 路由配置文件
├─demo 支付系统测试目录(demo)
│
├─SDK 支付系统集成sdk下载目录(更新时保持其文件名不变!!!,否则会下载出错)
│ ├─sdk.zip 集成支付系统SDK压缩包
│ └─云支付.apk 监控软件
│
├─template 模版目录
│ ├─admin 管理员后台模版目录
│ └─user 商户后台模版目录
│
├─pay 支付系统核心源码{核心源码}
│ ├─js js类库目录
│ ├─lib 相关类库目录
│ ├─payPage 支付界面模版目录
│ │ └─pay_pages_default.php 默认支付界面文件
│ ├─corn.php 监控软件端请求接口
│ ├─api.php 支付接口(核心接口)
│ ├─payCorn.php 网页端付款状态循环请求状态接口
│ ├─notifaction.php 支付回调通知处理文件(常用于同步通知和异步通知处理)
│ ├─qr.php 支付二维码生成文件
│ ├─database.php 数据库配置文件
│ └─db.sql 数据库备份文件
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─install 系统程序安装引导文件目录
│ ├─config.db.php 系统数据库配置文件(修改数据库信息在这里修改)
│ └─install.lock 安装锁文件(需要重新安装程序时删除该文件和config.db.php文件即可)
│
├─thinkphp thinkphp核心类库源码目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │
│ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ ├─phpunit.xml phpunit配置文件
│ └─start.php 框架入口文件
│
├─vendor 第三方类库文件目录
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─index.phhp 项目入口文件

默认支付接口 api:

http://域名或ip/public/index.php/pay

请求方法:GET

请求参数:

参数 含义 类型 说明
id 商户 id int 必传
sign 签名 (md5) int 必传(具体签名规则下面会有说明)
trade_no 商户网站订单编号 string 必传
type 支付类型(支付宝 1,微信 2,云支付 3) int 必传
subject 商品名称 string 必传
yun_type 云支付支付类型 int (默认支付宝:支付宝 1,微信 2)主要是在 软件监听时用到
total_amount 金额 float 必传
description 商品描述 string 可传
remark 商品备注 string 可传
category 商品分类 string 可传
pay_methods 官方支付方法(默认 web 类型:下面会有说明) string 可传
return_url 同步通知地址 string 必传
notify_url 异步通知地址 string 可传(默认通知地址为同步通知)
参数 含义
mp 公众号支付
wap 手机网站支付(默认)
app APP 支付
pos 刷卡支付
scan 扫码支付
transfer 账户转账
mini 小程序支付
redpack 普通红包
groupRedpack 裂变红包

<a id="14">支付宝支付 pay_methods 方法参数:</a>

参数 含义
web 电脑支付(默认)
wap 手机网站支付
app APP 支付
pos 刷卡支付
scan 扫码支付
transfer 账户转账
mini 小程序支付

签名:

  • 签名算法:MD5
  • 算法规则: total_amount(金额)+trade_no(商户网站订单编号)+key(商户密钥)
  • php 签名:(其他语言需要自行百度)
$sign=md5($total_amount.$trade_no.$key)

云支付(软件监控支付)核心后端源码文件:

  • api.php:网页端请求接口
  • corn.php:监控软件端请求接口
  • db.sql:创建数据库文件(导入即可)
  • payCorn.php:网页端付款状态循环请求状态接口
  • notifaction.php 支付成功支付回调处理文件

支付界面截图:

DkpxF1.jpg

后台管理系统截图:

69CbKP.jpg

商户后台系统截图:

69C2DK.jpg

如果不想自己搭建系统,可以在这里申请商户集成。

  • 解压放入网站目录下访问域名即可(如果需要全新安装只需要删除/public/install 目录下的 install.lock 和 config.db.php 文件即可)
  • 提示:在宝塔环境下会出现没有入口文件的情况 ,需要删除宝塔生成的防跨站文件.user.ini 文件即可
  • 支付接口:http://域名/public/index.php/pay
  • 移动端软件监控地址:http://域名/pay/corn.php
  • demo 测试地址:http://域名/demo
  • 移动端监控软件下载地址:http://域名/SDK/云支付.apk
  • 集成包 SDK 下载地址:http://域名/SDK/sdk.zip
  • 第一步:申请商户:到官网[这里的官网指用该程序搭建的网站]注册申请商户信息(点我注册)
  • 第二步:下载监控软件和 SDK 集成包:登陆商户后台,
  • 第三步:基层 SDK 到自己网站:下载集成 SDK 包集成到自己的网站(看开发文档)

SDK 文档说明:

核心文件:
  • yunPay.config.php:商户信息配置文件
  • yunApi.php: 调用 SDK 支付接口文件
  • notify_url.php: 异步支付处理文件
  • return_url.php: 同步跳转处理文件(主要 SDK 集成业务逻辑处理文件)
yunApi.php 接收参数:

请求方法:同时支持 GET 或 POST

说明:具体参数详见 SDK 下的 help.txt 文件说明。具体以 SDK 下的 help.txt 文件为准

参数 含义 类型 说明
trade_no 商户网站订单编号 int 必传
type 支付类型 (支付宝 1,微信 2,云支付(软件监控支付)3) int 必传
goods_name 商品名 string 必传
money 金额 float 必传
pay_methods 官方支付方法(默认也可) string 可传 官方支付用到
yun_type 云支付支付类型 int (默认支付宝:支付宝 1,微信 2)主要是在 软件监听时用到
pay_tag 商品备注 string 可传
description 商品描述 string 可传
sitename 站点名称 string 可传
category 商品分类 string 可传
商户信息配置文件 yunPay.config.php:
<?php
/* *
 * 功能:云支付商户信息配置
 * 说明:
 * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究云支付接口使用,只是提供一个参考。

 *************************页面功能说明*************************
 * 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。
 * 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。
 */
/**********↓↓↓↓↓云支付商户信息↓↓↓↓↓↓**********/
//云支付商户ID
$yunPay_config['id'] = 10008 ;
//云支付商户密钥
$yunPay_config['key'] = "Pyy9USk7cVyi2MZNI7LghulwugkGVrGL";
//云支付签名token 必填
$yunPay_config['token'] = "xskj";
//签名方式 不需修改
$yunPay_config['sign_type'] = strtoupper('MD5');
//字符编码格式 目前支持 gbk 或 utf-8
$yunPay_config['input_charset']= strtolower('utf-8');
//访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
$yunPay_config['transport'] = 'http';
//异步通知地址,如果改SDK上传在根目录则默认不用修改,否则应该修改
$yunPay_config['notify_url'] = ($_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://').$_SERVER['HTTP_HOST']."/yunPay/notify_url.php";
//需http://格式的完整路径,不能加?id=123这类自定义参数
//页面跳转同步通知页面路径
$yunPay_config['return_url'] = ($_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://').$_SERVER['HTTP_HOST']."/yunPay/return_url.php";
//需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
//支付API地址 后面不要加"/"
$yunPay_config['apiurl'] = 'http://103.152.170.170:8083/pay/api.php';
支付回调参数(暂时为同步通知回调 return_url.php):

回调方法:GET

说明:具体参数详见 SDK 下的 help.txt 文件说明。具体以 SDK 下的 help.txt 文件为准

参数 含义 类型
status 支付状态 int(1:支付成功;0:未支付)
type 支付类型 (支付宝 1,微信 2,QQ 支付 3) int
money 金额 float
trade_no 商户网站订单编号(非云订单号) string
sign 签名 string
  • 签名算法:md5
  • 算法公式: total_amount(金额)+trade_no(商户网站订单编号)+key(商户密钥)
  • php 签名算法例子:
$sign=md5($total_amount.$trade_no.$key)
  • 说明:sdk 已经为您封装好了签名算法,您只需要处理接收参数逻辑即可
  • 同步回调(return_url.php)SDK 代码:
<?php
/*
*介绍:这是同步通知处理
*时间:2021年2月27日
*开发者:小松科技
*/
/****接口参数文档:
Methods:GET
接收参数:
@param: status 支付状态 int 1:成功;0:失败
@param: money 支付金额 int
@param: type 支付类型 int 1:支付宝 2:QQ钱包 3:微信支付。默认值:1
@param: trade_no 商户网站订单编号 int
@param: sign 签名 string
**/
require_once("lib/Sign.php");
$order=array(
 "sign"=>$_GET["sign"],
 "status"=>$_GET["status"],
 "money"=>$_GET["money"],
 "type"=>$_GET["type"],
 "trade_no"=>$_GET["trade_no"]
);
//验证签名算法
$result=new Sign($order);
$is=$result->verify_sign();
if($is){
//验证签名成功↓↓↓↓↓↓↓↓↓这里处理自己的业务逻辑
echo "支付成功!";
}else{
//验证签名失败
echo "签名验证失败!";
}
  • 声明:该支付监听软件只监听微信和支付宝支付金额信息。不会监听其他敏感信息。更不会监听用户个人信息。源代码完全开放(如下)(请大家下载正版官网的监听软件,以防被二次开发从事用户信息监听。!!!)
auto();
var str;
var str1;
//启动通知栏监控
events.observeNotification();
events.on("notification", function (n) {
 if (n.getTitle() != null) {
 //支付宝监听
 if (n.getPackageName() == "com.eg.android.AlipayGphone") {
 str = n.getTitle();
 //支付宝通过正则判断提取
 str1 = str.match(/(.*)/);
 if (str1 != null) {
 //获取成功
 log(str1);
 log(str1[1]);
 //调用api
 var response = payApi(str1[1], 1);
 //写进日志文件
 writeLog(response, 1);
 toast("小松云支付:" + response);
 }
 }
 //微信支付监听
 if (n.getPackageName() == "com.tencent.mm" && n.getTitle() == "微信支付") {
 str1 = n.getText();
 //支付宝通过正则判断提取
 str2 = str1.match(/(.*)/);
 log(str2);
 if (str2 != null) {
 //获取成功
 log(str2);
 log(str2[1]);
 //调用api
 var response1 = payApi(str2[1], 2);
 //写进日志文件
 writeLog(response1, 2);
 toast("小松云支付:" + response1);
 }
 }
 //打印
 log(n.getTitle());
 }
});
//支付异步回调api
function payApi(money, type) {
 /*参数说明:
 *@param:money 金额
 *@param:type 支付方式(支付宝1,微信2, QQ3)
 */
 //本地数据获取
 var storage = storages.create("pay");
 var data = storage.get("paySite");
 //接口地址
 var url = data.url;
 //传输内容
 var data1 = {
 id: data.ID,
 key: data.key,
 money: money,
 type: type,
 };
 //发起请求
 var res = http.get(
 url +
 "?id=" +
 data1.id +
 "&key=" +
 data1.key +
 "&money=" +
 data1.money +
 "&type=" +
 data1.type
 );
 log(res.statusCode);
 //res响应判断
 if (res.statusCode == 404) {
 return "网络异常或url有误!";
 } else if (res.statusCode >= 200 && res.statusCode < 300) {
 //回调成功
 var resp = res.body.string();
 log(resp);
 return resp;
 } else {
 return "未知异常";
 }
}
function writeLog(inform, type) {
 /*参数说明:
 *@param:inform 返回信息
 *@param:type 支付方式(支付宝1,微信2, QQ3)
 */
 //获取当前时间
 var date = new Date();
 //年
 var year = date.getFullYear();
 //月
 var month = date.getMonth() + 1;
 //日
 var day = date.getDate();
 //时
 var hh = date.getHours();
 //分
 var mm = date.getMinutes();
 //秒
 var ss = date.getSeconds();
 var time = year + "年" + month + "月" + day + "日" + hh + ":" + mm + ":" + ss;
 //支付方式判断
 if (type == 1) {
 pay_type = "支付宝";
 } else if (type == 2) {
 pay_type = "微信";
 } else if (type == 3) {
 pay_type = "QQ";
 } else {
 pay_type = "未知支付方式";
 }
 //订单编号 正则匹配
 var order_no = inform.match(/\d+/i);
 //服务器返回信息
 var information =
 "时间:" +
 time +
 "\r\n" +
 "订单编号:" +
 order_no +
 "\r\n" +
 "支付方式:" +
 pay_type +
 "\r\n" +
 "状态信息:" +
 inform +
 "\r\n" +
 "\r\n";
 var path = "/sdcard/payLog.txt";
 if (!files.exists(path)) {
 files.create(path);
 files.append(path, "软件监控服务器日志信息:\r\n");
 }
 files.append(path, information);
 log(information);
}
  • 所需权限:通知栏权限,无障碍。
  • 支付宝:支付宝请打开收款语音提示(不要调成静音模式)
  • 微信:开启微信收款到账提示
  • 监听软件(云支付):保持软件持续运行,让软件保持存活状态,以免被系统查杀。
  • 软件一定要给予通知栏权限!!(否则无法监控),自启动,以防被杀死
  • 支付宝语音一定要打开,保证能正常播报,授予微信消息通知权限
  • 软件监控订单日志文件在 sd 卡目录下的 payLog.txt 文件

对接开发文档:

  • 开发中

2020年12月14日 全新改版!功能全部实现。

2020年12月15日 修复监控 bug,添加跳转到支付宝 app,修复监控安全问题,强制更新!

2021年1月11日 添加支付成功提示

2021年1月13日 添加监听微信支付和 qq 支付(暂时监听功能不可用)

2020年1月14日 添加集成 SDK 包,全新 SDK 版支付系统重构

2021年3月1日 集成官方支------支付宝和微信(重构集成聚合支付接口)------文档全面更新+后端更新(请下载版本 v2.0)

2021年3月2日 更新前端模版部分 bug

2022年1月28日 更新v3.0版本,增加PC端监控,修改SDK开发包,修复部分bug。修复user表添加失败的bug。添加SDK接口字段:category 商品分类。

2023年2月4日 添加支付宝PC端监控软件,更加稳定,以及云端监控脚本,挂载服务器运行即可。具体用法见上方文档。

捐赠:

PC新版监控软件使用说明

###下载链接 密码: d8ug

###文件介绍

使用方法

  • 1 管理员身份打开
  • 2 填写信息登录:这里的服务器地址是你申请的地址
  • 3 这里不是核心!!!
    • 第一:点击扫码登录按钮,等待右下角出现二维码图片
    • 第二:打开支付宝,扫码登录,这里注意!只要你手机显示登录成功即可,因为这里不会给提示是否登录成功,以你的手机支付宝为准。
    • 第三:开始监控,点击"启动监控"按钮,
    • 当你要关闭时,只要将窗口1关闭即可

云端监控脚本使用说明

捐赠

About

第三方支付系统,自带监控软件和后台管理系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /