一个小程序如何对接多个收款账户?
背景
我又来了,之前对接过网约巴士系统 网约巴士旅游专线平台搭建历程,运营了两年多了。在运营中完善、在完善中学习,一直是不变的真理。有一句话说得好:先做一个垃圾、用起来再说。
今天又需要升级了,需求是:可以根据不同的线路,收款进入不同的账户,如图:

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

第一版完成后,不满意,看不懂我就醉了,然后又用白话文把上面的重新写了一遍:
2.功能需求
2.1.支付账户管理
为了进行多入账渠道账户设置,管理员可以在后台进行相关财务账号操作:
- 查看财务账户基础信息:财务账号命名、企业名称;
2.2.线路管理
相关操作人员,可以在后台对线路进行管理,将现有线路进行财务归类,以便客户支付时可以进行对应财务入账;如图:
2.3.线路类型管理
将所有线路进行分类(校园专线、通勤专线、旅游专线),然后对线路类型进行统一设置支付通道,提高操作效率;
备注:若在线路管理已经设置支付账户、则该设置无效;
2.4.权限分配
管理员可以通过权限配置,对管理后台人员进行权限分配,指定拥有特定收款账户的查看操作权限;
2.5.订单管理
通过分账户收款功能后,具有特定管理权限的管理员,只可查看管理自己权限之内的订单,和操作:
- 订单查看
- 退款操作
- 订单统计功能
2.6.财务管理
财务功能目前是汇总至一个账户,分支付通道后,具有特定管理权限的管理员,只可查看管理自己权限之内的订单,和操作:
- 支付流水
- 退款明细
- 退款订单记录
2.7.小程序端设置
小程序端包含两个功能,客户操作端,和系统管理端:
- 客户操作端:客户选择对应线路后,系统自动匹配预先设置的收款账户进行支付;当客户退款时亦是如此;
- 系统管理端:管理员可以在小程序查看对应权限的相关数据、并进行操作,主要包括如下模块:
数据统计:操作员可通过小程序后台进行实时查看相关权限数据;
订单管理:操作员可通过小程序后台,进行订单详情、退款、订单搜索、和客户打电话联系
2.8.核销端
本次升级新增了扫码核销,被扫。客户乘车出示核销码,车载设备扫码后语音提醒乘车成功或失败。本次设备使用了两款设备:
一款是比较完善的,支持刷脸、小程序码、公交卡的,需要二次开发,说实话,很贵,大概逻辑如下:

3.部分代码逻辑
3.1.小程序账户管理
解决问题是王道,依然使用世界上最好的语言:PHP ,表结构如下:
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,生成基础后台模块。
php think crud -t pa********t --relation=shop --relation=admin --relationforeignkey=shop_id --relationforeignkey=admin_id -u 1
去线路model,关联外键,代码如下:
public function pa***********(){return $this->belongsTo('P*************', 'p********t_id', 'id', [], 'LEFT')->setEagerlyType(0);}
接下来的任务就是修改线路编辑,增加选择支付通道:
<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>
到此为止,基础功能就完了,剩下的就是要权限分配了,主要包括如下模块权限的分配,我就不一一列出了:
- 订单权限管理
- 财务订单
- 支付明细
- 退款明细
扩展
整体来说,本项目可以进行无限极扩展,当然了,别人是看不懂我的代码的,目的就是增加二次开发难度,实现合作共赢.............把那些白嫖党、喜欢几百块买个源码去骗人的垃害群之马之门外
拒绝一切害群之马.....
相关文章:
一个小程序如何对接多个收款账户?
背景 我又来了,之前对接过网约巴士系统 网约巴士旅游专线平台搭建历程,运营了两年多了。在运营中完善、在完善中学习,一直是不变的真理。有一句话说得好:先做一个垃圾、用起来再说。 今天又需要升级了,需求是&#…...
L2G4000 InternVL 部署微调实践闯关任务
一、理解多模态大模型的常见设计模式,可以大概讲出多模态大模型的工作原理。 视频地址 开源的多模态大模型:InternVL,Qwen-VL,LLaVA 闭源的:GPT-4o 研究重点:不同模态特征空间的对齐 BLIP2 将图像特征对…...
asynDriver-6-端口驱动
本地串口 drvAsynSerialPort驱动支持设备连接到IOC上串口。 用drvAsynSerialPortConfigure和asynSetOption命令配置串口: drvAsynSerialPortConfigure("portName","ttyName",priority,noAutoConnect,noProcessEosIn) asynSetOption("po…...
[免费]基于Python的Django+Vue3在线考试系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的基于Python的DjangoVue3在线考试系统,分享下哈。 项目视频演示 【免费】基于Python的DjangoVue3在线考试系统 Python毕业设计_哔哩哔哩_bilibili 项目介绍 本论文提出并实现了一种基于Python…...
Python使用爬虫
一、基本介绍 爬虫(Web Scraping)是一种自动化获取网页内容的技术,它通过编写程序模拟浏览器的行为,从互联网上抓取网页数据。爬虫可以用于多种目的,比如数据收集、信息整合、自动化测试等。 二、常用的库 1、Request…...
CommunityToolkit.Mvvm如何使用
CommunityToolkit.Mvvm 是一个现代、快速和模块化的 MVVM 库,用于 .NET 应用程序。以下是如何使用 CommunityToolkit.Mvvm 的基本步骤: 安装包: 你可以通过 NuGet 包管理器安装 CommunityToolkit.Mvvm。在 Visual Studio 中,你可以…...
Python小游戏20——超级玛丽
首先,你需要确保你的Python环境中安装了pygame库。如果还没有安装,可以使用以下命令进行安装: bash pip install pygame 运行效果展示 代码展示 python import pygame import sys # 初始化pygame pygame.init() # 设置屏幕尺寸 screen_width …...
配置文件格式(xml、properties、yml/yaml)
配置文件格式(xml、properties、yml/yaml) 配置文件格式一、XML二、properties三、yml/yaml基本语法yml数据格式1、对象/Map集合1、数组/List/Set集合 配置文件格式 什么是配置文件?: 配置文件是包含应用程序或系统配置信息的文件…...
CentOS 7 软件/程序安装示例
安装软件/程序 wget,前提需要用 root 用户 1、搜索软件/程序 yum search wget 搜索到软件/程序。 2、安装软件/程序 yum -y install wget 安装完成。...
Python绘制正弦函数图形
1,绘制正弦函数图形,让数学看得见, import math # 导入函数模块 import turtle # 导入turtle模块,用于绘图t turtle.Turtle() # 创建对象 turtle.bgcolor("#2dded9") # 设置背景颜色 t.pencolor(blue) # 设置画笔…...
【LVGL-列表部件 lv_list_create】
LVGL-列表部件 lv_list_create ■ LVGL-列表部件-函数■ 修改样式-■ 修改样式- 背景色■ 修改样式- 改变项的颜色-label■ 修改样式- 改变项的颜色-btn ■ 事件(Event)■ 示例0:综合■ 示例1(自动出现滚动)■ 示例2(滚动捕捉&…...
【P2-6】ESP8266 WIFI模块在STA模式下实现UDP与电脑/手机网络助手通信——UDP数据透传
前言:完成ESP8266 WIFI模块在STA模式下实现UDP与电脑/手机网络助手通信——实现UDP数据透传 STA模式,通俗来说就是模块/单片机去连接路由器/热点来通信。 UDP协议,是传输层协议,UDP没有服务器和客户端的说法。 本实验需要注意,wifi模块/单片机与电脑/手机需要连接在同一个…...
从零学习大模型(十)-----剪枝基本概念
剪枝的基本概念 模型压缩中的地位:剪枝是模型压缩中的重要技术之一,它通过减少模型的参数量来降低计算资源的需求。对于大型神经网络,尤其是像BERT、GPT等参数量级巨大的模型,剪枝可以有效地减少模型的内存占用和计算量ÿ…...
Jest进阶知识:模拟 ES6 类 - 掌握类的依赖模拟与方法监听技巧
引言 在现代前端开发中,ES6 类(class)是常用的一种面向对象编程方式。在测试类的时候,我们经常需要模拟类的依赖,以避免外部因素对测试结果的影响。Jest 提供了强大的工具来模拟类及其方法,确保测试的高效…...
前端Nginx的安装与应用
目录 一、前端跨域方式 1.1、CORS(跨域资源共享) 1.2、JSONP(已过时) 1.3、WebSocket 1.4、PostMessage 1.5、Nginx 二、安装 三、应用 四、命令 4.1、基本操作命令 4.2、nginx.conf介绍 4.2.1、location模块 4.2.2、反向代理配置 4.2.3、负载均衡模块 4.2.4、通…...
Java设计模式(代理模式整理中ing)
一、代理模式 1、代理模式定义: 代理模式:由于某些原因要给某对象提供一个代理以控制对该对象的访问,这时访问对象不适合或者不能够直接引用目标对象,代理对象作为访问对象与目标对象之间的中介进行连接调控调用。 2、代理模式的…...
第J9周:Inception v3算法实战与解析(pytorch版)
>- **🍨 本文为[🔗365天深度学习训练营]中的学习记录博客** >- **🍖 原作者:[K同学啊]** 📌本周任务:📌 了解并学习InceptionV3相对与InceptionV1有哪些改进的地方 使用Inception完成天气…...
如何封装一个axios,封装axios有哪些好处
什么是Axios Axios 是一个基于 Promise 的 HTTP 客户端,用于在浏览器和 Node.js 中发送异步网络请求。它简化了发送 GET、POST、PUT、DELETE 等请求的过程,并且支持请求拦截、响应拦截、取消请求和自动处理 JSON 数据等功能。 为什么要封装Axios 封装…...
java的批量update
这个问题挺有代表性的,今天拿出来给大家一起分享一下,希望对你会有所帮助。 1 案发现场 有一天上午,在我的知识星球群里,有位小伙伴问了我一个问题:批量更新你们一般是使用when case吗?还是有其他的批量更…...
go语言连续监控事件并回调处理
前言 go语言中使用回调函数处理事件:事件监测部分(如无限循环中的事件检测逻辑)可以独立于具体的业务处理逻辑。这使得代码的各个部分更加清晰,易于理解和维护。如果需要更改事件处理的方式,只需要修改注册的回调函数…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
