威富通
快捷对账
1,新增对账处理器
实现 cn.swiftpass.core.server.acc.service.billdownloader.impl.AbstractCheckBillProcessor
@Service
@ApiProvider(apiProviderValue = AccConstants.自己约定的值)
public class WlmqFastPayCheckBillProcessor extends AbstractCheckBillProcessor {
重写
beforeProcess,下载文件前做些什么
getTargetDownFileName,获取下载文件名称
downloadCheckBillInner,下载第三方账单
parsePayOrderDtoByLine,按照行解析文件,
这里把第三方订单信息存放thirdMap,
需关注存入的是否为威富通订单号
1,key 威富通订单号
2,key 不是威富通订单号
}
2,对账前置校验
cn.swiftpass.core.server.acc.account.worker.CheckBillWorker#validate
需改动
如果第三方返回的有下载路径,这不需要验证,配置下载文件路径
// 需要对账方式-任务没有配置下载文件路径
if (payCenterDto.getApiProvider()!=API_PROVIDER_FAST_CARD ......) {
logger.error("第三方下载地址为空,请检查。任务id={}", task.getTaskId());
return false;
}
如果第三方没用返回下载路径
cn.swiftpass.core.server.acc.service.impl.CheckBillTaskServiceImpl#buildCheckBillTask
修改 设置对账下载路径
/** 下载任务属性初始化 */
// 设置对账下载路径
if (AccConstants.API_PROVIDER_FAST == payCenterDto.getApiProvider()) {
String downloadMessage = payCenterDto.getDownLoadMessage();
Map downMsgMap = JSON.parseObject(downloadMessage, Map.class);
if (downMsgMap.containsKey("path")) {
checkBillTaskDto.setBillPath(downMsgMap.get("path").toString());
}else {
logger.error("快捷支付-对账信息 path 未配置");
}
}
3,逐笔对账
cn.swiftpass.core.server.acc.account.worker.CheckBillWorker#work
jdbc逐笔对账
cn.swiftpass.core.server.acc.account.job.CheckBillPayOrderJob#execute 支付订单处理
cn.swiftpass.core.server.acc.account.job.CheckBillRefundOrderJob#execute 退款订单处理
thirdMap key不是威富通订单号
thirdPayOrder = thirdMap.get(wftPayOrder.getOrderNo())需改动
checkedThirdOrderNoSet.add(wftPayOrder.getOrderNo()) 需改动
checkedThirdOrderNoSet是已对的第三方账单Set
checkBillUpDownDtos挂销账List
销账处理,过滤thirdMap中已对账的订单,剩下之前挂账的订单
cn.swiftpass.core.server.acc.account.worker.CheckBillWorker#dealRemainingBill
根据thirdMap中订单号获取本地订单信息
thirdMap key不是威富通订单号,需改动,获取威富通订单号
cn.swiftpass.core.server.acc.account.utils.ThirdMoreOrderHandler#thirdMoreOrderHandle
4,模拟造订单数据
运行bill-generator服务
修改数据库连接信息
1,下载最新导入模板
2,select * from TRA_PAY_TYPE; --- 支付类型
获取 支付类型简称,pay_type_id,pay_center_id通道id,api_code
SELECT * FROM CMS_MERCHANT; --- 商户表
获取 商户号 商户编号
3,修改excel,新增订单
5,修改订单商户手续费
支付订单
SELECT * FROM PAY_ORDER ORDER BY OUT_TRADE_NO DESC;
修改 calc_state为1(计算完成),mch_theory_procedure_fee, mch_real_procedure_fee, mch_discount_fee 为0
退款订单
SELECT * FROM pay_refund ORDER BY REFUND_NO DESC;
修改 calc_state为1(计算完成)...手续费为0
5,构造第三方订单文件
按照第三方订单格式修改数据
修改订单号或者流水号为 我们造的数据 的订单号或第三方订单号等
上传到ftp
6,页面测试
1,支付通道管理配置
2,对账任务设置--选择对账时间--1,删除第三方账单 2,重新对账 3,单任务触发对账
需要关注的点
1,对账的文件是否需要过滤非数币订单?如果过滤以什么标识过滤 无须过滤
2,交易类型需要关注那几个类型?
3,冲正单是否需要处理?
4,三方账单的实收金额 对应 我们订单表的支付金额 totalFee 嘛?
5,三方账单模板是否有
打包顺序
transmit -> cle-bank -> cle -> acc 然后pravite-war做一次maven refers
not bean 问题
1,需要在HessianConsumerConfiguration中注入
@Bean("InterestsApiService")
public InterestsApiService interestsApiService(){
return interestsApiService;
}
@HessianClient("interests")
InterestsApiService interestsApiService;
----------
2,在app-config.properties中配置
hessian.interests.server=http://127.0.0.1:8001/sppay-cms-war
Transmit 接口对接
1,api.json 添加对应配置
2,添加Constant常量,对应api.json中配置路径
3,reqDto,respDto 编写
4,WlmqForwardService编写
5,行内接口测试,得到返回值
6,添加数据到mock-data.json
7,编写test案例测试
打包发布镜像时要修改
api.json配置
日夜颠倒头发少 ,单纯好骗恋爱脑 ,会背九九乘法表 ,下雨只会往家跑 ,搭讪只会说你好 ---- 2050781802@qq.com