延迟结算

文档说明

阅读对象

1、本规范的使用对象为服务商的技术开发人员、产品及业务。
2、开发人员应该对post提交、json 格式、http/https传输、非对称秘钥和数据签名等有一定认识。

修订记录

2019-05-06:新增

相关术语

延迟入账:商户当日交易金额不进行入账结算,直到商户调用交易确认接口后再按照已约定的T1/D1进行结算。
分账串:包含订单金额分给其他商户详情的json串。

接口规则

协议规则

1、接口调用方式为http post。
2、数据传输使用json格式,编码使用utf-8,请求时存放json串的参数名为: jsonData,接口传递中文或含有特殊字符的参数时应URL Encoding,接口接收返回参数时应做URL Decoding。
3、如果json请求串中值为null,则json串格式应为{“test”: “”}。
4、接口的除merPriv字段之外,其他所有字段不应该包含特殊字符,如:“&”、”?”和”‘’”等。
5、后台通知商户返回应答参数的规则:为了表示商户交易系统已经收到交易应答,商户必须在应答接收页面输出一段特殊的字符串,组成规则为:固定字符串RECV_ORD_ID_加上交易应答中某一指定字段,指定字段请见具体接口商户应答参数。

安全规范

1、为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进行签名校验。
2、详情请参见接口参数checkValue参数说明。
3、checkValue生成规则:目前仅支持CFCA签名方式,checkValue生成方法请参考CFCA签名。
简单示例:
HashMap<String , String> jsonDataMap = new HashMap<String , String>();
jsonDataMap.put("termOrdId" , "20180820020626985855");
jsonDataMap.put("memberId" , memberId);
jsonDataMap.put("ordAmt" , ordAmt);
jsonDataMap.put("authCode" , "134755413751742262");//二维码
jsonDataMap.put("goodsDesc" , URLEncoder.encode(goodsDesc , Constant.CHARSET_UTF8));
jsonDataMap.put("merPriv" , "{\"Ic\":\"2253425259\",\"merNoticeUrl\":\"http://172.31.13.182:38087/site/testHttp/testB/\",\"callType\":\"04\"}");
jsonDataMap.put("apiVersion" , apiVersion);

String jsonData = JSON.toJSONString(jsonDataMap);

// CFCA 签名
String checkValue = CFCASignature.signature("100001.pfx","888888", jsonData, "UTF-8").getSign();

延迟结算

场景介绍

支持在交易确认时带入分账串,可将确认金额分给其他汇付商户。交易确认金额需<=交易金额,一笔订单允许多次交易确认。

功能描述

商户开通延迟入账后,交易金额不会进行结算,直到商户调用交易确认接口后再按照已约定的T1/D1进行结算。

业务流程

1、调用企业基本信息入驻接口进件/个人基本信息入驻接口进件时可在“结算业务开通”选项中选择开通延迟入账。
2、进件完成,商户进行交易。
3、需进行交易确认时,调用交易确认接口。
4、商户T1/D1等待到账。

API列表

商户权限控制接口

描述

权限开通/关闭 此接口可以开通和关闭延迟入账

发布路径

https://nspos.chinapnr.com/nsposmweb/webB1466

输入参数

输入参数

参数代码

参数名称

数据类型

是否必填

参数说明

jsonData

json数据

json

必填

json数据

checkValue

加签密文

String

必填

加密方式:CFCA

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

apiVersion

接口版本号

String(7)

必填

支持版本号2.0.0.1

agentId

代理商会员号

String(18)

必填

汇付分配的代理商会员号

memberId

商户号

String(18)

必填

汇付分配的商户号

busiCode

权限类型

String(3)

必填

105-延迟入账

busiStat

操作状态

String(2)

必填

0-关闭 1-开通

输出参数

输出参数

参数代码

参数名称

数据类型

是否必填

参数说明

输出参数

respCode

返回码

String(6)

必填

000000表示成功
000099 处理中
000199 其他错误
000001 商户不存在或状态异常
000003 不支持的业务
000203 原交易不存在
000256 原交易已撤销
000258 原交易未成功
000245 分账错误
000254 分账串格式错误
000268 请联系客服

respDesc

返回文字说明

String(256)

非必填

返回文字说明

checkValue

加签密文

String

必填

cfca加签密文

jsonData

json数据

json

必填

json数据

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

memberId

商户号

String(18)

必填

汇付分配的商户号

dateTime

时间

String(14)

必填

yyyyMMddhhmmss

busiCode

权限类型

String(3)

必填

105-延迟入账

busiStat

操作状态

String(2)

必填

0-关闭 1-开通

交易确认接口

描述

延迟分账,手续费外扣的情况下,交易确认后,全额和部分退都不支持;交易确认前,全额支持,部分不支持

发布路径

输入参数

输入参数

参数代码

参数名称

数据类型

是否必填

参数说明

jsonData

json数据

json

必填

json数据

checkValue

加签密文

String

必填

加密方式:CFCA

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

apiVersion

接口版本号

String(7)

必填

支持版本号3.0.0.1

termOrdId

请求流水号

String(120)

必填

由接入方生成且保证唯一,查询时使用

bagentId

渠道商会员号

String(18)

必填

汇付分配的渠道商会员号

memberId

商户号

String(18)

必填

汇付分配的商户号

orderId

平台订单号

String(18)

必填

确认云上扫码交易请输入ordid,确认云下
银行卡交易请输入cashordid。汇付平台订
单号,示例:20181212E10000223557

accSplitBunch

分账串

JSON

非必填

分账串中的金额之和≤该笔订单待确认的
金额。若有值,则汇付将根据输入的分账
信息对各方进行资金入账,入账后才可结算
或者申请提现,具体字段见下方详解
{
“divCusCount”: 1,
“feeMemberId”: “030000016002965161”,
“acctInfos”: [{
“divAmt”: “2.90”,
“memberId”: “030000016002965161”
}]
}

remark

说明

String(127)

非必填

最大长度127

isSettled

是否立即入账

String(2)

非必填

1 – 立即入账
为空或其他 - 不立即入账
注:如选择立即入账,则分账接收方会
在结算周期内收到分账资金

feeMemberId

手续费承担方

String(18)

非必填

该字段仅可作为标记记录手续费承担方
可确认资金为交易额减去交易手续费后的金额
注:如多次交易确认
只取第一次不为空的数据。

feeSplitType

手续费承担方式

String(1)

非必填

0或为空 – 一方承担
1 – 平均分摊

accSplitBunch

参数代码

参数名称

数据类型

是否必填

参数说明

acctInfos

分账信息

JSONArray

必填

divCusCount

分账方数量

String(2)

必填

分账方数量

acctInfos

参数代码

参数名称

数据类型

是否必填

参数说明

memberId

商户Id

String(18)

必填

汇付分配的商户号

divAmt

分账金额

String(2)

必填

分账金额 如:0.01

输出参数

输出参数

参数代码

参数名称

数据类型

是否必填

参数说明

输出参数

respCode

返回码

String(6)

必填

000000表示成功
000099 处理中
000199 其他错误
000001 商户不存在或状态异常
000003 不支持的业务
000203 原交易不存在
000256 原交易已撤销
000258 原交易未成功
000245 分账错误
000254 分账串格式错误
000268 请联系客服

respDesc

返回文字说明

String(256)

非必填

返回文字说明

checkValue

加签密文

String

必填

加签密文

acctResultBunch

Json字符串

String

必填

分账处理结果明细列表

acctResul
tBunch

参数代码

参数名称

数据类型

是否必填

参数说明

memberId

商户id

String(18)

必填

汇付分配的商户号

divAmt

分账金额

String(16)

必填

如:0.01

divStat

分账状态

String(1)

必填

S-成功,F-失败

交易确认信息查询接口

描述

查询交易确认结果

发布路径

输入参数

输入参数

参数代码

参数名称

数据类型

是否必填

参数说明

jsonData

json数据

json

必填

json数据

checkValue

加签密文

String

必填

加密方式:CFCA

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

apiVersion

接口版本号

String(7)

必填

必填,开始使用CFCA的API版本号为2.0.0.1

termOrdId

请求流水号

String(120)

必填

交易确认时的请求流水号,传入时只返回本
次确认信息,不传入返回本订单所有记录。

bagentId

渠道商会员号

String(18)

必填

汇付分配的渠道商会员号

memberId

商户号

String(18)

必填

汇付分配的商户号

orderId

平台订单号

String(18)

必填

汇付平台订单号,示例:20181212E10000223557

输出参数

输出参数

参数代码

参数名称

数据类型

是否必填

参数说明

输出参数

respCode

返回码

String(6)

必填

000000表示成功
000099 处理中
000199 其他错误
000001 商户不存在或状态异常
000003 不支持的业务
000203 原交易不存在
000256 原交易已撤销
000258 原交易未成功
000245 分账错误
000254 分账串格式错误
000268 请联系客服

respDesc

返回文字说明

String(256)

非必填

返回文字说明

memberId

商户号

String(18)

必填

汇付分配的商户号

orderId

平台订单号

String(18)

必填

汇付平台订单号,示例:20181212E10000223557

termOrdId

请求流水号

String(120)

必填

交易确认时的请求流水号,传入时只返回本
次确认信息,不传入返回本订单所有记录。

ordAmt

交易金额

String(14)

必填

单位元,需保留小数点后两位 如: 1.00

FeeAmt

交易手续费金额

String(14)

必填

单位元,需保留小数点后两位 如: 1.00

feeSplitType

手续费承担模式

String(1)

非必填

0 – 一方承担 1 – 平均分摊

feeMemberId

交易手续费
外扣账户

String(18)

非必填

代理商会员号或渠道商会员号

acctResultBunch

分账明细

JSON

必填

分账处理结果明细列表

acctResul
tBunch

参数代码

参数名称

数据类型

是否必填

参数说明

memberId

商户id

String(18)

必填

汇付分配的商户号

acctType

分账方账户类型

String(2)

条件必填

1-结算户 2-延迟户

acctDate

账务日期

String(8)

非必填

divAmt

分账金额

String(16)

必填

如:0.01

divFeeAmt

分账手续费金额

String(14)

必填

单位元,需保留小数点后两位,例如: 1.00

divStat

分账状态

String(1)

必填

S-成功,F-失败

acctRespDesc

PA返回描述

String(128)

非必填

错误码

错误码

常见错误码描述,如还未解决问题请及时联系专业技术支持人员。
错误码 描述                               错误码 描述                                       错误码 描述
000000 操作成功                            000098 请求参数非法                               000267 接口获取状态与订单状态不符
000093 请求参数不规范                       000097 数据库异常                                000268 二维码反向交易超时
000094 重复交易                            000234 订单生成失败                               000272 订单查询,未查询到记录
000095 验签失败                            000236 PA入账失败                                 000273 支付通道类型不为微信或者支付宝
000100 业务系统已关闭                       000238 对象属性复制异常                           000277 无此交易类型
000107 业务系统不存在                       000240 冻结账务对象不存在,分账串解析为空           000278 无此交易记录
000202 订单已存在                          000241 订单被风控拒绝,风控未通过                   000279 退货失败,该笔订单非退货交易
000203 原订单不存在                        000242 风控系统调用异常                            000197 控台系统异常,网络繁忙
000204 撤销金额与原订单金额不一致           000243 撤销或退货失败,PA冻结超时                   000281 交易处理中
000205 撤销日期与原订单日期不一致           000244 不存在该账务类型                             000099 网络繁忙,请稍后再试
000206 撤销失败,账务状态异常              000245 分账串异常                                   000219 订单校验失败
000207 撤销失败,PA冻结失败                000250 退货失败,PA退款失败                          000220 签名上送失败,订单未完成支付
000208 撤销失败,通道失败                  000256 退货失败,PA冻结超时                          000221 签名上传失败,已上传
000209 撤销失败,原订单未完成              000255 确认交易失败,账务状态异常                      000213 退货失败,超出退货期限
000210 退货失败,原订单未完成              000257 确认交易失败,原订单未成功                     000214 退货失败,PA冻结失败
000211 退货失败,账务状态异常              000258 确认交易失败,确认金额与原交易金额不一致         000215 退货失败,通道失败
000212 退货失败,超出可退货金额            000260 消费撤销发通道扣款超时                         000261 消费退货发通道扣款超时
000199 二维码交易处理中                    000198 二维码交易失败

SDK与DEMO

说明

SDK和DEMO作为参考或示例,请服务商在使用过程中,要专业技术人员指导使用,注意系统兼容性。

Java版本

即将更新。

PHP版本

即将更新。