首页
云表平台
品牌
客户案例
管理智库
用户故事
新闻动态
管理系统
应用商城
云粉社区
新手指南
视频教程
学习教程
帮助文档
视频教程
收费课堂
亲,请
登录
|
免费注册
|
管理控制台
查看““云表支付”业务逻辑设计”的源代码
←
“云表支付”业务逻辑设计
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只对以下1个用户组开放:
用户
。
您可以查看并复制此页面的源代码:
<big>*<font color="red">此功能需要在高于以下版本的服务器和客户端中使用:</font> *<font color="red">服务器:3.3.34.41</font> *<font color="red">客户端:3.1.33.12</font></big> =一、业务场景= ==1.1 场景假设== 我们以一个简单的场景进行说明:假设有一张订单需要支付,并且支付状态要显示在订单上。 ==1.2 分析问题== 1、由订单生成支付单。 2、对支付单进行支付,并记录支付状态(支付失败、支付成功、支付中)。 3、针对未及时支付的订单,需要自动更新支付状态。 =二、业务逻辑设计= ==2.1 基本信息说明== ===2.1.1系统模版“SYS_支付单”说明=== 开通“云表支付”服务后,系统会自动生成系统模版“SYS_支付单”(简称:支付单模版)。 支付单模版的作用是根据传入的订单信息和支付类型,生成支付单。 支付单模版提供3个全局的数据接口: 1、获取支付成功次数(订单类型,订单编号) 用于判断订单是否支付成功,返回“1”则已经支付成功,返回“0”则未支付成功。 2、查询支付单列表(订单类型,订单编号,支付状态) 用于查询某个订单的所有支付单,支付状态非必填项,填写支付状态,则只返回该状态的支付单数据。 3、获取支付单详情(支付单UUID) 用于查询指定支付单的数据。 ===2.1.2 支付类型说明=== 云表支付支持2种支付类型:H5支付 和 扫一扫支付 H5支付: 通过网页发起支付请求,可以请求打开第三方支付平台App进行支付,即在手机端操作时,会打开手机上的支付宝/微信进行支付。 扫一扫支付: 指生成支付单对应的支付二维码,付款方进行扫码支付,如是是微信支付的支付单,需要用微信扫码支付,如果是支付宝的支付单,则需要支付宝扫码支付。 ==2.2 订单生成支付单== ===2.2.1 逻辑说明=== 1、我们要用订单数据生成支付单,可以通过系统模版“SYS_支付单”生成。 2、生成订单前先进行判断,如果本订单已经支付成功或已经生成了支付单(待支付),则不需要生成支付单。 3、生成订单同时对本表单进行回写。 ===2.2.2 数据项说明=== 生成支付单必须有下表中前5个数据项(均为必填项)的信息,后3个数据项为需要回写到订单的支付状态信息: [[文件:001数据项说明.png|720px|无框|居中]] ===2.2.3 填表公式说明=== 开发者可根据实际情况设计生成订单的动作,如工具栏按钮、单元格按钮等,文档中仅以工具栏按钮事件为例。 2.2.3.1 添加生成支付单的按钮 添加工具栏按钮“H5支付” 2.2.3.2 保存表单 添加“保存”公式,先保存一次订单,确保订单编号生成(自动编号保存后生成),不影响支付单生成。 2.2.3.3 生成支付单,并回写支付信息 添加“赋值”公式,新建“SYS_支付单”,并填充初始值,但是根据支付类型不同,需要填充的初始值有所不同。 【H5支付】 需要填充的数据项有6项:“订单编号”、“订单标题”、“订单类型”、“订单金额”、“支付类型”、“不打开支付页面”,如下图。 [[文件:002H5支付赋值.png|720px|无框|居中]] 【扫一扫支付】 需要填充的数据项有5项:“订单编号”、“订单标题”、“订单类型”、“订单金额”、“支付类型”,如下图。 [[文件:003扫一扫支付赋值.png|720px|无框|居中]] 其他公式设置则不需要区分支付类型。 返回结果选择“SYS_支付单的基本信息”,不需要过滤条件。 [[文件:004返回结果.png|720px|无框|居中]] 回写支付单信息“支付单号”、“支付状态”、“支付URL”,如下图所示,分别为数据源的支付单UUID、支付状态、跳转URL [[文件:005回写支付状态.png|720px|无框|居中]] 2.2.3.4 再次保存表单 因为赋值操作是填表公式执行的,需要保存表单才会录入数据库,添加“保存”公式,保存支付单回写到订单的信息。 以上,我们就完成了生成支付单并回写支付状态的业务逻辑。 接下来,我们需要增加生成支付单前的判断。 2.2.3.5 判断订单是否已经支付成功 新增“提示框”公式,判断本表单的支付状态是否为支付成功,是则弹出提示框,提示“本订单已支付”,如下图。 [[文件:006判断是否支付成功.png|720px|无框|居中]] 2.2.3.6 判断订单是否存在“支付中”的支付单 同样新增“提示框”公式,当本表单支付状态不等于“支付成功”的时候才执行。 我们需要知道本订单对应的支付单状态,所以需要调用“支付单模版”提供的接口“查询支付单列表”,查询“支付中”的支付单,如果返回值不为空,即本订单存在支付中的支付单。 注意事项:此处不要写提示框的执行条件,如果返回值为空,系统默认不满足执行条件,不弹出提示框。 公式设计如下图: [[文件:007判断是否存在支付单.png|720px|无框|居中]] ==2.3 自动更新支付单状态== ===2.3.1 逻辑说明=== 1、当本订单对应的支付单状态为“支付中”,需要自动更新支付单状态,直到支付单“支付成功”或者“支付关闭”。 对于自动循环的动作,可以使用定时器实现。 2、什么时候需要启动定时器来更新支付单状态? 生成支付单的赋值动作只执行1次,需要启动定时器更新支付状态; 支付单没有及时支付,订单页面被关闭,填表公式不会继续执行,所有再次打开表单的时候需要更新; 3、定时器属于填表公式,不打开表单就不执行,有没有不打开表单也能更新状态的办法? 使用计划任务进行状态更新。 ===2.3.2 填表公式说明=== 2.3.2.1 创建定时器“更新支付状态” 支付单不一定会被立即支付,且第三方平台不主动推送支付状态,所以需要开发者主动请求更新支付状态。系统需要持续请求更新支付状态,所以我们需要用“定时器”自动循环执行这个操作。 1、添加定时器 在填表公式中,找到“定时器”,添加一个定时器,可以命名为“定时器_更新支付状态”,时间间隔自行设置频率,取消“表单打开后自动运行”的选项 [[文件:008添加定时器.png|720px|无框|居中]] 2、更新支付状态 支付单有3种状态——“支付成功”“支付中”“支付关闭”,我们需要逐个状态进行判断。 2-1 支付成功 系统模版SYS_支付单提供的数据接口,可以查询订单是否完成支付。 添加“赋值”公式,选择系统模版“SYS_支付单”的“查询支付单列表”接口,接口参数为订单编号、订单类型和支付状态,其中支付状态的参数值为“支付成功”,如下图。 然后对本表单的“支付状态”、“支付单号”、“支付完成时间”进行赋值。 [[文件:009定时器支付成功.png|720px|无框|居中]] 2-2 支付中 添加“赋值”公式,选择系统模版“SYS_支付单”的“查询支付单列表”接口,接口参数为订单编号、订单类型和支付状态,其中支付状态的参数值为“支付中”,如下图。 [[文件:010定时器支付中.png|720px|无框|居中]] 当本表单的支付状态不等于“支付成功”时执行,对本表单的“支付状态”、“支付单号”、“支付完成时间”进行赋值。 2-3 支付关闭 和“支付中”的公式基本相同,只是执行条件和接口参数值不一样,详见下图。 [[文件:011定时器支付关闭.png|720px|无框|居中]] 3、保存表单 更新状态信息后,再次保存表单。 4、停止定时器 定时器是为了更新支付状态,当支付单状态不等于支付中时,定时器停止。 添加公式“设置控件属性”,添加定时器控件,选择“定时器_更新支付状态”; 执行条件 本表单.支付状态<>"支付中" , [[文件:012停止定时器.png|720px|无框|居中]] 这样,更新支付状态的定时器就设计好了。 接下来,添加启动定时器的公式。 2.3.2.2 启用定时器 1、生成支付单后启动定时器 在“H5支付”按钮的公式下方添加“设置控件属性”公式,命名为“运行定时器” 添加定时器控件“定时器_更新支付状态”,运行的值改为“常量.是” [[文件:013赋值启动定时器.png|720px|无框|居中]] 2、修改打开表单后时启动定时器 在“修改打开表单后”事件中,直接引用公式“运行定时器”即可 [[文件:014打开表单启动定时器.png|720px|无框|居中]] 补充说明一下,为什么这里没有执行条件? 因为支付单回写状态到订单是填表公式执行的动作,为了避免表单异常导致回写失败,所以不管表单状态是什么,都启动定时器,如果满足定时器停止的条件,定时器会自动停止,不会占用系统性能。 ==2.4 用计划任务自动更新== 计划任务本身不能设置业务公式,所以需要一个中间模版来设置业务公式。 ===2.4.1 中间模版的业务公式=== 可以参考定时器查询订单支付状态的逻辑,通过调用SYS_支付单的“查询支付单列表”接口进行查询,需要3个参数“订单类型”“订单编号”和“支付状态”,其中订单类型和订单编号需要订单模版提供,所以先要增加一个“查询订单信息”接口,然后再设计中间模版。 2.4.1.1 查询订单信息接口 在订单模版中添加数据接口,数据源为本模版,数据列选择“订单类型”“订单编号”,过滤条件设置为支付状态=“支付中” [[文件:015查询订单信息接口1.png|720px|无框|居中]] [[文件:016查询订单信息接口2.png|720px|无框|居中]] 2.4.1.2 中间模版的业务公式 中间模版命名为“计划任务_更新支付状态”,这个模版只执行业务公式,所以不需要设置数据项或者表单样式。 ——业务公式【计划任务更新状态】 添加业务公式“计划任务更新状态”,选择目标模版为订单模版,在“新建时”标签页下设计逻辑。 case1针对支付关闭的情况,添加“同级数据源”选择订单模版的接口“查询订单信息”,勾选“多记录”,然后添加“子数据源”,选择SYS_支付单的“查询支付单列表”,设置参数。 对目标模版进行更新表单操作,匹配条件用“查询订单信息”的返回值和目标模版进行匹配,然后赋值,具体设计如下图所示。 注意:当订单支付状态为“支付成功”时,不需要再判断其他情况,所以左下角要勾选“执行后不再执行后续case” [[文件:017中间模版case1.png|720px|无框|居中]] case2和case1的设置基本相同,只是在子数据源传参数时,支付状态的值为“支付关闭”,如下图。 [[文件:018中间模版case2.png|720px|无框|居中]] ——业务公式【删除表单】 中间模版是保存后执行业务公式,即计划任务每执行一次,就会生成1张表单,这些表单没有实际意义,可以增加一个删除表单的业务公式。 匹配条件“1=1”,“1=1”恒为真,所以该模版的所有表单都会被删除。 [[文件:019删除中间表单.png|720px|无框|居中]] ===2.4.2 设置计划任务=== 新建计划任务“更新支付状态”,选择模版“计划任务_更新支付状态”,设置开始时间、重复间隔和持续时间,选择“启用”后点击确定即可。 [[文件:020设置计划任务.png|720px|无框|居中]] =三、相关文档= <big>点击阅读 —— </big>[[云表支付功能开通流程]]
返回
“云表支付”业务逻辑设计
。
导航菜单
查看
阅读
查看源代码
查看历史
操作
搜索
名字空间
页面
讨论
变种
首页
云表平台简介
云表概述
云表服务器各版本介绍
安装与配置
概述
创建云端应用空间
创建本地应用空间
安装云表服务器
商城产品的购买与安装
解绑服务器
激活服务器
在其它电脑上安装云表浏览器
新手入门
登入系统
新建文件夹
新建模板
如何定义数据项
在总表中管理表单
定义明细表
简化和规范数据的录入
列表选择辅助表单填写
设置主键,保证数据的唯一性
Excel公式快速填写表单
根据表单数据自动填写其它数据
在对话框中添加按钮
用本表单更改其它表单信息
使用数据校验保证准确性
组织机构
设置表单的操作权限
设置允许查看的数据范围
建立统计报表方便数据的查询
简易工作流的使用
建立业务流程
建立导航,美化系统
文件夹与导航目录
1.1 文件夹
表单模板
2.1 概述
2.2 新建模板
2.3 多表格模板的设计
2.4 内嵌浏览器的设计
2.5 模板样式
2.6 基本数据项
2.7 明细表
2.8 树形明细
2.9 交叉表
2.10 数据表管理
2.11 单元格格式
2.12 单元格类型
2.13 云表浏览器内核的切换方法
2.14 工具栏按钮右键菜单设置
2.15 隐藏文件列表操作按钮
数据接口
3.1 概述
3.2 自动编号
3.3 下拉列表
3.4 列表选择
3.5 树形列表
3.6 系统变量
状态设置
4.1 概述
4.2 应用
模板属性
5.1 基本属性
5.2 锁定条件
5.3 审批流程
5.4 附件
组织机构与操作权限
6.1 角色
6.2 用户
6.3 组织机构
6.4 岗位
6.5 业务公式更新用户信息
模板权限
7.1 权限
7.2 策略
总表
8.1 概述
8.2 筛选
8.3 分页显示
8.4 设置列宽
8.5 设置隐藏/显示数据项
8.6 设置数据项显示顺序
8.7 恢复列默认设置
8.8 显示表单图片
8.9 批量审核
8.10 批量导入
8.11 批量导入图片
8.12 给总表添加分类树
8.13 在总表中显示明细表
8.14 在总表中关联显示其他表单
填表公式
9.1 概述
9.2 事件
9.3 数据源
9.4 操作
9.5 函数
9.6 应用
业务公式
10.1 概述
10.2 快速入门
10.3 参数说明
10.4 新建操作
10.5 更新操作
10.6 删除操作
10.7 报错操作
10.8 更新明细表
10.9 子数据源
10.10 原理讲解
10.11 深入理解业务公式
10.12 事件
10.13 业务公式更新用户信息
业务流程
11.1 概述
11.2 快速入门
11.3 工作流进阶
11.4 流程删除方法
11.5 系统变量使用方法
其他类型模板
12.1 统计查询
12.2 报表
12.3 图表
12.4 设计登入界面
图形表单(导航)
13.1 使用方法
13.2 实现九宫格布局
系统服务
14.1 短信服务
14.2 短信服务(旧)
14.3 邮件服务
14.4 计划任务
14.5 系统日志
14.6 电话盒子服务
14.7 APP消息推送服务
14.8 文件系统
14.9 对接企业微信配置
14.10 对接钉钉配置
14.11 企业微信推送配置
14.12 微信推送配置
14.13 钉钉推送配置
14.14 网关服务器配置方法
系统配置
15.1 全局边栏配置
15.2 全局超时时间配置
企业云盘
16.1 概述
16.2 个人文件夹
16.3 协作文件夹
16.4 公用文件夹
16.5 基本操作
16.6 表单与云盘配合使用
外部数据源
17.1 概述
17.2 新建数据源(数据库)
17.3 新建数据源(API)
表达式
18.1 执行表达式
18.2 赋值表达式
打印
19.1 打印设置
19.2 自定义纸张大小
19.3 默认打印机设置
19.4 批量打印条码标签
移动端APP
20.1 APP概述
20.2 APP下载及安装
20.3 APP使用说明
20.4 APP地图定位
20.5 APP自动分组
云表服务器控制中心
21.1 云表服务器控制中心使用说明
常见问题分析
22.1 启动服务失败问题汇总
22.2 手工安装加密锁驱动
22.3 常用端口
22.4 配置数据接口最大返回条数限制
22.5 服务器安装启动问题指南
通用
23.1 函数
23.2 隐藏待办事项和已完成事项设置方法
23.3 账号密码缓存管理
23.4 修改模板样式文件及附件文件保存路径
23.5 导出word文档使用方法
23.6 电子围栏的使用
23.7 Json数据接口
23.8 高拍仪的使用
23.9 身份证读卡器的使用
23.10 同步组织机构
23.11 云表支付功能开通流程
23.12 云表支付业务逻辑设计
23.13 OpenAPI接口使用说明
管理软件帮助文档
云表进销存操作说明
新版帮助
表单与模版:概述
统计查询:概述
统计查询:区别
统计查询:基本用法
工具
链入页面
相关更改
特殊页面
页面信息