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

背景

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

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

请往下看。

需求方案

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

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

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. 退款明细

扩展

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

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

相关推荐
说私域20 小时前
基于“开源 2+1 链动模式 S2B2C 商城小程序”的社区团购运作主体特征分析
大数据·人工智能·小程序
HUODUNYUN20 小时前
小程序免备案:快速部署与优化的全攻略
服务器·网络·web安全·小程序·1024程序员节
guanpinkeji20 小时前
二手手机回收小程序,一键便捷高效回收
微信小程序·小程序·软件开发·手机回收小程序·二手手机回收
paterWang20 小时前
小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
java·spring boot·小程序
尘浮生21 小时前
Java项目实战II基于微信小程序的私家车位共享系统(开发文档+数据库+源码)
java·开发语言·数据库·学习·微信小程序·小程序·maven
tundra381 天前
DTH11传感器温度湿度+esp8266+阿里云+小程序
阿里云·小程序·云计算
虞书欣的61 天前
Python小游戏28——水果忍者
开发语言·人工智能·游戏·小程序·pycharm
坠入暮云间x1 天前
Nodejs开发仿马蜂窝旅游小程序API接口,服务器端开发,商家后台 Vue3+微信小程序+koa+mongodb+node.js
微信小程序·小程序·旅游
2401_842304862 天前
想做一个类似于东郊到家这样的预约上门小程序,app也行,这个现在好不好运营?
科技·微信小程序·小程序·生活
guanpinkeji2 天前
AI数字人视频小程序:引领未来互动新潮流
人工智能·ai·小程序·软件开发·小程序开发·ai数字人小程序