资金入境 资金入境明细提交
测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/fundImport/submitFundImport |
请求地址 | https://cbptrx.helipay.com/cbtrx/rest/fundImport/submitFundImport |
提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 |
订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 商户唯一 |
产品编码 | productCode | String(50) | 是 | FUNDIMPORT | FUNDIMPORT |
交易签名序号 | tradeList[index].index | int | 是 | 明细交易签名排序 | |
交易类型 | tradeList[index].fundRecordNo | String(50) | 是 | 交易类型 | |
交易编码 | tradeList[index].tradeDirection | String(30) | 是 | 交易编码 | |
支付方式 | tradeList[index].business | String(30) | 是 | 支付方式 | |
交易人 | tradeList[index].traderName | String(50) | 是 | 交易人 | |
证件号 | tradeList[index].traderID | String(40) | 是 | 证件号 | |
商户订单号 | tradeList[index].orderNo | String(50) | 是 | 商户订单号,商户唯一 | |
交易金额 | tradeList[index].tradeAmount | BigDecimal | 是 | 交易金额 | |
交易标的 | tradeList[index].tradeObject | String(50) | 是 | 交易标的 | |
标的数量 | tradeList[index].tradeObjectCount | int | 是 | 标的数量 | |
交易日期 | tradeList[index].tradeDate | String(50) | 是 | yyyy-MM-dd | 交易日期 |
发卡行 | tradeList[index].bankName | String(50) | 是 | 发卡行 | |
银行账号 | tradeList[index].bankAccountNumber | String(50) | 是 | 银行账号 | |
发货方式 | tradeList[index].shipType | String(50) | 否 | 发货方式 | |
快递公司 | tradeList[index].shipCompany | String(50) | 否 | 快递公司 | |
快递单号 | tradeList[index].shipNumber | String(50) | 否 | 快递单号 | |
交易附言 | tradeList[index].tradeDesc | String(50) | 是 | 交易附言 | |
最终收/付款人户名 | tradeList[index].finalCustomerName | String(50) | 是 | 最终收/付款人户名 | |
最终收/付款人账号 | tradeList[index].finalCustomerNo | String(50) | 是 | 最终收/付款人账号 | |
最终收/付款人常住国家 | tradeList[index].country | String(50) | 是 | 最终收/付款人常住国家 | |
备用1 | tradeList[index].backUp1 | String(50) | 否 | 备用1 | |
备用2 | tradeList[index].backUp2 | String(50) | 否 | 备用1 | |
备用3 | tradeList[index].backUp3 | String(50) | 否 | 备用3 | |
备用4 | tradeList[index].backUp4 | String(50) | 否 | 备用4 | |
备用5 | tradeList[index].backUp5 | String(50) | 否 | 备用5 | |
备用6 | tradeList[index].backUp6 | String(50) | 否 | 备用6 | |
备用7 | tradeList[index].backUp7 | String(50) | 否 | 备用7 | |
备用8 | tradeList[index].backUp8 | String(50) | 否 | 备用8 | |
备用9 | tradeList[index].backUp9 | String(50) | 否 | 备用9 | |
备用10 | tradeList[index].backUp10 | String(50) | 否 | 备用10 | |
出款签名序号 | transferList[index].index | int | 是 | 出款签名序号 | |
出款订单号 | transferList[index].orderNo | String(50) | 是 | 出款订单号 | |
批次号 | transferList[index].batchNo | String(50) | 是 | 批次号 | |
银行编码 | transferList[index].bankCode | String(50) | 是 | 农行 ABC 工行 ICBC 等 | 银行编码 |
联行号 | transferList[index].bankSymbol | String(50) | 否 | 开户具体支行的联行号 | |
账户名 | transferList[index].bankAccountName | String(50) | 是 | 银行账号账户名 | |
账号 | transferList[index].bankAccountNumber | String(50) | 是 | 银行账号 | |
出款金额 | transferList[index].amount | BigDecimal | 是 | 出款金额 | |
出款类型 | transferList[index].business | String(50) | 是 | B2B,B2C | 出款类型 |
备注1 | transferList[index].remarksOne | String(50) | 否 | 备注 | |
备注2 | transferList[index].remarksTwo | String(50) | 否 | 备注 |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
产品编码 | productCode | String(20) | 是 | 实际业务对应的产品编码 | |
商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 |
商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
平台商户编号 | platMerchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的平台商户编号 |
平台流水号 | serialNumber | String(32) | 否 | 201702241400010002 | 合利宝-跨境系统生成的唯一交易流水号 |
响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
交易签名序号 | tradeList[index].index | int | 是 | 明细交易签名排序 | |
交易类型 | tradeList[index].fundRecordNo | String(50) | 交易类型 | ||
交易编码 | tradeList[index].tradeDirection | String(30) | 交易编码 | ||
支付方式 | tradeList[index].business | String(30) | 支付方式 | ||
交易人 | tradeList[index].traderName | String(50) | 交易人 | ||
证件号 | tradeList[index].traderID | String(40) | 证件号 | ||
商户订单号 | tradeList[index].orderNo | String(50) | 商户订单号,商户唯一 | ||
交易金额 | tradeList[index].tradeAmount | BigDecimal | 交易金额 | ||
交易标的 | tradeList[index].tradeObject | String(50) | 交易标的 | ||
标的数量 | tradeList[index].tradeObjectCount | int | 标的数量 | ||
交易日期 | tradeList[index].tradeDate | String(50) | yyyy-MM-dd | 交易日期 | |
发卡行 | tradeList[index].bankName | String(50) | 发卡行 | ||
银行账号 | tradeList[index].bankAccountNumber | String(50) | 银行账号 | ||
发货方式 | tradeList[index].shipType | String(50) | 发货方式 | ||
快递公司 | tradeList[index].shipCompany | String(50) | 快递公司 | ||
快递单号 | tradeList[index].shipNumber | String(50) | 快递单号 | ||
交易附言 | tradeList[index].tradeDesc | String(50) | 交易附言 | ||
最终收/付款人户名 | tradeList[index].finalCustomerName | String(50) | 最终收/付款人户名 | ||
最终收/付款人账号 | tradeList[index].finalCustomerNo | String(50) | 最终收/付款人账号 | ||
最终收/付款人常住国家 | tradeList[index].country | String(50) | 最终收/付款人常住国家 | ||
备用1 | tradeList[index].backUp1 | String(50) | 否 | 备用1 | |
备用2 | tradeList[index].backUp2 | String(50) | 否 | 备用1 | |
备用3 | tradeList[index].backUp3 | String(50) | 否 | 备用3 | |
备用4 | tradeList[index].backUp4 | String(50) | 否 | 备用4 | |
备用5 | tradeList[index].backUp5 | String(50) | 否 | 备用5 | |
备用6 | tradeList[index].backUp6 | String(50) | 否 | 备用6 | |
备用7 | tradeList[index].backUp7 | String(50) | 否 | 备用7 | |
备用8 | tradeList[index].backUp8 | String(50) | 否 | 备用8 | |
备用9 | tradeList[index].backUp9 | String(50) | 否 | 备用9 | |
备用10 | tradeList[index].backUp10 | String(50) | 否 | 备用10 | |
明细错误描述 | tradeList[index].errorMsg | String(50) | 明细错误描述 | ||
出款签名序号 | transferList[index].index | int | 是 | 出款签名序号 | |
出款订单号 | transferList[index].orderNo | String(50) | 是 | 出款订单号 | |
批次号 | transferList[index].batchNo | String(50) | 是 | 批次号 | |
银行编码 | transferList[index].bankCode | String(50) | 是 | 农行 ABC 工行 ICBC 等 | 银行编码 |
联行号 | transferList[index].bankSymbol | String(50) | 否 | 开户具体支行的联行号 | |
账户名 | transferList[index].bankAccountName | String(50) | 是 | 银行账号账户名 | |
账号 | transferList[index].bankAccountNumber | String(50) | 是 | 银行账号 | |
出款金额 | transferList[index].amount | BigDecimal | 是 | 出款金额 | |
出款类型 | transferList[index].business | String(50) | 是 | B2B,B2C | 出款类型 |
备注1 | transferList[index].remarksOne | String(50) | 否 | 备注 | |
备注2 | transferList[index].remarksTwo | String(50) | 否 | 备注 | |
错误信息 | transferList[index].errorMsg | String(50) | 否 | 错误信息 |
public ModelAndView submitFundImport(@ModelAttribute @Valid FundImportSummaryInfosRequestDTO fundImportSummaryInfosRequestDTO, BindingResult result) { ModelAndView mav = new ModelAndView(); if (result.hasErrors()) { throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage()); } HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("submitFundImportUrl"), JSONObject.toJSONString(encodeAndSign(fundImportSummaryInfosRequestDTO, fundImportSummaryInfosRequestDTO.getProductCode(), fundImportSummaryInfosRequestDTO.getPlatMerchantNo(), fundImportSummaryInfosRequestDTO.getMerchantNo())), HeliRequest.class); FundImportSummaryInfosResponseDTO response = decode(heliRequest, FundImportSummaryInfosResponseDTO.class, fundImportSummaryInfosRequestDTO.getProductCode(), fundImportSummaryInfosRequestDTO.getPlatMerchantNo(), fundImportSummaryInfosRequestDTO.getMerchantNo()); if (!CbDemoConstants.SUCCESS_CODE.equals(response.getErrorCode())) { throw new CommonSystemException(response.getErrorCode(), response.getErrorMessage()); } mav.setViewName("fund/submitFundImportResult"); mav.addObject("responseForm", response); return mav; }
错误码 | 错误码描述 | 解决方案 |
---|---|---|
资金入境 汇总订单查询
测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/fundImport/summaryOrderQuery |
请求地址 | https://cbptrx.helipay.com/cbtrx/rest/fundImport/summaryOrderQuery |
提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 |
订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 商户唯一 |
产品编码 | productCode | String(50) | 是 | FUNDIMPORT | FUNDIMPORT |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
产品编码 | productCode | String(20) | 是 | 实际业务对应的产品编码 | |
商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 |
商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
平台商户编号 | platMerchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的平台商户编号 |
平台流水号 | serialNumber | String(32) | 否 | 201702241400010002 | 合利宝-跨境系统生成的唯一交易流水号 |
响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
币种 | currency | String(20) | 是 | 2018-04-01 12:00:00 | 币种 |
创建时间 | createDate | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
运营审核时间 | operatorReviewDate | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
银行审核时间 | bankReviewDate | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
水单审核时间 | bankReceiptDate | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
入账审核时间 | fundsReviewDate | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
出款审核时间 | withDrawReviewDate | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
上传文件名 | fundImportFile | String(50) | 是 | 上传文件名 | |
水单名 | bankReceiptFile | String(50) | 是 | 水单名 | |
总金额 | totalAmount | BigDecimal | 是 | ||
总交易笔数 | totalFundImport | int | 是 | 交易笔数 | |
手续费 | summaryFee | BigDecimal | 是 | ||
处理状态 | summaryStatus | String(30) | 是 | WAIT_OPERATOR_REVIEW:"待运营审核" OPERATOR_REFUSE:"运营审核拒绝" WAIT_BANK_REVIEW:"待银行审核" BANK_REFUSE:"银行拒绝" BANK_REVIEW_SUCCESS:"银行审核通过" WAIT_RECEIPT_REVIEW:"上传水单待审核" FUNDS_IMPORT_REVICE:"资金入账审核" BATCH_TRANSFER_REVIEW:"订单处理中" BATCH_TRANSFER_SUCCESS:"订单完成" FUNDS_IMPORT_SUCCESS:"入账审核通过" FUNDS_IMPORT_COMPLETE:"资金入账完成" FUNDS_IMPORT_FAIL:"资金入账失败" | |
系统处理信息 | sysDealInfo | String(50) | 是 |
public ModelAndView summaryOrderQuery(@ModelAttribute @Valid BaseDTO dto, BindingResult result) { ModelAndView mav = new ModelAndView(); if (result.hasErrors()) { throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage()); } HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("summaryOrderQueryUrl"), JSONObject.toJSONString(encodeAndSign(dto, dto.getProductCode(), dto.getPlatMerchantNo(), dto.getMerchantNo())), HeliRequest.class); FundImportSummaryOrderQueryResponseDTO response = decode(heliRequest, FundImportSummaryOrderQueryResponseDTO.class, dto.getProductCode(), dto.getPlatMerchantNo(), dto.getMerchantNo()); if (!CbDemoConstants.SUCCESS_CODE.equals(response.getErrorCode())) { throw new CommonSystemException(response.getErrorCode(), response.getErrorMessage()); } mav.setViewName("fund/summaryOrderQueryResult"); mav.addObject("responseForm", response); return mav; }
错误码 | 错误码描述 | 解决方案 |
---|---|---|
资金入境 出款明细查询
测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/fundImport/fundImportTransferQuery |
请求地址 | https://cbptrx.helipay.com/cbtrx/rest/fundImport/fundImportTransferQuery |
提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 |
订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 商户唯一 |
产品编码 | productCode | String(50) | 是 | FITRANSFER | FITRANSFER |
出款状态 | fundTransferStatus | String(60) | 是 | OPERATOR_TRANSFER_REVIEW;WAIT_MERCHANT_TRANSFER_REVIE(多状态可使用";"分割) | OPERATOR_TRANSFER_REVIEW:资金下发运营审核 OPERATOR_TRANSFER_REFUSE:资金下发运营拒绝 WAIT_MERCHANT_TRANSFER_REVIE:资金下发商户审核 TRANSFER_REVIEW_SUCCESS:资金下发审核通过 TRANSFER_REVIEW_REFUSE:资金下发商户拒绝 TRANSFER_DEALING:资金下发出款中 TRANSFER_FAILED:资金下发出款失败 TRANSFER_REFUNDED:资金下发出款退回 TRANSFER_SUCCESS:资金下发出款成功 |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
产品编码 | productCode | String(20) | 是 | 实际业务对应的产品编码 | |
商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 |
商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
平台商户编号 | platMerchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的平台商户编号 |
平台流水号 | serialNumber | String(32) | 否 | 201702241400010002 | 合利宝-跨境系统生成的唯一交易流水号 |
响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
出款签名序号 | transferList[index].index | int | 是 | 出款签名序号 | |
出款订单号 | transferList[index].orderNo | String(50) | 是 | 出款订单号 | |
批次号 | transferList[index].batchNo | String(50) | 是 | 批次号 | |
银行编码 | transferList[index].bankCode | String(50) | 是 | 农行 ABC 工行 ICBC 等 | 银行编码 |
联行号 | transferList[index].bankSymbol | String(50) | 是 | 开户具体支行的联行号 | |
账户名 | transferList[index].bankAccountName | String(50) | 是 | 银行账号账户名 | |
账号 | transferList[index].bankAccountNumber | String(50) | 是 | 银行账号 | |
出款金额 | transferList[index].amount | BigDecimal | 是 | 出款金额 | |
出款类型 | transferList[index].business | String(50) | 是 | B2B,B2C | 出款类型 |
出款状态 | transferList[index].fundTransferStatus | String(60) | 是 | 出款明细状态 | |
备注1 | transferList[index].remarksOne | String(50) | 否 | 备注 | |
备注2 | transferList[index].remarksTwo | String(50) | 否 | 备注 | |
错误信息 | transferList[index].errorMsg | String(50) | 否 | 错误信息 |
public ModelAndView fundImportTransferQuery(@ModelAttribute @Valid FundImportTransferQueryRequestDTO dto, BindingResult result) { ModelAndView mav = new ModelAndView(); if (result.hasErrors()) { throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage()); } HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("fundImportTransferQueryUrl"), JSONObject.toJSONString(encodeAndSign(dto, dto.getProductCode(), dto.getPlatMerchantNo(), dto.getMerchantNo())), HeliRequest.class); FundImportTransferQueryResponseDTO response = decode(heliRequest, FundImportTransferQueryResponseDTO.class, dto.getProductCode(), dto.getPlatMerchantNo(), dto.getMerchantNo()); if (!CbDemoConstants.SUCCESS_CODE.equals(response.getErrorCode())) { throw new CommonSystemException(response.getErrorCode(), response.getErrorMessage()); } mav.setViewName("fund/fundImportTransferQueryResult"); mav.addObject("responseForm", response); return mav; }
错误码 | 错误码描述 | 解决方案 |
---|---|---|
资金入境 出款明细审核
测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/fundImport/fundImportTransferConfirm |
请求地址 | https://cbptrx.helipay.com/cbtrx/rest/fundImport/fundImportTransferConfirm |
提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 |
订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 出款明细订单号 |
产品编码 | productCode | String(50) | 是 | FITRANSFER | FITRANSFER |
名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|---|
产品编码 | productCode | String(20) | 是 | 实际业务对应的产品编码 | |
商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 |
商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
平台商户编号 | platMerchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的平台商户编号 |
平台流水号 | serialNumber | String(32) | 否 | 201702241400010002 | 合利宝-跨境系统生成的唯一交易流水号 |
响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
public ModelAndView fundImportTransferConfirm(@ModelAttribute @Valid BaseDTO dto, BindingResult result) { ModelAndView mav = new ModelAndView(); if (result.hasErrors()) { throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage()); } HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("fundImportTransferConfirmUrl"), JSONObject.toJSONString(encodeAndSign(dto, dto.getProductCode(), dto.getPlatMerchantNo(), dto.getMerchantNo())), HeliRequest.class); ResponseBase response = decode(heliRequest, ResponseBase.class, dto.getProductCode(), dto.getPlatMerchantNo(), dto.getMerchantNo()); if (!CbDemoConstants.SUCCESS_CODE.equals(response.getErrorCode())) { throw new CommonSystemException(response.getErrorCode(), response.getErrorMessage()); } mav.setViewName("fund/fundImportTransferConfirmResult"); mav.addObject("responseForm", response); return mav; }
错误码 | 错误码描述 | 解决方案 |
---|---|---|