D0取现

文档说明

阅读对象

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

修订记录

2019-05-06:新增

相关术语

D0取现:商户当日交易额当日进行提现。

接口规则

协议规则

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();

D0取现

场景介绍

当日交易额需要即时到账的商户。

功能描述

商户当日交易后即时提现,提现会产生手续费,按照提现金额百分比收取。每个商户每日可提现3次。

业务流程

1、调用企业基本信息入驻接口进件/个人基本信息入驻接口进件时可在“结算业务开通”选项中选择开通D0并配置D0手续费。
2、商户取现前可调用商户余额查询接口查询该商户当前可取现余额。
3、调用商户D0取现接口进行取现,可配置异步应答地址。
4、取现结果会发送异步通知到已配置的地址上。

API列表

商户余额查询接口

发布路径

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

输入参数

输入参数

参数代码

参数名称

数据类型

是否必填

参数说明

checkValue

加签密文

String

必填

CFCA方式获取

jsonData

json

json

必填

jsonData数据,内容见下方描述

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

apiVersion

版本号

String(7)

必填

2.0.0.1

memberId

商户会员号

String(18)

必填

商户会员号18位

balanceType

余额类型

String(2)

选填

空- 默认只查结算余额
D –可查待结算余额
S –可查结算余额
W –可查钱包余额
R –可查充值余额
A –查询所有余额
U–可用余额(R+W)

输出参数

输出参数

参数代码

参数名称

数据类型

是否必填

参数说明

respCode

返回码

String(5)

必填

00000表示成功,其余表示失败

respDesc

返回描述

String(32)

必填

000093 请求参数非法
000095 验签失败
000099 网络繁忙
000391 会员号状态异常

checkValue

加签密文

String

必填

CFCA方式获取

jsonData

json

json

必填

jsonData数据,内容见下方描述

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

acctInfoResult

账户列表

List

见下方结构

acctInfoResult

参数代码

参数名称

数据类型

是否必填

参数说明

memberId

商户号

String(18)

必填

agentId

代理商会员号

String(18)

必填

merchName

商户名称

String(50)

必填

merchShortName

商户简称

String(32)

必填

acctName

账户名称

String(60)

必填

acctType

账户类型

String(2)

选填

D –可查待结算余额
S –可查结算余额
W –可查钱包余额
R –可查充值余额
A –查询所有余额
U–可用余额(R+W)

balanceAmt

账户余额

String(14)

必填

avlBal

可用余额

String(14)

必填

acctStat

账户状态

String(1)

必填

N-正常
C-关闭
F-冻结
D-销户

商户D0取现接口

发布路径

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

输入参数

输入参数

参数代码

参数名称

数据类型

是否必填

参数说明

checkValue

加签密文

String

必填

Cfca方式加签

jsonData

json数据

json

必填

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

apiVersion

版本号

String(7)

必填

默认值2.0.0.1

memberId

商户会员号

String(18)

必填

商户会员号18位

cashOutAmt

取现金额

String(16)

必填

1.只能为金额格式16位,保留两位有效数字.
2.不能超出账户余额

merOrdId

外部订单号

String(64)

可选

商户系统的订单号不超过64位

bgRetUrl

异步应答地址

String(120)

可选

异步通知商户取现结果,不超过120位

输出参数

输出参数

参数代码

参数名称

数据类型

是否必填

参数说明

checkValue

加签密文

String

必填

Cfca方式加签

jsonData

json

json

必填

jsonData数据,内容见下方描述

respCode

返回码

String(6)

必填

000000表示成功,其余表示失败

respDesc

返回描述

String(32)

非必填

JsonData

参数代码

参数名称

数据类型

是否必填

参数说明

merOrdId

外部订单号

String(50)

非必填

商户系统的订单号

transSeqId

取现订单号

String(18)

必填

取现订单号

cashOutAmt

取现金额

String(16)

必填

取现金额

relCashOutAmt

实际取现金额

String(16)

必填

实际到账金额:取现金额-取现手续费

cashOutFee

取现手续费

String(8)

必填

取现手续费

cashOutStat

取现状态

String(1)

必填

P-处理中
S-成功
F-失败

D0取现异步通知

输出参数

商户D0取现接口中传入的bgRetUrl

输出参数

参数代码

参数名称

数据类型

是否必填

参数说明

checkValue

加签密文

String

必填

CFCA

merOrdId

外部订单号

String

必填

可忽略

transSeqId

取现订单号

String(18)

必填

必填18位

cashOutAmt

取现金额

String(16)

必填

取现金额

relCashOutAmt

实际取现金额

String(16)

必填

实际到账金额:取现金额-取现手续费

cashOutFee

取现手续费

String(8)

必填

取现手续费

cashOutStat

取现状态

String(1)

必填

S-成功
F-失败

商户应答参数

RECV_ORD_ID_[ transSeqId]

如transSeqId为2013160000409163,则应答为:RECV_ORD_ID_2013160000409163

错误码

错误码

常见错误码描述,如还未解决问题请及时联系专业技术支持人员。
错误码 描述                               错误码 描述                                       错误码 描述
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版本

即将更新。