(微服务实战)预付卡平台支付交易系统卡充值业务流程设计
1 技术架构
系统整体采用微服务架构,JDK使用17版本,SpringBoot为3.x版本。系统涵盖了管理后台,交易系统,客户端(小程序,APP)。
2 卡充值业务流程设计
2.1 卡充值业务流程
系统采用了多种充值方式具体有以下几种小程序、APP、自助终端等方式。系统参与方主要有预付卡充值终端(小程序,APP,硬件)、预付卡交易系统、第三方支付系统。用户选择预付卡充值方式(小程序,APP等)向卡系统-支付交易系统发起充值请求,支付交易系统处理内部相关校验并调用第三方支付接口完成预付卡充值。以下为具体流程图
2.2 卡充值接口设计
2.2.1 通信协议
HTTP/JSON
2.2.2 接口定义
交易码
交易码名称 | 操作码说明 |
---|---|
VOUCHER-RECHARGE | 充值 |
消息请求对象节点名CardRecharge,节点字段定义如下:
参数名 | 必/可选 | 类型 | 长度 | 参数说明 | 约束 |
---|---|---|---|---|---|
voucherSeq | 必选 | 字符 | 128 | 卡序号 | 单张充值传卡号 |
orderType | 必选 | 字符 | 1 | 充值方式 | 1单张充值 2批量充值 |
payType | 必选 | 字符 | 1 | 消费类型 | 1:现金卡2:点卡3:电影兑换卡(次卡) |
operId | 必选 | 字符 | 32 | 充值操作员 | 自助终端传终端编号 |
voucherNum | 必选 | 数字 | 10 | 充值卡数量 | |
saleId | 必选 | 字符 | 32 | 售卡机构编号 | |
timeStamp | 必选 | 时间 | 14 | 时间戳 | yyyyMMddHHmmss |
singleSaveAmount | 必选 | 数字 | 10 | 单张充值金额 | 现金卡传金额,点卡传点数、次卡传次数 |
singleRealAmount | 必选 | 数字 | 10 | 单张实收金额 | 金额值 |
totalSaveAmount | 必选 | 数字 | 10 | 总充值金额 | 现金卡传总金额,点卡、次卡、劵得到根据标准售价得到的总金额 |
totalRealAmount | 必选 | 数字 | 10 | 总实收金额 | 金额值 |
expDate | 可选 | 时间 | 8 | 有效期 | YYYYMMDD |
rebateAmount | 可选 | 数字 | 10 | 返佣 | 金额值 |
strantAmount | 可选 | 数字 | 10 | 标准价 | 点卡、次卡、劵销售必选 |
saleManager | 可选 | 字符 | 32 | 销售助理编号 | |
saleMan | 必选 | 字符 | 32 | 业务员编号 | |
extendInfo | 可选 | 字符 | 1024 | 接口扩展字段信息 |
返回消息对象节点名CardRechargeResp,节点字段定义如下:
参数名 | 必/可选 | 类型 | 长度 | 参数说明 | 约束 |
---|---|---|---|---|---|
respCode | 必选 | 字符 | 返回代码 | respCode | |
respMess | 必选 | 字符 | 返回消息 | respMess | |
orderId | 必选 | 字符 | 订单号 | orderId | |
voucherSeq | 必选 | 字符 | 凭证序号 | voucherSeq |
2.2.3 消息样例
请求消息数据体BusinessData格式样例:
{"VoucherRecharge": {"voucherSeq": "00090000100019-00090000100100","orderType": "1","operId": "","voucherNum": "","saleId": "","timeStamp": "","company": "","singleSaveAmount": "","singleRealAmount": "","totalSaveAmount": "","totalRealAmount": "","thirdJournal": "","extendInfo": ""}
}
消息响应:
{"VoucherRechargeResp": {"respCode": "0","respMess": "成功","orderId": "20140224145600","voucherSeq": "00090000100019-00090000100100"}
}
3 充值审核接口设计
3.1 通信协议
HTTP/JSON
3.2 接口定义
交易码
交易码名称 | 操作码说明 |
---|---|
AUTH-RECHARGE] | 发卡机构充值 |
消息请求对象节点名AuthRecharge,节点字段定义如下
参数名 | 必/可选 | 类型 | 长度 | 参数说明 | 约束 |
---|---|---|---|---|---|
orderId | 必选 | 字符 | 32 | 充值订单号 | |
operId | 必选 | 字符 | 32 | 当前操作员id | |
extendInfo | 可选 | 字符 | 1024 | 接口扩展字段信息 | 以 | 分割 |
返回消息对象节点名AuthRechargeResp,节点字段定义如下:
参数名 | 必/可选 | 类型 | 长度 | 参数说明 | 约束 |
---|---|---|---|---|---|
respCode | 必选 | 字符 | 返回代码 | ||
respMess | 必选 | 字符 | 返回消息 | ||
orderId | 必选 | 字符 | 订单号 | ||
voucherSeq | 必选 | 字符 | 凭证序号 |
3.3 消息样例
请求消息数据体BusinessData格式样例:
{"AuthRecharge": {"orderId": "20240618162400","operId": "itbeien","extendInfo": "1"}
}
消息响应:
{"AuthRechargeResp": {"respCode": "0","respMess": "成功","orderId": "20240618145600","voucherSeq": "00090000100019-00090000100100"}
}
4 关注我
欢迎关注我的视频号和公众号,视频号有相关技术和业务视频可学习支付业务/文旅行业数字化。探讨技术(系统架构、微服务、容器化、云原生)。