收单-批量支付-批量支付文件规则设计

1. 文件名

建议跟批量支付的批次流水保持一致,考虑防重和文件更新的问题。批次流水也需要有对应的规则,比如固定24位,14位日期 + 10位序列号,纯数据+字母等等。

2. 文件大小

明确文件大小,防止恶意大文件上传。文件大小可以根据,文件内订单明细数量的上限,例如规定明细不超过5000条。测试时按照5000条,所有字段都达到规定的最大长度,生成一个文件,看下文件大小,基本就可以了。

3. 文件编码

一般建议是UTF-8

4. 文件内容格式

大致上分三种

4.1 基于分隔符

通过一些间隔符来分隔字段,例如通过短号(,)或者双竖线(||)
例如:

489454747578883060,20210529chNk4NEw0w2SyBeN,10000100,5000,1500000000,20210529chNk4NEw0w2SyBeN补充信息,
2021052909572810010001,623058******1044,周强,390b87f83fee82079ed2e0dc400906b0,300000,2021052909572810010001
2021052909572810010002,623058******1044,周强,390b87f83fee82079ed2e0dc400906b0,300000,2021052909572810010002
2021052909572810010003,623058******1044,周强,390b87f83fee82079ed2e0dc400906b0,300000,2021052909572810010003
2021052909572810010004,623058******1044,周强,390b87f83fee82079ed2e0dc400906b0,300000,2021052909572810010004

优点:便于阅读,也方便转换成excel文件

4.2 基于固定位数

一种是通过固定位数来分隔字段
例如:

S56 88022900    00049993    190624 0906112203 622609******0048    000000476800 4899 07 201509061122031906248 01 10078087                         01                   D000000002861 C000000473939 0001                 01    000201                                                                  802310048993424   000000000000000                                   000000000000 C000000473939 01080209                                   000000000000  000000000000  00000000000    7                                                                                                                                    
S56 88022900    00049993    193120 0906114034 622609******0048    000000083800 4899 07 201509061140341931208 01 10078088                         01                   D000000000503 C000000083297 0001                 01    000201                                                                  802310048993424   000000000000000                                   000000000000 C000000083297 01080209                                   000000000000  000000000000  00000000000    7                                                                                                                                    
S56 88022900    00049993    412544 0906114251 622609******0048    000000009900 4899 07 201509061142514125448 01 10078089                         01                   D000000000059 C000000009841 0001                 01    000201                                                                  802310048993424   000000000000000                                   000000000000 C000000009841 01080209                                   000000000000  000000000000  00000000000    7                                                                                                                                    
S56 88022900    00049993    403552 0906110059 622609******0048    000000010000 4899 07 201509061100594035528 01 10078085 

优点:因为位数固定,可以考虑通过指针直接获取对应的数据内容,不需要完全解析到内存中。性能优化上比较好处理

4.2 基于特殊文件格式

例如:xml格式

<?xml version="1.0" encoding="utf-8" ?>
<root>
    <order>
        <orderNo>2021052909572810010001</orderNo>
        <amount>300000</amount>
        <accNo>623058******1044</accNo>
    </order>
    <order>
        <orderNo>2021052909572810010002</orderNo>
        <amount>30001</amount>
        <accNo>623058******1044</accNo>
    </order>
</root>

优点:便于阅读,结构性强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值