博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
支付流程注意事项
阅读量:6253 次
发布时间:2019-06-22

本文共 1331 字,大约阅读时间需要 4 分钟。

  1. 参数
    参数可以写注解校验,可以用切面校验。
    参数校验包括长度, 取值范围,重复提交(订单号重复,批次号重复等)。
    举个栗子:
    收款账号类型个人还是对公,交易金额限额,汇路,同行跨行,付款账号是否存在,批次信息错误,给出错误项,下标,非空校验,正整数校验,时间类型开始时间,长度,正则,整这些行了,^_^
  2. 异常
    先说这个问题吧,异常,一定要捕获,一定要捕获,一定要捕获!!!
    至少报错了能给下游返回,能给出错误原因就比较好了,能总结出错误代码(比如成功100000,系统错误199999)就更好了,能发邮件就最好了。
    好了,不扯淡,以上事实上都需要有,是一个渐进的过程吧,上线时间紧张的话,至少保证第一个。
    异常要打日志, 异常要打日志, 异常要打日志!!!
    最痛苦的事情就是,生产出了事故,没有日志,是自己写的代码还好,不怨别人,如果你写了代码,离职了,出事故了,人一追日志,没有日志,没有,没。。
    定义异常:
    异常ID,用于表示某一异常实例,每一个异常实例都有一个唯一的异常ID。
    异常信息,包含必要的上下文业务信息,用于打印日志。
    具体异常码,即异常码code的后3位,由各具体异常实例化时自己定义。
    异常码描述。
  3. 异步

    拿批量付款举例吧,批量的交易,我们一般做异步处理,也就是说入库之后我们就给下游返回已处理,之后我们起线程和上游交互。
    和下游交互过程如下:
    a.参数转换,入参转换为批次信息,明细信息;
    b.校验相关必要信息, 入库;
    和上游交互过程如下:
    a.转换报文,包括一些商户号,账号,用户名,密码,注意编码格式,钱的单位&格式(分,元有无逗号之类的);
    b.发送报文;
    c.处理返回结果:
    <1>判断是不是终态,如果是终态通知下游;
    <2>更新数据库。

  4. 返回dto

    4个参数必不可少,返回码,返回信息,上游返回码,上游返回信息。
    返回码对应系统返回状态,上游返回码对应上游返回状态,上游返回状态要递归,举个栗子:最外层报文成功了,找下一个状态,下一个状态失败了,这个状态返回;这个状态成功了,找下一个状态,好像在说绕口令,总之一句话,如果有失败的状态返回第一个失败的状态(最外层);如果没有失败的状态,返回最后一个成功状态(最里层)。

ps.

对象转xml我们用的XStream,发送报文我们用的HttpClient.
XStream maven依赖

com.thoughtworks.xstream
xstream
1.4.3

HttpClient maven依赖

org.apache.httpcomponents
httpclient
4.3.5

分2元

BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100)).toString()

转载地址:http://csysa.baihongyu.com/

你可能感兴趣的文章
Java DynamoDB 增加、删除、修改、查询
查看>>
【转】linux下 postgres的一些操作总结
查看>>
不写for也能选中checkbox!
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
[原译]接口VS 委托
查看>>
EF 一对一、一对多、多对多配置语句小记
查看>>
cacti
查看>>
Android studio教程:[1] 创建app项目
查看>>
matplotlib图像中文乱码(python3.6)
查看>>
PKUSC2018游记
查看>>
css
查看>>
解决linux 乌班图下使用eclipse创建类和其他各种操作进程卡死的问题的一种可能方法...
查看>>
Java规则引擎及JSR-94[转]
查看>>
【c学习-13】
查看>>
转:最全列表: 80 多个 Linux 系统管理员必备的监控工具
查看>>
给报表增加页眉
查看>>
Mysql配置参数说明
查看>>
python ----字符串基础练习题30道
查看>>
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>