一个小程序如何对接多个收款账户?

背景

我又来了,之前对接过网约巴士系统 网约巴士旅游专线平台搭建历程,运营了两年多了。在运营中完善、在完善中学习,一直是不变的真理。有一句话说得好:先做一个垃圾、用起来再说。

今天又需要升级了,需求是:可以根据不同的线路,收款进入不同的账户,如图

请往下看。

需求方案

先看一个逻辑结构图,甲方一句话,可能需要把系统做颠覆性的改动,所以,没有所以:

第一版完成后,不满意,看不懂我就醉了,然后又用白话文把上面的重新写了一遍:

2.功能需求

2.1.支付账户管理

为了进行多入账渠道账户设置,管理员可以在后台进行相关财务账号操作:

  • 查看财务账户基础信息:财务账号命名、企业名称;

2.2.线路管理

相关操作人员,可以在后台对线路进行管理,将现有线路进行财务归类,以便客户支付时可以进行对应财务入账;如图:

2.3.线路类型管理

将所有线路进行分类(校园专线、通勤专线、旅游专线),然后对线路类型进行统一设置支付通道,提高操作效率;

备注:若在线路管理已经设置支付账户、则该设置无效;

2.4.权限分配

管理员可以通过权限配置,对管理后台人员进行权限分配,指定拥有特定收款账户的查看操作权限;

2.5.订单管理

通过分账户收款功能后,具有特定管理权限的管理员,只可查看管理自己权限之内的订单,和操作:

  • 订单查看
  • 退款操作
  • 订单统计功能

2.6.财务管理

财务功能目前是汇总至一个账户,分支付通道后,具有特定管理权限的管理员,只可查看管理自己权限之内的订单,和操作:

  • 支付流水
  • 退款明细
  • 退款订单记录

2.7.小程序端设置

小程序端包含两个功能,客户操作端,和系统管理端:

  • 客户操作端:客户选择对应线路后,系统自动匹配预先设置的收款账户进行支付;当客户退款时亦是如此;
  • 系统管理端:管理员可以在小程序查看对应权限的相关数据、并进行操作,主要包括如下模块:

数据统计:操作员可通过小程序后台进行实时查看相关权限数据;

订单管理:操作员可通过小程序后台,进行订单详情、退款、订单搜索、和客户打电话联系

2.8.核销端

本次升级新增了扫码核销,被扫。客户乘车出示核销码,车载设备扫码后语音提醒乘车成功或失败。本次设备使用了两款设备:

一款是比较完善的,支持刷脸、小程序码、公交卡的,需要二次开发,说实话,很贵,大概逻辑如下:

3.部分代码逻辑

3.1.小程序账户管理

解决问题是王道,依然使用世界上最好的语言:PHP ,表结构如下:

sql 复制代码
CREATE TABLE `dd_pay*****t` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `shop_id` int(10) DEFAULT NULL COMMENT '关联商户',
  `admin_id` int(10) DEFAULT NULL COMMENT '关联管理员',
  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '小程序名称',
  `AppID` varchar(120) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'AppID',
  `AppSecret` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'AppSecret',
  `mch_id` int(10) DEFAULT NULL COMMENT 'mch_id',
  `mchkey` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'key',
  `apiclient_cert_file` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'apiclient_cert',
  `apiclient_key_file` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'apiclient_key',
  `xlid` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `status` enum('0','1','2') COLLATE utf8_unicode_ci DEFAULT '0' COMMENT '状态:0=禁用,1=启用,2=其他',
  `createtime` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='小程序管理';

表创建后,通过一键crud,生成基础后台模块。

bash 复制代码
php think crud -t pa********t --relation=shop --relation=admin --relationforeignkey=shop_id --relationforeignkey=admin_id   -u 1

去线路model,关联外键,代码如下:

php 复制代码
 public function pa***********()
    {
        return $this->belongsTo('P*************', 'p********t_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

接下来的任务就是修改线路编辑,增加选择支付通道:

html 复制代码
 <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('收款支付账号')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-pa*****unt_id"  data-source="p*******t/index" data-field="title" class="form-control selectpage" name="row[pa********nt_id]" type="text" value="{$row.pay*****nt_id|htmlentities}">
            <span style="margin-top: 15px">
               <span style="color: red">注意:</span><br/>
                A.该功能暂为开启,无需设置
               </span>
        </div>
    </div>

到此为止,基础功能就完了,剩下的就是要权限分配了,主要包括如下模块权限的分配,我就不一一列出了:

  1. 订单权限管理
  2. 财务订单
  3. 支付明细
  4. 退款明细

扩展

整体来说,本项目可以进行无限极扩展,当然了,别人是看不懂我的代码的,目的就是增加二次开发难度,实现合作共赢.............把那些白嫖党、喜欢几百块买个源码去骗人的垃害群之马之门外

拒绝一切害群之马.....

相关推荐
2401_8441390315 分钟前
Java爱情交友婚恋系统小程序源码
微信·微信小程序·小程序·微信公众平台·交友·微信开放平台
qq22951165021 小时前
微信小程序 uniapp网络记账设计个人理财系统
微信小程序·小程序·uni-app
guanpinkeji3 小时前
酒店民宿小程序,探索行业数字化管理发展
大数据·小程序·小程序开发·小程序制作·民宿小程序·酒店民宿小程序
YMZN918 小时前
基于SSM+小程序的计算机实验室排课与查询管理系统(实验室2)
小程序
说私域8 小时前
全渠道供应链打造中企业定制开发2+1链动模式S2B2C商城小程序的策略与影响
java·大数据·小程序
一 乐10 小时前
家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)
java·数据库·小程序·家庭点餐小程序·家庭家常菜点餐
QGC二次开发18 小时前
Qt项目实战:红绿灯小程序
开发语言·c++·qt·小程序·qt项目实战
YesPMP外包平台官方21 小时前
H5开发指南|掌握核心技术,玩转私域营销利器
大数据·ui·小程序·数据分析·html5·软件需求·web app
Mr_Xuhhh1 天前
Linux第一个小程序-进度条
linux·运维·visualstudio·小程序·编辑器·apache