ebank

电商类站内虚拟积分与聚合支付通用解决方案

项目功能基本满足使用,并流畅运行,持续维护中,如有使用问题可提交 issue

  • 已进入平滑维护期
  • 推荐中小型项目使用

此项目完全开源且功能已完成全部代码并满足基本需求(已服务多家电商公司),会一直汲取上线项目遇到的业务等问题来优化项目,dev 分支会更新公测代码,master 分支为稳定版本,功能还在调整与完善中,但已满足中小型电商项目使用,欢迎阅读文档学习并使用

项目技术选型

PHP7.1+

Laravel5.5

Mysql5.7+ / MariaDB

Vue2

MDUI

项目后台使用 vue 搭建,此项目中已自带编译后前端文件

DEMO 演示

docker沙箱演示地址,每周清理数据库

ebank-demo.thinkms.com

后台账号密码

  • admin
  • 123456

简介

此电子银行系统集成两大功能

1. 聚合支付

聚合支付已对接laravel-pay

  • 支付宝PC
  • 支付宝wap
  • 支付宝APP
  • 支付宝反扫
  • 支付宝刷卡(反扫)
  • 支付宝扫码(正扫)
  • 微信公众号
  • 微信H5
  • 微信APP
  • 微信刷卡(反扫)
  • 微信扫码(正扫)
  • 微信小程序支付

所有支付方式调用后返回值的使用方式可在 【统一下单】 中查看即可,无需看 laravel-pay 的文档 了
支持同时选择积分一起组合支付(三方支付只能一个,内部钱包可无限个),实现积分抵扣等需求,其他三方支付需查阅源码自行封装开发

2. 站内积分

  站内积分为核心开发点,详细的API设计,积分的每次经历都会记录在表,方便审核和对账,详情介绍可查阅下方文档的白皮书介绍部分。

  1. 项目支持多种积分实现项目不同的业务逻辑,每种积分初始会有个系统总控盘,用于充值或赠送给用户
  2. 多种积分可相互实现转化,积分的操作我们统称为《转账》,积分的加减都必须有一个出账人和一个进账人,所以项目初始的时候都会有个控盘金额在系统余额中用来扣除
  3. 积分每一笔的加减记录都必须有一个转账行为(reason参数),每个业务对应一个reason,如提现成功为300001,发送红包为300002,用于开发者对此业务的中文释义以及对账的核实,保证用户积分余额经过每一笔转账之后是正确的
  4. 每种积分互相转账都是无限制的,只需对接好你的业务需求即可,需求需要怎么转就怎么转
  5. more...中央银行是什么、系统银行是什么、reason意义、多项目对接 请参阅项目介绍白皮书

文档

阅读在线文档

github

github

码云

码云

安装

因项目中涉及大金额运算(万亿以上,未使用 bcmath),需使用 php >= 7.1.12,推荐学习并使用 docker + laradock 搭建开发环境,避免 php 计算整数长度变为 2147483647 问题

laradock 搭建开发、测试、生产环境

Linux 下使用 Makefile 自动安装

1. cd [项目目录]
2. cp .env.example .env
// 连接数据库执行语句建立数据库
CREATE SCHEMA `ebank` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3.  编辑 .env 文件配置数据库、redis、SMTP 等,然后再继续执行以下命令
4. make && make install
复制代码

Windows 下手动步骤安装

1. cd [项目目录]
2. copy .env.example .env
// 连接数据库执行语句建立数据库
3. CREATE SCHEMA `ebank` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;// 编辑 .env 文件配置数据库、redis、SMTP 等,然后再继续执行以下命令
4. composer install
5. php artisan app:install
复制代码

最后一步

配置nginx访问以及队列监听:

项目目录下带有 ebank_nginx.conf 和 ebank_supervisor.ini 示例文件,自行配置即可

开发计划

  • [x] SDK 封装,给API对接商户下发使用的请求接口请求类,位于 app/Libraries/EBankSdk.php 复制任意其他php框架中都可使用,同样要求 php >= 7.1
  • [x] 中央系统式,多项目对应多商户,积分互不干预,实现搭建一套,多项目可用
  • [x] 支付秘钥后台设置,后台 > 支付秘钥管理
  • [x] 商户接口记录出参,便于排查
  • [x] 后台菜单丰富,全部使用 restful api
  • [ ] 费率设置,可切换给下游渠道对接,对应结算更改,实现类似四方支付功能
  • [x] 丰富图表,今日、昨日用户增长,消费,收入统计等等
  • [x] 商户接口错误率统计
  • [ ] 后台功能点帮助文案
  • [ ] 对接 hhxsv5/laravel-s 可选常驻内存式部署
  • [ ] 报表统计动态筛选,选择下拉生成对应sql,形成数据统计

Q && A

  • Q1: 为什么数据库金额有的是 2147483647 类似数字
  • A1: 项目并未使用 bcmath 扩展,7.1.12 以上的 linux PHP 已直接支持大金额加减乘除等运算,windows 环境 PHP 任何版本还是不能直接大金额运算,所以 windows 下推荐使用 docker for windows + laradock 安装开发环境,避免大金额运算问题,当然服务器也可以使用 docker + laradock 搭建相同的生产环境
  • Q2: 缺少统计报表,很多都没做数据统计
  • A2: 基本的报表数据统计其实都可在对应主页面上进行筛选得到类似报表的功能,比如某用户今天下了多少单,某用户今天待提现数据等等,此类需求已加入开发计划

Example

转载于:https://juejin.im/post/5bc22ddaf265da0aea69a182

EBank 电子银行发布 2.1.0 版本相关推荐

  1. JustAuth发布1.10.0版本,集成华为和企业微信登录,更加灵活的state缓存

    JustAuth发布1.10.0版本,集成华为和企业微信登录,更加灵活的state缓存 更新内容 新增 增加AuthCache配置类AuthCacheConfig.java,可以自定义缓存有效期以及是 ...

  2. Spark发布1.3.0版本

    3月13日,Spark 1.3.0版本与我们如约而至.这是Spark 1.X发布计划中的第四次发布,距离1.2版本发布约三个月时间.据Spark官方网站报道,此次发布是有史以来最大的一次发布,共有17 ...

  3. 以太坊2.0客户端Lighthouse发布v1.3.0版本,为高优先级建议立即更新

    官方消息,以太坊2.0客户端Lighthouse开发团队Sigma Prime表示,发布Lighthouse v1.3.0版本.该版本包括对信标链节点的重要错误修复,应将其视为所有质押者的高优先级,应 ...

  4. MetaMask发布9.2.0版本 新增支持多个Ledger和Trezor硬件账户

    3月16日,浏览器插件钱包MetaMask发布V 9.2.0版本,新增支持多个Ledger和Trezor硬件账户,以及在向自己的合同地址发送代币时或自定义输入超额Gas时会添加警告,可自行设置以隐藏零 ...

  5. 时隔 3 年,音频播放器 DeaDBeeF 发布 1.8.0 版本

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   DeaDBeeF 发布了 1.8.0 版本,DeaDBeeF(0xDEADBEEF)是一个 GNU/Linux.* ...

  6. go读取excel_Excelize发布2.1.0版本,Go语言Excel文档基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准.可以使用它来读取.写入由 Microsoft Excel ...

  7. 英语构词法软件wordformation发布全新1.0版本

    英语构词法软件自2011年4月上传网盘供下载使用以来,已经获得了部分用户的好评,项目组也从未放弃对软件的更新.时隔一年,英语构词法软件又卷土重来,项目小组对软件界面和单词划分算法做了彻底的改动,从而使 ...

  8. Excelize 发布 2.1.0 版本, Go 语言最受欢迎的 Excel 基础库

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office Open XML 标准.可以使用它来读取.写入由 Microsoft Exce ...

  9. 开源数据库 SQLite 发布 3.37.0 版本

    作者:SQLite 开发团队 译者:宋彤彤 责编:屠敏 原文链接:https://github.com/sqlite/sqlite SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的 ...

最新文章

  1. javascript--this总结
  2. Qt C++属性类型提供给 QML调用(一)
  3. 服务器端与客户端TCP连接入门(三:多线程)
  4. 物联网平台存量设备如何一键迁移企业版实例
  5. ActiveMQ入门-ActiveMQ跟SpringBoot整合发送接收Queue
  6. VScode PowerShell运行脚本报错禁止运行脚本解决方式图文
  7. 不敢相信!美国预测10年后的世界!
  8. python创建二维数组的方法_Python创建二维数组的正确姿势
  9. C陷阱与缺陷阅读笔记(下)
  10. Lammps:Python上Ovito模块配置的问题与解决
  11. Transformations in signals and systems DSP
  12. word文档中实现目录索引中标题加粗,前导符和页码不加粗
  13. SQL 错误: Statement cancelled due to client request
  14. Ubuntu/Debian 微信安装
  15. 计算机算术3-整数加减法(前缀加法器)
  16. C语言函数题-输入多个单词,统计以指定字母开头的单词个数
  17. 高德地图路径轨迹起点标点不变_竞品分析之高德地图与百度地图
  18. 8.23 正点原子领航者V1开发板学习之EEPROM
  19. 【协议】NVMe over RoCE 初探 SATA、PCIe 接口和AHCI、NVMe 协议
  20. 前置机的作用(转载)

热门文章

  1. 华为mate9 android p,华为Mate10 Android P运行crash
  2. 明源售楼系统技术解析(二)付款方式定义——查询
  3. [XDOJ]日常作业汇总(不定时更新)
  4. 跨专业考取上海交大计算机研究生其实并不难,跨专业考取上海交大计算机研究生其实并不难...
  5. 在vista/win7上使用PB5
  6. 思腾合力「CH2D20-HA」2U 双路高端旗舰机架式 GPU 服务器
  7. 【okfone 教程】 奥凯丰 HEIC图片转换器
  8. 官宣!零数科技正式完成品牌升级
  9. 羽素携专家登《岭南大医生》,共揭痘肌修护玄机
  10. 军用软件概算计价规范_关于军用软件开发,你必须了解这两个标准!