《易吉聚合支付系统 V1.0》(下面简称:本系统)是 武汉爱码农网络科技有限公司(下面简称:本公司) 于 2018 年 9 月 至 2019 年 4 月 基于 Layui + ThinkPHP3.2.3 + MySQL 开发完成的一款聚合支付系统。
本系统可以做为类似扫呗、付呗这种线下聚合码支付的服务端后台程序
PHP 版本要求
- PHP5.3 以上版本(注意:PHP5.3dev 版本和 PHP6 均不支持)
MySQL 版本要求
- MySQL5.6 以上版本
推荐服务器环境和配置
- 推荐服务器系统 CentOS Linux 7.6(64 位)
- 推荐 WEB 服务器 Apache 和 nginx
- 推荐独立数据库服务器
- 硬件配置:CPU 8 核以上,内存 8G 以上,网络带宽 100M 以上,硬盘 100G 以上
演示网址
- 管理后台地址:http://www.jhfu.net/amnadmin
- 管理账号: admin 管理密码:请询问客服
- 用户前台地址:http://www.jhfu.net/User/UserLogin/index.html
- 用户名:zyzyzzy 登录密码:123456
如果您了解或使用过其它的聚合支付系统程序,您是否遇到过以下几个问题:
- 与您使用同一个聚合支付系统程序的商家对外开放出来的支付接口的文档、提交参数名称、加密验签的方法等都是固定一样的。您的用户通过支付接口的文档或提交参数名称就可以知道您用的是哪家的聚合支付系统程序。对您自身品牌的建立非常不利,也不能在用户面前体现出您的实力来。
- 因为您使用的这个聚合支付系统程序同时有很多商家在使用,所以您开放出来的支付接口的内部逻辑就成了一个公开的秘密,这样会给别有用心想攻击您系统的人提供极大的便利,经常受到一些莫名其妙的攻击。
- 如果您的客户以前接入过其它的通道,现在要接入您的通道,必须要客户按您的支付接口文档来修改他们的程序代码,才能使用您的通道。如果您客户没有专职的技术人员,这个接入成本就比较大。
- 如果您打算更换一套聚合支付系统程序,必须要您已有的客户全部按你新的聚合支付系统的支付接口文档来修改他们的程序代码,才能过渡到您新使用的聚合支付系统上来。
针对以上几个问题,易吉聚合支付系统对支付接口进行了创新性的改造,实现了以下几个功能:
- 可以自定义专属于自己的支付接口方案,包括自定义的接口文档,提交参数名,加密验签方法。
- 可以单独的为某一个客户自定义一个专属于这个客户的支付接口方案。如果这个客户接入过其它的通道,现在要接入使用您的通道,但客户没有专职的技术人员,无法自行修改程序代码,您可以按这个客户已接入过的通道的规则在易吉聚合支付系统里自定义一套专于这个客户的支付接口方案,这个用户就可以只修改提交地址,不修改任何的通道代码的情况下快速的使用您的通道。极大的降低了您的客户接入使用你的通道的成本。
- 如果您想从其它的程序转到易吉聚合支付系统来,只需要在易吉聚合支付系统里自定义一套您原来程序的支付接口方案,就可以让您原来的用户零技术成本的转到易吉聚合支付系统里来。
自定义接口举例
- 在 管理后台 > 系统设置 > 接口设置 栏目里新增一条记录
- 接口版本号:用来区分不同的支付接口方案。例如: v1.0.1
- 控制器名称:支付接口方案对应的控制器类名。例如:Defaultversion
- 在 /Application/Version/Controller/ 目录下新建一个 DefaultversionController.class.php 文件,继承于 VersionController 父类
namespace Version\Controller; use Think\Controller; class DefaultversionController extends VersionController{ }
- 定义两个全局变里
参数名 | 数据类型 | 说明 |
---|---|---|
parameterarray | 数组 | 提交时必填参数 |
encryptedFields | 数组 | 参与加密验名的参数 |
protected $parameterarray = ['version','memberid', 'orderid', 'amount', 'orderdatetime', 'notifyurl', 'paytype', 'signmethod', 'sign']; //用户自己选择的参数,必填 protected $encryptedFields = ['version','memberid', 'orderid', 'amount', 'orderdatetime', 'notifyurl', 'paytype', 'signmethod']; //签名需要的字段
- 需要在 DefaultversionController.class.php 里实现如下几个方法:
方法名 | 说明 | 参数 | 说明 | 返回值 |
---|---|---|---|---|
CheckParameterCorrect | 检查收到的参数是否合法 | $parameter | 用户提交的所有参数 | 如果所有参数都合法返回 TRUE, 如果有不合法的返回 FALSE,并将错误信息复制给 $this->returnJson["msg"] |
GetUserId | 通道用户提交过来的商户编号获取系统内的用户 ID | $parameter | 用户提交的所有参数 | 返回获取到的系统内的用户 ID |
GetSecretKey | 通道用户 ID 获取用户的密钥数据 | $userid | 用户 ID | 返回用户的密钥数据 |
DecryptData | 解密用户提交过来的加密参数 | parameter, |
secretkey | 用户提交的所有参数,用户的密钥数据 | 返回解密后的所有用户提交参数 |
CheckSign | 验证数据签名 | parameter, |
signdata, $secretkey | 用户提交的所有参数,解密后的所有参数,用户的密钥数据 | 如果签名验证合法返回 TRUE, 如果有不合法的返回 FALSE,并将错误信息复制给 $this->returnJson["msg"] |
- 通过实现方法 FormatData 把自定义接口参数转换成系统标准参数
方法名 | 说明 | 参数 | 说明 | 返回值 |
---|---|---|---|---|
FormatData | 把自定义接口参数转换成系统标准参数 | $parameter | 用户提交的所有参数 | 返回系统标准参数数组 |
- 交易请求系统标准参数说明:
参数名 | 说明 |
---|---|
userid | 用户 ID |
amount | 交易金额,单位:元 |
orderid | 用户提交的交易订单号 |
callbackurl | 页面跳转回调地址 |
notifyurl | 异步回调地址 |
orderdatetime | 交易订单提交时间 |
tongdao | 通道分类编码 |
bankcode | 银行编码 |
version | 自定义支付接口版本号 |
extend | 扩展字段 |
other | 回调时原样返回的数据,数据类型为 数组 |
- 回调时首先通过实现 ReturnData 方法 ,把系统返回的标准参数转换成自定义支付接口的自定义参数:
方法名 | 说明 | 参数 | 说明 | 返回值 |
---|---|---|---|---|
ReturnData | 把成系统标准参数转换成自定支付接口的自定义参数 | $parameter | 系统返回的标准参数 | 返回自定支付接口的自定义参数 |
- 回调系统标准参数说明:
参数名 | 说明 |
---|---|
userid | 用户 ID |
amount | 交易金额,单位:元 |
orderid | 用户提交的交易订单号 |
amount_trade | 交易手续费 |
datetime | 交易时间 |
tongdao | 通道分类编码 |
version | 自定义支付接口版本号 |
other | 回调时原样返回的数据,数据类型为 数组 |
- 实现 callbackurl 方法,实现自定义的页面跳转回调业务逻辑
- 实现 notifyurl 方法,实现自定义的异步回调的业务逻辑,并返回收到的响应数据
系统功能大纲
本支付系统实现了多个第三方支付通道整合成一个支付通道,让用户只用接入一个支付通道就可以使用多个第三方支付通道。使用户在接入和使用多个第三方通道时节约用户大量的技术开发成本和沟通成本。
本系统主要功能如下:
1.系统设置
1)基本设置
可对本系统网站、域名、开关、提成登记等设置管理;
2)银行设置
系统中运营所需的交易银行、结算银行的基础信息管理维护;
3)登录设置
用户可通过本模块实现对系统登录页面的修改及制作(代码部分需联系开发人员);
4)统计模板
5)风控管理
可在系统中对相关 IP 号、手机号、身份证号、银行卡号等进行黑名单标记,更有利于系统登录及支付交易的安全。
2. 1+n 多管理员管理模式
本系统配备一个超级管理员,并可扩展 n 个管理员管理的管理模式。超级管理员拥有最高权限,可根据各管理员角色需求,为其分配相对应的模块管理功能。
3.用户管理
1)用户统一管理功能
用户的添加、信息编辑及删除等。此模块可直观浏览用户相关信息。为保护用户权益及隐私,用户密钥/域名等需再次输入码验证,待验证通过后,才可显示。
2)下级用户邀请功能
可生成相关邀请码,以邀请新用户注册使用本系统。
4.通道管理
可对通道商家、支付通道、通道账号及代付通道等进行管理。
5.交易设置
实现系统到账相关设置,如到账时间、到账比例、节假日是否到账等设置。本模块还涵盖了扫码模板及版本设置。
6.交易管理
1)交易记录浏览及处理
可直观浏览账户订单总额、成本金额、手续费、到账金额及冻结金额等各项资金数额。同时可查看所有交易记录、单笔交易查询及文档的导出。
2)交易日志生成
显示每笔交易订单在交易时的返回的状态,包括相关错误信息及成功后的信息。
3)资金变动记录浏览及导出
可直观浏览每一笔资金变动记录,并可导出资金变动记录文档。
7.结算管理
1)结算方式灵活设置
灵活设置结算方式,如结算时间、当日提款最大金额,单笔提款金额范围、默认结算运营率等相关结算设置。
2)结算记录浏览及查询
直观浏览、查询及处理结算记录(为保护用户隐私及号账号安全,银行卡号等私密内容可设置为全部显示或部分显示),并可进结算文档的导出。
8.工单管理
1)系统使用中常见问题及解决方案示例;
2)前端商户可在线与系统管理员进行线上沟通及反馈,确保问题及时有效解决。
9.信息设置
管理员用户可进行邮箱及短信设置。
10.版权声明
系统版权声明及更新日志告知。
11.公告管理
系统相关公告展示,如系统升级通知等。
聚合通道架构图