aimanongpay 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
aimanongpay 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 LGPL
开发语言 PHP JavaScript HTML/CSS
操作系统 跨平台
软件类型 开源软件
所属分类 iOS代码库支付(Payment)
开发厂商
地区 国产
提 交 者 武汉爱码农
适用人群 未知
收录时间 2020-10-12

软件简介

《易吉聚合支付系统 V1.0》(下面简称:本系统)是 武汉爱码农网络科技有限公司(下面简称:本公司) 于 2018 年 9 月 至 2019 年 4 月 基于 Layui + ThinkPHP3.2.3 + MySQL 开发完成的一款聚合支付系统。

为了方便大家使用,我已将本系统核心功能模块独立出来做成一个小项目,并且用 TP6 进行了重写![聚合支付系统核心模块 TP6 版]
 

本系统可以做为类似扫呗、付呗这种线下聚合码支付的服务端后台程序

PHP 版本要求

  • PHP5.3 以上版本(注意:PHP5.3dev 版本和 PHP6 均不支持

MySQL 版本要求

  • MySQL5.6 以上版本

推荐服务器环境和配置

  • 推荐服务器系统 CentOS Linux 7.6(64 位)
  • 推荐 WEB 服务器 Apache 和 nginx
  • 推荐独立数据库服务器
  • 硬件配置:CPU 8 核以上,内存 8G 以上,网络带宽 100M 以上,硬盘 100G 以上

演示网址

如果您了解或使用过其它的聚合支付系统程序,您是否遇到过以下几个问题:

  1. 与您使用同一个聚合支付系统程序的商家对外开放出来的支付接口的文档、提交参数名称、加密验签的方法等都是固定一样的。您的用户通过支付接口的文档或提交参数名称就可以知道您用的是哪家的聚合支付系统程序。对您自身品牌的建立非常不利,也不能在用户面前体现出您的实力来。
  2. 因为您使用的这个聚合支付系统程序同时有很多商家在使用,所以您开放出来的支付接口的内部逻辑就成了一个公开的秘密,这样会给别有用心想攻击您系统的人提供极大的便利,经常受到一些莫名其妙的攻击。
  3. 如果您的客户以前接入过其它的通道,现在要接入您的通道,必须要客户按您的支付接口文档来修改他们的程序代码,才能使用您的通道。如果您客户没有专职的技术人员,这个接入成本就比较大。
  4. 如果您打算更换一套聚合支付系统程序,必须要您已有的客户全部按你新的聚合支付系统的支付接口文档来修改他们的程序代码,才能过渡到您新使用的聚合支付系统上来。

针对以上几个问题,易吉聚合支付系统对支付接口进行了创新性的改造,实现了以下几个功能:

  1. 可以自定义专属于自己的支付接口方案,包括自定义的接口文档,提交参数名,加密验签方法。
  2. 可以单独的为某一个客户自定义一个专属于这个客户的支付接口方案。如果这个客户接入过其它的通道,现在要接入使用您的通道,但客户没有专职的技术人员,无法自行修改程序代码,您可以按这个客户已接入过的通道的规则在易吉聚合支付系统里自定义一套专于这个客户的支付接口方案,这个用户就可以只修改提交地址,不修改任何的通道代码的情况下快速的使用您的通道。极大的降低了您的客户接入使用你的通道的成本。
  3. 如果您想从其它的程序转到易吉聚合支付系统来,只需要在易吉聚合支付系统里自定义一套您原来程序的支付接口方案,就可以让您原来的用户零技术成本的转到易吉聚合支付系统里来。

自定义接口举例

  1. 管理后台 > 系统设置 > 接口设置 栏目里新增一条记录
  • 接口版本号:用来区分不同的支付接口方案。例如: v1.0.1
  • 控制器名称:支付接口方案对应的控制器类名。例如:Defaultversion
  1. 在 /Application/Version/Controller/ 目录下新建一个 DefaultversionController.class.php 文件,继承于 VersionController 父类
namespace Version\Controller;

use Think\Controller;

class DefaultversionController extends VersionController{

}
  1. 定义两个全局变里
参数名 数据类型 说明
parameterarray 数组 提交时必填参数
encryptedFields 数组 参与加密验名的参数
protected $parameterarray = ['version','memberid', 'orderid', 'amount', 'orderdatetime', 'notifyurl', 'paytype', 'signmethod', 'sign']; //用户自己选择的参数,必填

protected $encryptedFields = ['version','memberid', 'orderid', 'amount', 'orderdatetime', 'notifyurl', 'paytype', 'signmethod'];  //签名需要的字段
  1. 需要在 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"]
  1. 通过实现方法 FormatData 把自定义接口参数转换成系统标准参数
方法名 说明 参数 说明 返回值
FormatData 把自定义接口参数转换成系统标准参数 $parameter 用户提交的所有参数 返回系统标准参数数组
  1. 交易请求系统标准参数说明:
参数名 说明
userid 用户 ID
amount 交易金额,单位:元
orderid 用户提交的交易订单号
callbackurl 页面跳转回调地址
notifyurl 异步回调地址
orderdatetime 交易订单提交时间
tongdao 通道分类编码
bankcode 银行编码
version 自定义支付接口版本号
extend 扩展字段
other 回调时原样返回的数据,数据类型为 数组
  1. 回调时首先通过实现 ReturnData 方法 ,把系统返回的标准参数转换成自定义支付接口的自定义参数:
方法名 说明 参数 说明 返回值
ReturnData 把成系统标准参数转换成自定支付接口的自定义参数 $parameter 系统返回的标准参数 返回自定支付接口的自定义参数
  1. 回调系统标准参数说明:
参数名 说明
userid 用户 ID
amount 交易金额,单位:元
orderid 用户提交的交易订单号
amount_trade 交易手续费
datetime 交易时间
tongdao 通道分类编码
version 自定义支付接口版本号
other 回调时原样返回的数据,数据类型为 数组
  1. 实现 callbackurl 方法,实现自定义的页面跳转回调业务逻辑
  2. 实现 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.公告管理

系统相关公告展示,如系统升级通知等。

聚合通道架构图

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
暂无内容
暂无内容
0 评论
9 收藏
分享
返回顶部
顶部