支付流程注意事项
来源:互联网 发布:php开发短信平台 编辑:程序博客网 时间:2024/04/29 00:22
- 参数
参数可以写注解校验,可以用切面校验。
参数校验包括长度, 取值范围,重复提交(订单号重复,批次号重复等)。
举个栗子:
收款账号类型个人还是对公,交易金额限额,汇路,同行跨行,付款账号是否存在,批次信息错误,给出错误项,下标,非空校验,正整数校验,时间类型开始时间,长度,正则,整这些行了,^_^ - 异常
先说这个问题吧,异常,一定要捕获,一定要捕获,一定要捕获!!!
至少报错了能给下游返回,能给出错误原因就比较好了,能总结出错误代码(比如成功100000,系统错误199999)就更好了,能发邮件就最好了。
好了,不扯淡,以上事实上都需要有,是一个渐进的过程吧,上线时间紧张的话,至少保证第一个。
异常要打日志, 异常要打日志, 异常要打日志!!!
最痛苦的事情就是,生产出了事故,没有日志,是自己写的代码还好,不怨别人,如果你写了代码,离职了,出事故了,人一追日志,没有日志,没有,没。。
定义异常:
异常ID,用于表示某一异常实例,每一个异常实例都有一个唯一的异常ID。
异常信息,包含必要的上下文业务信息,用于打印日志。
具体异常码,即异常码code的后3位,由各具体异常实例化时自己定义。
异常码描述。 异步
拿批量付款举例吧,批量的交易,我们一般做异步处理,也就是说入库之后我们就给下游返回已处理,之后我们起线程和上游交互。
和下游交互过程如下:
a.参数转换,入参转换为批次信息,明细信息;
b.校验相关必要信息, 入库;
和上游交互过程如下:
a.转换报文,包括一些商户号,账号,用户名,密码,注意编码格式,钱的单位&格式(分,元有无逗号之类的);
b.发送报文;
c.处理返回结果:
<1>判断是不是终态,如果是终态通知下游;
<2>更新数据库。返回dto
4个参数必不可少,返回码,返回信息,上游返回码,上游返回信息。
返回码对应系统返回状态,上游返回码对应上游返回状态,上游返回状态要递归,举个栗子:最外层报文成功了,找下一个状态,下一个状态失败了,这个状态返回;这个状态成功了,找下一个状态,好像在说绕口令,总之一句话,如果有失败的状态返回第一个失败的状态(最外层);如果没有失败的状态,返回最后一个成功状态(最里层)。
ps.
对象转xml我们用的XStream,发送报文我们用的HttpClient.
XStream maven依赖
<dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.3</version> </dependency>
HttpClient maven依赖
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.5</version></dependency>
分2元
BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100)).toString()
0 0
- 支付流程注意事项
- 支付宝开发流程及注意事项
- 微信支付开发流程及注意事项
- iOS开发支付宝集成流程与注意事项
- iOS开发中微信支付的集成流程与注意事项
- php 微信小程序支付流程(注意事项),小程序支付回调
- 支付流程
- 支付流程
- 支付流程
- 支付,流程
- 支付流程
- 支付流程
- 支付流程
- 支付宝支付流程
- 支付宝支付流程
- 支付宝支付流程
- 支付宝支付流程
- 支付宝支付流程
- spring boot @EnableAutoConfiguration 导致CNF问题
- mysql utf8mb4_unicode_ci utf8mb4_general_ci
- Java开发常见英文
- Servlet和JavaScript界面弹出提示框。
- iOS开发技巧大全
- 支付流程注意事项
- android中textView文本过长打省略号
- 服务器判断ua-302跳转方法--2016年4月14日
- 平常要注意的基础知识(转载)
- log4j自带的两个类MDC和NDC作用以及用途
- 前端开发涉及的知识点
- ELK 搭建
- UEFI\BIOS 开坑, 立flag
- Android 小項目之--RadionButton 和RadionGroup應用