代收-批量代收

拉卡拉好拓客 14小时前 19:55:45 4

批量代收流程:

调用地址

使用HTTP协议,POST方式提交。

URL(测试环境):

URL(测试环境外网):https://test.wsmsd.cn/sit/api/v3/ipsdk/trans/batchCollection

URL(生产环境):https://s2.lakala.com/api/v3/ipsdk/trans/batchCollection


请求报文

字段名中文名称是否必填类型说明
merchant_no商户号MString(32)拉卡拉分配的商户号
term_no终端号MString(32)拉卡拉分配的业务终端号
batch_no批次号MString(4)批量交易时填写,当天唯一,0001-9999
total_qty总笔数MString(6)批量代收总笔数(最大1000)
total_amt总金额MString(12)批量代收总金额
file_name文件名称MString(100)文件名及文件路径,比如 /OP00000003/20220411/DK_8223010594303A2_0001_I.txt
digest文件摘要MString(256)文件的SM3摘要






响应报文

字段名中文名称是否必填类型说明
txn_time发送时间MString(14)发送时间
batch_no批次号MString(4)批量交易时填写,当天唯一,0001-9999
total_qty总笔数MString(6)批量代收总笔数(最大1000)
total_amt总金额MString(12)批量代收总金额


文件名及文件路径

  1. 文件名规则:DK_商户号_ 日期(YYYYMMDD) _批次号(0001-9999) _文件类型(请求: I ,结果: O,拒绝: R).txt

  2. 文件路径规则:/APPID/YYYYMMDD/文件名


批量请求文件格式

请求文件头:总金额|总笔数|请求方保留域1|请求方保留域2请求文件体:商户号|外部请求流水号|交易币种|交易金额|协议号|附言|请求方保留域1|请求方保留域2merchantNo|outTradeNo|currencyCode|txnAmt|lklagreno|postscript|reqReserved1|reqReserved28223010594303A2|1649399896|156|500|202204081105000101A2000000002003|附言|保留域1|保留域2例如:600|2||
merchantNo|outTradeNo|currencyCode|txnAmt|lklagreno|postscript|reqReserved1|reqReserved28223010594303A2|202204100001000002|156|100|202204081105000101A2000000002003|附言||
8223010594303A2|202204100001000003|156|500|202204081105000101A2000000002003|附言||复制


批量返回文件格式-成功

返回文件头:


批量返回文件格式-拒绝

拒绝文件体(无文件头):


文件摘要示例

Java :


复制


static{
   try{
       Security.addProvider(new BouncyCastleProvider());
   }catch(Exception e){
       e.printStackTrace();
   }
}

   public static String getDigestSM3(File file) throws Exception {
       InputStream fis = null;
       try {
           fis = new FileInputStream(file);
           byte buffer[] = new byte[1024];
           MessageDigest md = MessageDigest.getInstance("SM3");
           for (int numRead = 0; (numRead = fis.read(buffer)) > 0;) {
               md.update(buffer, 0, numRead);
           }
           return Hex.toHexString(md.digest());
       } finally {
           if (fis != null)
               fis.close();
       }
   }


The End