本开发文档的阅读对象为:具有一定开发能力,了解PHP、JAVA、.NET等开发语言的开发、维护或管理人员。

本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。

版本号 更新说明 更新日期
V1.0 创建 2017.07.27
  1. 商户会员号

    Chinapnr网关支付时提交的为商户会员号,并非商户号,会员号=商户号+"01"(如商户号为abc时,会员号为abc01)

商户接入结汇业务,调用API须遵循以下规则:

传输方式 为保证交易安全性,采用 HTTPS 传输
提交方式 采用 POST 方法提交
数据格式

HTTP KEY=VALUE 格式,XML格式

xml格式接口:商户代发,商户余额查询,用户余额查询接口; 请求,响应为xml格式,详细可查看接口文档

其他为KEY=VALUE格式接口,如:用户提现,用户开户,余额支付; 请求,响应为KEY=VALUE格式,详细可查看接口文档

字符编码 支持 UTF-8 字符编码
签名算法 商户生成签名字符串,现支持的签名算法类型为 RSA-SHA1
签名要求 请求和接收数据均需要校验签名

场景介绍

帮助商户将资金购结汇以及代发。

结汇代发流程

第一步:明细备案

图3.0 明细备案

第二步:汇款及结汇处理

图3.1 汇款及结汇处理

第三步:资金下发

图3.2 资金下发

概述

本文档展示如何从零开始,与Chinapnr跨境系统结汇代发接口对接的流程。

第一步:获取账号信息

  1. 商户需与前端销售沟通开通测试账号或生产账号,并提供接受邮箱地址。

  2. 1-2个工作日内由开通组负责将开通的账号信息发送至商户邮箱。

第二步:配置密钥

  1. 开发者调用接口前需要先生成RSA密钥,RSA密钥包含私钥、公钥。生成密钥后在商户后台进行密钥配置,配置完成后可发起交易。详细步骤请参考《配置密钥》

第三步:搭建和配置开发环境

  1. 下载示例代码Demo
    为了帮助开发者调用开放接口,我们提供了示例代码下载,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的Demo并引入您的开发工程《Demo下载》

  2. 将Demo运行成功,并将代码集成到您的项目中,记得修改商户号,终端号,和私钥证书。如生产环境,还需更换Chinapnr生产公钥证书。

调用流程

接口调用时序图:

图4.1 结汇代发时序图

  1. 商户系统收集结汇代发信息并通过《商户代发接口》向汇付天下(以下简称汇付)发起结汇代发请求。

  2. 汇付对商户的支付请求进行处理后,实时返回商户申请结果,返回参数请参照《商户代发接口》中的返回参数章节。

注意:为确保安全,商户在收到汇付通知后,务必先验证返回的签名字段。

概述

Chinapnr开放平台采用了 RSA 安全签名机制,开发者可以通过Chinapnr公钥验证消息来源,同时可使用自己的私钥对信息进行加密。RSA 算法及数字签名机制是Chinapnr平台与开发者网关安全通信的基础,若开发者不熟悉 RSA 及数字签名,请先查阅相关资料。

RSA 私钥及公钥生成

1. 生成 RSA 私钥及公钥,请详见“附录一:私钥公钥生成及范例”。 生成的文件格式如:客户私钥private-rsa.pfx,客户公钥public-rsa.cer。

商户上传公钥

注意:

  1. 上传商户公钥前需先联系前端获取商户后台账号和密码,并将客户公钥public-rsa.cer文件前缀名称修改为商户号。 如开通的商户号为10012159865,则证书修改为10012159865.cer上传。

商户平台登录地址 测试环境 / 生产环境进入Platform Management菜单下Certificate Management菜单,转入如下界面:

图5.1 上传公钥

在证书管理,输入邮箱,点击Do Upload上传证书。页面提示上传成功,证书列表中可以查看新增证书,状态为1有效。

下载Chinapnr公钥

点击Download下载系统公钥用于接收跨境系统返回时验签。

图5.2 下载Chinapnr公钥

注意:

不同环境Chinapnr公钥证书需在不对环境的商户后台下载。

API请求

Chinapnr开放平台的OpenAPI调用采取POST方式(application/x-www-form-urlencoded),内容通过键值对(Key-Value)的形式作为参数传入。

注意:

  1. 没有值的参数无需传递,也无需包含到待签名数据中。

  2. 签名时将字符转化成字节流时指定的字符集UTF8。

  3. 根据HTTP协议要求,传递参数的值中如果存在特殊字符(如:&、@等),那么该值需要做URL Encoding,这样请求接收方才能接收到正确的参数。此时,待签名数据应该是原始值而不是encoding之后的值。 例如:调用某接口需要对请求参数 email 进行数字签名,那么待签名数据应该是:email=test@abc.com,而不是 email=test%40abc.com。

结汇申请完成后,Chinapnr会向开发者提交的通知地址后台异步返回结汇结果。

接口返回参数说明请参见《结汇代发接口》

结汇结果通知

结汇结果通知示例:



							

1.将所有返回参数(signMsg除外)按照signMsg验签串按顺序拼接:

competCustom={competCustom}&customCode={customCode}&customVersion={customVersion}&dealId={dealId}&decResult={decResult}&declareId={declareId}&ecpDomainName={ecpDomainName}&ecpShortName={ecpShortName}&errorCode={errorCode}&errorMsg={errorMsg}&freightAmt={freightAmt}&goodsAmt={goodsAmt}&iaqInstCode={iaqInstCode}&merCustomCode={merCustomCode}&merCustomName={merCustomName}&merchantAcctId={merchantAcctId}&offsetAmt={offsetAmt}&orderAmt={orderAmt}&orderCurrency={orderCurrency}&orderId={orderId}&payerIdNumber={payerIdNumber}&payerIdType={payerIdType}&payerName={payerName}&taxAmt={taxAmt}&terminalId={terminalId}&bizType={bizType}&version={version}

组成待验签字符串,如:

competCustom=11111&customCode=NBHG&dealId=c108270&decResult=20&declareId=15849&ecpDomainName=www.xxx.com&ecpShortName=1111&freightAmt=0&goodsAmt=600&iaqInstCode=11111&merCustomCode=1111&merCustomName=测试商户&merchantAcctId=1001215986501&offsetAmt=0&orderAmt=600&orderCurrency=CNY&orderId=20170825152657559&payerIdNumber=320125198805232313&payerIdType=1&payerName=张三&taxAmt=0&terminalId=hgtest02&version=1.0
							

2.将签名参数signMsg和拼接的验签字符串进行URLDecoder。

如C#代码,signMsg为通知中的signMsg字段,signMsgVal为拼接的验签串:
String signMsgDecode = HttpUtility.UrlDecode(signMsg);
String signMsgValDecode = HttpUtility.UrlDecode(signMsgVal);

3.将URLDecoder后的签名参数(signMsg)使用base64解码为字节码串。

4.使用RSA的验签方法,通过签名字符串、签名参数(经过base64解码)及Chinapnr公钥验证签名。具体验签方法 请详见Demo

货币符号 币别
CNY 人民币
USD 美元
HKD 港元
GBP 英镑
JPY 日元
EUR 欧元
TWD 新台币
AUD 澳元
CAD 加元
RUB 卢布
code(支付错误代码) msg(支付错误描述)
110001 必须提交的请求参数 []未提交
110002 请求的数据项格式错误
110006 请求的交易币别[]暂不支持
120010 请求的商户号[]不存在,请检查后重试
120011 请求的商户号[]状态异常,不允许交易
120012 请求的终端号[]不存在,请检查后重试
120013 请求的终端号[]状态异常,不允许交易
120014 产品功能未开通,不允许交易
120030 请求的商户号[]/终端号[]对应的结算信息未开通
120032 请求的商户号[]/终端号[]对应的报价币别[]与交易申请的币别[]不一致
120023 交易请求Ip[]未知,不允许交易
200004 您的IP地址不允许交易
400008 商户账户余额不足
110005 交易明细格式有误,详情参见明细错误描述
999999 系统异常或未知错误

银行码表+省市代码(省市代码为文件里中文名称)

《银行码表+省市代码》下载
《汇付国际联行号清单》下载
《T0对公代发实时响应银行》下载:T0对公下发除上述文件内银行,其他银行T0对公资金到账是实时但不会给予实时响应,系统状态更新会延迟

针对代发提现,提交明细及商户开户时使用。

客户职业/行业代码

客户职业/行业代码下载

国家编码

国家编码下载

DEMO下载

注意:Demo下载后可直接运行,也可将项目里商户号,终端号,私钥证书(**.pfx)更换成已开通测试商户的。

结汇代发API 说明 平台 操作
结汇代发API 结汇代发API对应的DEMO JAVA 下载
PHP 下载
代发交易查询API 代发交易查询API对应的DEMO JAVA 下载
个人合规开户API 个人合规开户API对应的DEMO JAVA 下载
企业合规开户API 企业合规开户API对应的DEMO JAVA 下载
用户批量提现API 用户批量提现API对应的DEMO JAVA 下载

文档下载

支付模式 说明 操作
结汇代发API 结汇代发API对应的文档 下载
代发交易查询API 代发交易查询API对应的文档 下载

1.订单信息的签名不正确

确保私钥证书正确。

确保加签字段和加签顺序正确,可对照Demo对比

2.订单返回信息验签失败

确保公钥证书正确,与所提交环境匹配,可在对应环境商户后台下载。

确保验签字段和验签顺序正确,可对照Demo对比

3.商户提交明细备案请求、代发申请,报商户号不存在或未开通

发起明细备案请求、代发申请时,提交的并非是商户号,而是会员号,会员号=商户号+“01”。

4.TLS1.0 SSL3.0等协议无法正常进行网关交易

根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

5.商户同金额、卡号的不同出款申请被疑似重复拦截

为避免商户同金额、卡号的不同出款申请被疑似重复拦截,商户需要在明细记录的扩展字段1里上送不同的值(例如1-1,1-2… 用于区分不同的代发/用户提现申请),商户开发完成后,需联系我司在系统中进行配置,配置完成后即可避免上述出款申请被作为疑似重复的记录。

6.代发提现常遇问题

问题描述 问题解答
交换中心判断安全信息与交易信息的时间差超过24小时(中国银行代发) 账户状态为已注销
对公活期存款合约币种信息@@记录不存在 银行没查到上送的账号信息(开户行名称、账号、户名这些都要跟开户许可证上核对下)
差错处理状态更新 贵司同一时间给同一个卡代发同金额的交易,银联风控拦截导致(多笔同金额的会被拦截掉的 银联防止重复打款),烦请贵司注意下,返回该失败原因的贵司可以直接重发
交易金额超限 2类户,超过账户银行限制当日入账金额
持卡人认证失败 对私主要客户自身问题;对公烦请联系人工客服
账户状态异常 持卡人咨询银行了,卡存在问题
交易失败,回账成功,账号或卡号不存在 请让商户和客户核实下是否上送银行填写错误
交易失败,回账成功,收款方开户行行号不能以0,9开头(905除外 烦请让商户核实下银行卡号是否填写正确(比如卡号写成了身份证号)

OpenSSL工具安装

1.Linux用户(以Ubuntu为例)

sudo apt-get install openssl
							

2.Windows用户开发者可以在OpenSSL官方网站下载Windows的OpenSSL安装包进行安装。或直接下载

3.若不习惯查看文档中心,此为证书生成word文档,可自行下载证书生成文档下载

RSA私钥及公钥生成

生成证书days730-780之间

1.Linux用户(以Ubuntu为例)

				$ openssl   进入OpenSSL程序
    OpenSSL> genrsa -out private-rsa.key 1024   生成私钥
    OpenSSL> req -new -x509 -key private-rsa.key -days 750 -out public-rsa.cer     生成公钥
    OpenSSL> pkcs12 -export -name test-alias -in public-rsa.cer -inkey private-rsa.key -out private-rsa.pfx    生成证书,密码和别名需记住
    OpenSSL> exit   # 退出OpenSSL程序
							

2.Windows用户在cmd窗口中进行以下操作:

				C:\Users\Hammer>cd C:\OpenSSL\bin     进入OpenSSL安装目录
    C:\OpenSSL\bin>openssl.exe            进入OpenSSL程序
    OpenSSL> genrsa -out private-rsa.key 1024   生成私钥
    OpenSSL> req -new -x509 -key private-rsa.key -days 750 -out public-rsa.cer     生成公钥
    OpenSSL> pkcs12 -export -name test-alias -in public-rsa.cer -inkey private-rsa.key -out private-rsa.pfx    生成证书,密码和别名需记住
    OpenSSL> exit   # 退出OpenSSL程序
							

注意:

1.对于使用Php的开发者,需要将“private-rsa.pfx”证书转换为“private-rsa.pem”,输入转换命令pkcs12 -in dc-rsa.pfx -passin pass:“此处输入商户第3步设置的密码” -nodes -out private-rsa.pem。

跨境公钥转pem(cer转pem):x509 -in C:\OpenSSL\bin\ChinaPnR.rsa.cer -out C:\OpenSSL\bin\ChinaPnR.rsa.pem

2.如第二步报错,则根据工具所在路径指定下配置文件,如命令改为:req -new -x509 -key private-rsa.key -config "C:\OpenSSL\bin\openssl.cnf" -days 750 -out public-rsa.cer

私钥及公钥文件示例

经过以上步骤,开发者可以在当前文件夹中(Windows用户在C:\OpenSSL\bin)看到private-rsa.pfx和public-rsa.cer两个文件,前者为私钥,后者为公钥。开发者将私钥保留,将公钥提交给Chinapnr网关,用于信息加密及解密。公钥需修改前缀为商户号,并上传至跨境系统商户后台。以下为使用OpenSSL生成的私钥文件和公钥文件示例:

1.私钥文件示例(Java使用)

								-----BEGIN PRIVATE KEY-----
    MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN0yqPkLXlnhM+2H
    /57aHsYHaHXazr9pFQun907TMvmbR04wHChVsKVgGUF1hC0FN9hfeYT5v2SXg1WJ
    Sg2tSgk7F29SpsF0I36oSLCIszxdu7ClO7c22mxEVuCjmYpJdqb6XweAZzv4Is66
    1jXP4PdrCTHRdVTU5zR9xUByiLSVAgMBAAECgYEAhznORRonHylm9oKaygEsqQGk
    YdBXbnsOS6busLi6xA+iovEUdbAVIrTCG9t854z2HAgaISoRUKyztJoOtJfI1wJa
    QU+XL+U3JIh4jmNx/k5UzJijfvfpT7Cv3ueMtqyAGBJrkLvXjiS7O5ylaCGuB0Qz
    711bWGkRrVoosPM3N6ECQQD8hVQUgnHEVHZYtvFqfcoq2g/onPbSqyjdrRu35a7P
    vgDAZx69Mr/XggGNTgT3jJn7+2XmiGkHM1fd1Ob/3uAdAkEA4D7aE3ZgXG/PQqlm
    3VbE/+4MvNl8xhjqOkByBOY2ZFfWKhlRziLEPSSAh16xEJ79WgY9iti+guLRAMra
    vGrs2QJBAOmKWYeaWKNNxiIoF7/4VDgrcpkcSf3uRB44UjFSn8kLnWBUPo6WV+x1
    FQBdjqRviZ4NFGIP+KqrJnFHzNgJhVUCQFzCAukMDV4PLfeQJSmna8PFz2UKva8f
    vTutTryyEYu+PauaX5laDjyQbc4RIEMU0Q29CRX3BA8WDYg7YPGRdTkCQQCG+pjU
    2FB17ZLuKRlKEdtXNV6zQFTmFc1TKhlsDTtCkWs/xwkoCfZKstuV3Uc5J4BNJDkQ
    OGm38pDRPcUDUh2/
    -----END PRIVATE KEY-----
							

3.公钥文件示例

								-----BEGIN CERTIFICATE-----
MIIDNzCCAqCgAwIBAgIJAJaZj8YlPQcIMA0GCSqGSIb3DQEBBQUAMHExCzAJBgNV
BAYTAkhLMQswCQYDVQQIEwJISzELMAkGA1UEBxMCSEsxDTALBgNVBAoTBE1QQVkx
DTALBgNVBAsTBE1QQVkxDTALBgNVBAMTBE1QQVkxGzAZBgkqhkiG9w0BCQEWDE1Q
QVlAMTIzLkNPTTAeFw0xNjA3MDUxMDM5NDJaFw0xODA3MjUxMDM5NDJaMHExCzAJ
BgNVBAYTAkhLMQswCQYDVQQIEwJISzELMAkGA1UEBxMCSEsxDTALBgNVBAoTBE1Q
QVkxDTALBgNVBAsTBE1QQVkxDTALBgNVBAMTBE1QQVkxGzAZBgkqhkiG9w0BCQEW
DE1QQVlAMTIzLkNPTTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyiVbdBOF
Qtb03wKw+7oR7bA32vi5/XkJ33CbzdiID+ZK6lkeeRlJVIQvf2UsfScIeTLE/Nyn
lapF12Gsw9dVoiCzrScagn3kknFcE7fM2x4kyLLNQdJgJvb7jCRl/oMOziVT+z5R
cZ8SS11vO5Dk5kx8W4n66ldoyDeUVXArlCcCAwEAAaOB1jCB0zAdBgNVHQ4EFgQU
epQ9Qvg/VE5nb69L+D08eqn6/E8wgaMGA1UdIwSBmzCBmIAUepQ9Qvg/VE5nb69L
+D08eqn6/E+hdaRzMHExCzAJBgNVBAYTAkhLMQswCQYDVQQIEwJISzELMAkGA1UE
BxMCSEsxDTALBgNVBAoTBE1QQVkxDTALBgNVBAsTBE1QQVkxDTALBgNVBAMTBE1Q
QVkxGzAZBgkqhkiG9w0BCQEWDE1QQVlAMTIzLkNPTYIJAJaZj8YlPQcIMAwGA1Ud
EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAOHgqqxMLoaUW/i43KtTHFGciwr9m
OkusX4B4kx5sKN8Ed110iyRPixMKCslV2EHP4uIVAMWhEw+AxULbJte86r8ryr/m
Jc0PR4U9vrpQxdWLsBh8lhKgC4GVJb8jkwcVkjF/XvvVUp/VqHto+LBnjdNAXqZa
GbuKXbLTnmIwGes=
-----END CERTIFICATE-----
							

用户提现接口目录:

用户提现接口

正式环境发送异步通知只支持443或80端口 其他端口暂时不支持。

本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
请求报文格式以http key-value格式提交,demo在资源下载中下载
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

提交参数

请求地址

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/remit.htm
正式环境 https://global.chinapnr.com/mcs/remit.htm

2 接口定义

2.1 批量提现申请

2.1.1请求

协议参数

参数名称 参数含义 参数长度 可否为空 参数说明
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签

业务参数

参数名称 参数含义 参数长度 可否为空 参数说明
requestId 请求流水号 String(32) 不可空 商户系统中唯一性ID
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 请求会员号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
terminalId 终端号 String(32) 不可空 由我司提供,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
batchNo 提现批次号 String(32) 不可空 商户系统中唯一标识该笔批次
payCur 付款币种 String(3) 不可空 默认CNY
payTCnt 总笔数 Number(15) 不可空
payTAmt 总金额 Number(11) 不可空 单位分
ignoreFlag 是否忽略错外行 String1 不可空 1:不忽略 2:忽略
为1时,只要存在错误的明细行则整个批次失败
为2时,丢弃错误的明细行后继续处理。
purpose 用途 String(256) 不可空 请从如下值中选一种填入:
销售结算款
佣金/工资
ext1 扩展字段1 String(256) 可空
ext2 扩展字段2 String(256) 可空
noticeUrl 结果通知地址 String(256) 不可空
realTimeNoticeUrl 实时部分结果通知地址2 String(256) 可空 当商户需要实时通知时传输
details 提现明细 不可空

见提现明细字段说明;

例:12222222|72|CMB|M|1|10012159864|testsandobx|00|320125198805232313|江苏省|南京市|招行银行南京分行城东支行|Test|T1001|||10000006|收款银行|备注

明细字段值可为空但栏位必须存在。批次支持明细笔数5000笔

signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装

提现明细字段说明:各字段以|分隔,各行以半角“;”分隔,批次支持明细笔数5000笔

序号 字段 格式 是否必输 说明
1 提现明细流水号 String(32) M 同一商户号下唯一,用以区分请求记录,失败重发请更新明细流水号
2 金额 Number(15) M 格式为实际金额扩大100倍提交。如1000,表示10元
3 收款银行代码 String(32) C 详见字典当收款账户类型为汇付内部账户时,无需填写
4 收款账户的类型 String(1) M 收款账户的类型
‘C’–对公银行账户
‘P’–对私银行账户
‘H’–汇付内部账户
‘M’–汇付内部商户账户
‘S’–对私存折账户
‘G’–对公存折账户
5 到账时效 String(1) C 取值: 1:T+0,2:T+1;
1.若终端下配置多个到账时效;且收款账户的类型为C和P,S和G时,必填,需指定到账时效;
2.若终端下配置单个到账时效;非必填,默认获取配置到账时效。
6 账户 String(32) M 银行账号纯数字。若账户类型为H,则为汇付账户号
7 户名 String(32) M 户名
8 证件类型 String(2) M 00–身份证
01–护照
02–军官证
03–士兵证
04–回乡证
05–户口本
06–外国护照
07–其它个人证件类型
61–组织机构代码证
62–营业执照
63–税务登记证
66–统一社会信用代码
69–其它机构证件
9 证件号码 String(32) M 收款人证件号,如果身份证号包含X,请保持字母为大写
10 省份 String(30) C 见附录:银行码表+省市代码
收款账户类型为C/G时,省市/联行号2选1;
收款账户类型为P/S/H/M时,省市为空即可。
11 地区 String(30) C 见附录:银行码表+省市代码
收款账户类型为C/G时,省市/联行号2选1;
收款账户类型为P/S/H/M时,省市为空即可。
此处为地级市或省辖县,若客户的提供的是县或县级市,请按其所属的地级市填写。
12 支行名 String(256) C 支行全称,如:招行银行南京分行城东支行
13 提现用途 String(256) M 请从如下值中选一种填入:
销售结算款
佣金/工资
14 业务参考号 String(256) O 备用
15 扩展字段1 String(256) O 为避免商户同金额、卡号的不同出款申请被疑似重复拦截,不同的提现申请,建议传入全局唯一值
16 扩展字段2 String(256) O 备用
17 出款用户号 String(8) M 开户成功,返回的userId
18 收款行联行号 String(20) C 对公时,省市支行名称和收款行联行号二选一
对公/对私存折账户时,收款行联行号必填
见附录:汇付国际联行号清单
测试数据:105554508399
19 备注 String(100) O 该字段会通过银网联送给收款银行,但收款人能否看到该字段的内容,还要看收款行的处理逻辑。
-	按以下固定字段顺序进行加签
- 仅对非空字段进行加签 batchNo={batchNo}&ignoreFlag={ignoreFlag}&merchantAcctId={merchantAcctId}& noticeUrl={noticeUrl}&payCur={payCur}&payTAmt={payTAmt}&payTCnt={payTCnt}&requestId={requestId}&requestTime={requestTime}&signType={signType}&terminalId={terminalId}&version={version}

2.7.2应答

同步返回参数说明:

参数名称 参数含义 长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(16) 原样返回
merchantAcctId 商户号 String(10) 原样返回
terminalId 终端号 String(32) 原样返回
batchNo 批次号 String(32) 原样返回
payCur 付款币种 String(32) 原样返回
payTCnt 总笔数 Number(15) 当ignoreFlag=1时,原样返回
当ignoreFlag=2时,返回实际成功的总笔数
payTAmt 总金额 Number(11) 当ignoreFlag=1时,原样返回
当ignoreFlag=2时,返回实际成功的总金额
purpose 用途 String(256) 原样返回
ignoreFlag 是否忽略错误行 String(1) 原样返回
ext1 扩展字段1 String(256) 原样返回
ext2 扩展字段2 String(256) 原样返回
noticeUrl 结果通知地址 String(256) 原样返回
realTimeNoticeUrl 实时结果通知地址 String(256) 原样返回
details 提现明细 存在错误明细时返回,格式见返回明细字段说明2.1.1
status 状态 String(1) 1:全部接收成功
2:全部接收失败
3:部分接收成功(当且仅当ignoreFlag=2时返回)
errorCode 错误码 String(6) 格式校验未通过时返回该字段
errorMsg 错误描述 String(256) 格式校验未通过时返回该字段
signMsg 签名信息 String(2048) 签名字符串,商户需对该字段进行验签。详情请参考验签方法。对于所有值不为空的参数及对应值,按照字母顺序组成字符串 DSA:参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行支付平台证书加密形成密文后进行2048位的Base64转码。
注:若通过sdk接入,则无需自己处理,代码已封装

2.1.1返回明细字段说明:各字段以|分隔,各行以半角“;”分隔

序号 字段 格式 说明
1 提现明细流水号 String(32) 原样返回
2 金额 Number(15) 原样返回
3 收款银行代码 String(32) 原样返回
4 收款账户的类型 String(1) 原样返回
5 到账类型 String(1) 原样返回
6 账号 String(32) 原样返回
7 户名 String(32) 原样返回
8 证件类型 String(32) 原样返回
9 证件号码 String(32) 原样返回
10 省份 String(30) 原样返回
11 地区 String(30) 原样返回
12 支行名 String(256) 原样返回
13 用途 String(256) 原样返回
14 业务参考号 String(256) 原样返回
15 扩展字段1 String(256) 原样返回
16 扩展字段2 String(256) 原样返回
17 出款用户号 String(8) 原样返回
18 收款行联行号 String(30) 原样返回
19 失败原因 String(128) 当失败时返回失败原因描述
-	按以下字段字母顺序进行验签
- 仅对非空字段进行验签 batchNo={batchNo}&errorCode={errorCode}&errorMsg={errorMsg}&ignoreFlag={ignoreFlag}&merchantAcctId={merchantAcctId}& noticeUrl={noticeUrl}&payCur={payCur}&payTAmt={payTAmt}&payTCnt={payTCnt}&requestId={requestId}&requestTime={requestTime}&signType={signType}&status={status}&terminalId={terminalId}&version={version}

2.2 提现结果通知(全部)

2.8.1请求

当批次下所有明细都收到银行返回的结果时,发起此通知,通知地址为申请时提交的noticeUrl

协议参数

参数名称 参数含义 长度 可否为空 参数说明
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签

业务参数

参数名称 参数含义 长度 可否为空 参数说明
requestTime 请求时间 String(16) 不可空 原样返回
merchantAcctId 商户号 String(32) 不可空 原样返回
terminalId 终端号 String(32) 不可空 原样返回
batchNo 提现批次号 String(32) 不可空 原样返回
payCur 付款币种 String(3) 不可空 默认CNY
payTCnt 总笔数 Number(15) 总笔数 当ignoreFlag=1时,原样返回
当ignoreFlag=2时,返回实际接收成功的总笔数
payTAmt 总金额 Number(11) 不可空 单位:分
当ignoreFlag=1时,原样返回;
当ignoreFlag=2时,返回实际接收成功的总金额.
ignoreFlag 忽略错误行 String(1) 不可空 原样返回
purpose 用途 String(256) 可空 原样返回
ext1 扩展字段1 String(256) 可空 原样返回
ext2 扩展字段2 String(256) 可空 原样返回
noticeUrl 结果通知地址 String(256) 不可空 原样返回
realTimeNoticeUrl 实时结果通知地址 String(256) 不可空
details 提现明细 不可空 仅返回提现失败的交易明细,未在明细中返回的明细均表示提现成功。格式见结果通知明细字段说明2.1.11
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装

2.1.11结果通知明细字段说明:各字段以|分隔,各行以半角“;”分隔

序号 字段 格式 说明
1 提现明细流水号 String(32) 原样返回
2 金额 Number(15) 原样返回
3 收款银行代码 String(32) 原样返回
4 收款账户的类型 String(1) 原样返回
5 到账类型 String(1) 原样返回
6 账号 String(32) 原样返回
7 户名 String(32) 原样返回
8 证件类型 String(2) 原样返回
9 证件号码 String(32) 原样返回
10 省份 String(30) 原样返回
11 地区 String(30) 原样返回
12 支行名 String(256) 原样返回
13 用途 String(256) 原样返回
14 业务参考号 String(256) 原样返回
15 扩展字段1 String(256) 原样返回
16 扩展字段2 String(256) 原样返回
17 出款用户号 String(8) 原样返回
18 收款行联行号 String(20) 原样返回
19 失败原因 String(128) 返回具体失败原因描述
-	按以下字段字母顺序进行验签
- 仅对非空字段进行验签 batchNo={batchNo}&merchantAcctId={merchantAcctId}& noticeUrl={noticeUrl}&payCur={payCur}&payTAmt={payTAmt}&payTCnt={payTCnt}&requestTime={requestTime}&signType={signType}&terminalId={terminalId}&version={version}&

2.8.2应答

商户端接收到通知结果并处理完毕后需明确返回字符串:<result>000000</result>表示接收并处理成功。如果我司没有成功收到<result>000000</result>,系统会按照一定策略通知6次或收到<result>000000</result>后结束停止,以先到者为准。

2.3 提现结果实时通知(部分)

2.9.1请求

每笔提现明细收到银行的异步结果通知时,立即通知商户该笔提现明细的处理结果。同时支持累积一定的数量(N)后合并通知,
目的是为了减轻商户端服务器压力。N的范围是根据商户需要在我司系统中配置的,范围:0<=N<=10,默认为0,表示不发起此类型的通知。
若需要通知,此通知地址为申请时提交的realTimeNoticeUrl。

协议参数

参数名称 参数含义 长度 可否为空 说明
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签

业务参数

参数名称 参数含义 长度 可否为空 说明
requestTime 请求时间 String(16) 不可空 原样返回
merchantAcctId 商户号 String(32) 不可空 原样返回
terminalId 终端号 String(32) 不可空 原样返回
batchNo 提现批次号 String(32) 不可空 原样返回
payCur 付款币种 String(3) 不可空 默认CNY
payTCnt 总笔数 Number(15) 总笔数 本次通知明细总笔数
payTAmt 总金额 Number(11) 不可空 本次通知明细总金额
ignoreFlag 忽略错误行 String(1) 不可空 原样返回
purpose 用途 String(256) 可空 原样返回
ext1 扩展字段1 String(256) 可空 原样返回
ext2 扩展字段2 String(256) 可空 原样返回
noticeUrl 结果通知地址 String(256) 不可空 原样返回
realTimeNoticeUrl 实时结果通知地址 String(256) 不可空
details 提现明细 不可空 本次通知累积的明细,无论成功失败都会返回。格式参照实时通知明细字段说明2.1.12
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装

2.1.12结果通知明细字段说明:各字段以|分隔,各行以半角“;”分隔

序号 字段 格式 说明
1 提现明细流水号 String(32) 原样返回
2 金额 Number(15) 原样返回
3 收款银行代码 String(32) 原样返回
4 收款账户的类型 String(1) 原样返回
5 到账类型 String(1) 原样返回
6 账号 String(32) 原样返回
7 户名 String(32) 原样返回
8 证件类型 String(2) 原样返回
9 证件号码 String(32) 原样返回
10 省份 String(30) 原样返回
11 地区 String(30) 原样返回
12 支行名 String(256) 原样返回
13 用途 String(256) 原样返回
14 业务参考号 String(256) 原样返回
15 扩展字段1 String(256) 原样返回
16 扩展字段2 String(256) 原样返回
17 出款用户号 String(8) 原样返回
18 收款行联行号 String(20) 原样返回
19 失败原因 String(128) 返回具体失败原因描述
-	按以下字段字母顺序进行验签
- 仅对非空字段进行验签 batchNo={batchNo}&merchantAcctId={merchantAcctId}& noticeUrl={noticeUrl}&payCur={payCur}&payTAmt={payTAmt}&payTCnt={payTCnt}&requestTime={requestTime}&signType={signType}&terminalId={terminalId}&version={version}

2.9.2应答

商户端接收到通知结果并处理完毕后需明确返回字符串:<result>000000</result>表示接收并处理成功。如果我司没有成功收到<result>000000</result>,系统会按照一定策略通知6次或收到<result>000000</result>后结束停止,以先到者为准。

2.4 提现结果查询(单笔)

2.10.1请求

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/remitQry.htm
正式环境 https://global.chinapnr.com/mcs/remitQry.htm

协议参数

参数名称 参数含义 长度 可否为空 参数说明
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签

业务参数

参数名称 参数含义 长度 可否为空 参数说明
requestId 请求流水号 String(32) 不可空 商户系统中唯一性ID
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户会员号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
terminalId 终端号 String(32) 不可空 由我司提供,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
batchNo 提现批次号 String(32) 不可空 商户系统中唯一标识该笔批次
remitNo 提现明细流水号 String(32) 不可空 关联明细字段的唯一流水号
applyDate 原批次申请日期 String(8) 不可空 为批次申请提交的日期 格式:yyyyMMdd例如:20180920
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下固定字段顺序进行加签
- 仅对非空字段进行加签 applyDate={applyDate}&batchNo={batchNo}&merchantAcctId={merchantAcctId}&remitNo={remitNo}&requestId={requestId}&requestTime={requestTime}&signType={signType}&terminalId={terminalId}&version={version}

2.10.2应答

同步返回参数说明:

参数名称 参数含义 长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(16) 原样返回
merchantAcctId 商户会员号 String(32) 原样返回
terminalId 终端号 String(32) 原样返回
batchNo 提现批次号 String(32) 原样返回
remitNo 提现明细流水号 String(32) 原样返回
applyTime 原批次申请时间 String(14) 原批次申请时间,格式:yyyyMMddHHmmss 例如:20180503124565
cur 币别 String(3) 默认:CNY
amt 金额 String(15) 格式为实际金额扩大100倍提交。如1000,表示10元
feeAmt 手续费 String(15) 手续费。格式为实际金额扩大100倍提交。如1000,表示10元
bankId 银行编码 String(32) 原样返回
acctType 账户类型 String(1) 原样返回
timeType 到账时效 String(1) 原样返回
bankAcct 收款账户 String(32) 原样返回
payeeName 收款人姓名 String(32) 原样返回
payeeIdType 收款人证件类型 String(2) 原样返回
payeeIdNo 收款人证件号 String(32) 原样返回
province 省份 String(30) 原样返回
city 城区 String(30) 原样返回
bankBranch 支行名称 String(256) 原样返回
purpose 用途 String(256) 原样返回
refNo 业务参考号 String(256) 原样返回
ext1 扩张字段1 String(256) 原样返回
ext2 扩张字段2 String(256) 原样返回
userId 出款用户号 String(8) 原样返回
cnapsNo 收款行联行号 String(20) 原样返回
status 状态 String(1) 0.请求参数错误,
1.处理中,
2.提现成功,
3.提现失败,
4.交易不存在
errorCode 错误码 String(6) 当STATUS为0、3、4时返回
errorMsg 错误描述 String(256) 当STATUS为0、3、4时返回
signMsg 签名信息 String(2048) 签名字符串,商户需对该字段进行验签。详情请参考验签方法。对于所有值不为空的参数及对应值,按照字母顺序组成字符串 DSA:参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行支付平台证书加密形成密文后进行2048位的Base64转码。
注:若通过sdk接入,则无需自己处理,代码已封装

注: STATUS=0,4时,除商户请求提交的字段和 STATUS、ERR_CODE、ERR_MSG外,均返回空值

-	按以下字段字母顺序进行验签
- 仅对非空字段进行验签 acctType={acctType}&amt={amt}&applyTime={applyTime}&bankAcct={bankAcct}&bankBranch={bankBranch}&bankId={bankId}&batchNo={batchNo}&city={city}&cnapsNo={cnapsNo}&errorCode={errorCode}&errorMsg={errorMsg}&feeAmt={feeAmt}&merchantAcctId={merchantAcctId}&payeeIdNo={payeeIdNo}&payeeIdType={payeeIdType}&payeeName={payeeName}&province={province}&refNo={refNo}&remitNo={remitNo}&requestId={requestId}&requestTime={requestTime}&signType={signType}&status={status}&terminalId={terminalId}&userId={userId}&version={version}

交易规则说明

代发,提现交易规则说明:
transAmt(0,10000) 交易成功
transAmt[10000,50000) 交易失败
银行卡:6257080018600105 姓名:正常名称

用户开户

正式环境发送异步通知只支持443或80端口 其他端口暂时不支持

本文档定义CHINAPNR结汇入境业务开户接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

1 个人用户开户

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/individualComplianceReg.htm
正式环境 https://global.chinapnr.com/mcs/individualComplianceReg.htm

开户测试账号:

姓名:张三 ;身份证号:411081199004235955;卡号:4682037906128888;手机号:15015160170

1.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户自动生成,请求流水号系统唯一,如:GRKH202112120930001
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
platformUserId 用户平台ID String(32) 不可空 用户在商户系统中的唯一编号
platformRegTime 平台用户注册时间 String(16) 不可空 yyyyMMddHHmmss
contractEmailId 签约邮箱 String(40) 不可空 用于第三方签约注册。此邮箱建议由商户随机生成,需在商户系统中唯一,格式可以为:{商户英文简称}+{唯一标识}@{商户英文简称}.com
当前不支持包含下划线'_'的邮箱,支持以"字母大小写","数字","-","."生成符合格式的电子邮箱
name 姓名 String(32) 不可空 -
certType 证件类型 String(2) 不可空 00-身份证(目前仅支持00)
certId 证件号码 String(64) 不可空 如果身份证号包含X,请保持字母为大写
certExpDateStart 证件有效期起始 String(8) 可空 yyyyMMdd。
certExpDateEnd 证件有效期结束 String(8) 不可空 yyyyMMdd。如无则填写20990101
mobileNumber 手机号 String(11) 不可空 -
address 地址 String(128) 不可空 -
email 电子邮箱 String(40) 不可空 此邮箱号将用于接收合同文件,需保证正确性、真实性
bankCode 开户银行 String(20) 不可空 银行代码:银行代码
acctType 账户类型 String(1) 不可空 2-对私
bankAcct 账号 String(20) 不可空 -
acctName 户名 String(50) 不可空 对公时须与企业名称一致;
对私时须与姓名一致
province 省份 String(8) 条件必输 省份编码:省市编码
area 地区 String(45) 条件必输 地区编码:省市编码
bankBranch 支行名称 String(50) 条件必输 -
uniteBankCode 联行号 String(20) 条件必输 对公时,省+地区+支行名称,或者收款联行号至少一组不为空。
见附录:汇付国际联行号清单
certPhotoCopyF 证件影印件正面(人像面) - 不可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
certPhotoCopyB 证件影印件反面(国徽面) - 不可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
asyncNoticeFlag 是否接收异步通知 String(1) 不可空 固定填1,接收异步通知。
noticeUrl 后台通知地址 String(256) 不可空 互联网可访问。用于接收异步结果。
ext1 扩展字段1 String(2000) 不可空 店铺信息,请以jason方式按如下规则填写:{"storeInfo":[{"storeId":"AMAZON_eq3142412342","storelink":"www.amazon.com/dfadasf"},{"storeId":"EBAY_EQRWE","storelink":"www.ebay.com/234234"}]}其中,storeId为“平台名称_店铺ID”,storelink为店铺链接。注:如果没有店铺ID可以提供例如用户在电商平台的sellerid或者在平台的账号等唯一识别标记作为替代;如果没有店铺链接,值可填N/A。
ext2 扩展字段2 String(512) 可空 备用
occupationCode 职业 String(10) 不可空 请查看附录职业编码
nationalCode 国籍 String(10) 不可空 请查看附录国家编码
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	-	仅对非空字段进行加签
acctName={acctName}&acctType={acctType}&address={address}&area={area}&bankAcct={bankAcct}&bankBranch={bankBranch}&bankCode={bankCode}&certId={certId}&certType={certType}&contractEmailId={contractEmailId}&email={email}&merchantAcctId={merchantAcctId}&mobileNumber={mobileNumber}&name={name}&nationalCode={nationalCode}& noticeUrl={noticeUrl}&occupationCode={occupationCode}&platformRegTime={platformRegTime}&platformUserId={platformUserId}&province={province}&requestId={requestId}&requestTime={requestTime}&signType={signType}&uniteBankCode={uniteBankCode}&version={version}

1.2 应答

同步/异步返回参数说明:

商户在接受到Chinapnr异步通知后,应返回成功接受内容,如"SUCCESS"。

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
merchantAcctId 商户号 String(32) 原样返回
platformUserId 用户平台ID String(32) 原样返回
ext1 扩展字段1 String(512) 原样返回
ext2 扩展字段2 String(512) 原样返回
userId 汇付唯一用户号 String(11) result为00时返回
result 状态 String(2) 01-审核中 02-失败 00-成功
errorCode 错误码 String(8) 错误码;失败时返回的错误代码,可以为空。
errorMsg 错误描述 String(256) 错误描述;失败时返回的错误信息,可以为空。
signMsg 签名信息 String(2048) 验签串
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 errorCode={errorCode}&errorMsg={errorMsg}&merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&userId={userId}&version={version}
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&userId={userId}&version={version}

3 个人用户开户结果查询

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/individualQry.htm
正式环境 https://global.chinapnr.com/mcs/individualQry.htm

3.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户自动生成,请求流水号系统唯一,如:GRKH202112120930001
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
platformUserId 用户平台ID String(32) 不可空 用户在商户系统中的唯一编号
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下固定字段顺序进行加签
- 仅对非空字段进行加签 merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&signType={signType}&version={version}

3.2 应答

同步返回参数说明:

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(16) 原样返回
merchantAcctId 商户号 String(32) 原样返回
platformUserId 用户平台ID String(32) 原样返回
userId 汇付唯一用户号 String(11) 汇付唯一用户号
result 状态 String(2) 01-审核中 02-失败 00-成功
errorCode 错误码 String(8) 错误码;失败时返回的错误代码,可以为空。
errorMsg 错误描述 String(256) 错误描述;失败时返回的错误信息,可以为空。
signMsg 签名信息 String(2048) 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 errorCode={errorCode}&errorMsg={errorMsg}&merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&version={version}

错误代码

code(错误代码) msg(错误描述)
110001 必须提交的请求参数 []未提交
110002 请求的数据项[]长度最大允许[],实际[]
110003 请求的数据项[]格式错误,合法格式请参照接入文档
110005 请求的数据项[]不合法
110006 请求的交易币别[]暂不支持
113001 营业执照OCR识别不通过,缺失字段:
113002 营业执照OCR识别不通过,[]
113003 [法人/联系人]身份证OCR识别不通过,缺失字段:
113004 [法人/联系人]身份证OCR识别不通过,[]
113005 营业执照与提交的信息不符[]
113006 企业身份验证不通过
113007 法人身份证与提交的信息不符[]
113008 联系人身份证与提交的信息不符[]
113009 工商网该企业状态异常:[]
113010 营业执照与工商网信息不符[]
113011 联系人证件有效期起与提交的信息不符[]
120001 用户不存在
120002 非法操作
120003 开户失败
120004 身份信息或卡信息有误
120010 请求的商户号[]不存在,请检查后重试
120011 请求的商户号[]状态异常,不允许交易
120092 请求的机构[]不存在
120093 请求机构状态异常,不允许操作
120094 非法请求,商户不属于机构
120095 [证件]到期日须在[{1}]天后
130001 报备失败
140001 第三方签约失败
140002 当前商户合同有效期未配置或必须大于当天日期,请联系管理员
140003 第三方签约失败,调用接口网络请求超时
150007 受益人身份鉴权失败
150008 受益人身份信息{0}不能为空
150009 受益人身份信息不能为空
150010 受益人身份信息格式错误
20001 订单信息的签名内容不正确
999999 系统异常或未知错误

用户开户

正式环境发送异步通知只支持443或80端口 其他端口暂时不支持

本文档定义CHINAPNR结汇入境业务开户接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

1 企业用户开户

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/enterpriseRegV2.htm
正式环境 https://global.chinapnr.com/mcs/enterpriseRegV2.htm

开户测试账号:

企业名称 :上海某某电子商务有限公司
营业执照号 :91310120MA009K0000
法人姓名 :张三
法人身份证号:320125198805233308

1.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户自动生成,请求流水号系统唯一,如:GRKH202112120930001
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
platformUserId 用户平台ID String(32) 不可空 用户在商户系统中的唯一编号
platformRegTime 平台用户注册时间 String(16) 不可空 yyyyMMddHHmmss
contractEmailId 签约邮箱 String(40) 不可空 用于第三方签约注册。此邮箱建议由商户随机生成,需在商户系统中唯一,格式可以为:{商户英文简称}+{唯一标识}@{商户英文简称}.com
当前不支持包含下划线'_'的邮箱,支持以"字母大小写","数字","-","."生成符合格式的电子邮箱
name 企业名称 String(64)) 不可空 -
shortName 企业简称 String(20) 可空 -
type 企业类型 String(2) 不可空 1-个体工商户 2-企业
legalPerson 法人姓名 String(32) 不可空 -
legalCertType 法人证件类型 String(2) 不可空 00-身份证
01-护照
02-军官证
03-士兵证
04-回乡证
06-警官证
08-台胞证
13-其他
如果证件类型不为身份证,则提交后会进入人工审核流程。
legalCertId 法人证件号 SString(32) 不可空 legalCertType=00时,证件号为固定18位身份证号码,如果身份证号包含X,请保持字母为大写
legalCertExpDateStart 法人证件生效日期 String(8) 可空 格式yyyyMMdd。
legalCertExpDateEnd 法人证件时效日期 String(8) 不可空 格式yyyyMMdd。如无则填写20990101
legalMobile 法人手机号 String(11) 可空 -
contactName 联系人姓名 String(32) 不可空 可与法人信息一致
联系人姓名,证件类型,证件号起止日期需匹配
contactCertType 联系人证件类型 String(2) 可空 00-身份证
01-护照
02-军官证
03-士兵证
04-回乡证
06-警官证
08-台胞证
13-其他
contactCertId 联系人证件号 String(32) 可空 可与法人信息一致
联系人姓名,证件类型,证件号起止日期需匹配,如果身份证号包含X,请保持字母为大写
contactCertExpDateStart 联系人证件生效日期 String(8) 可空 格式yyyyMMdd。
contactCertExpDateEnd 联系人证件失效日期 String(8) 条件必填 格式:yyyyMMdd
若证件上无有效期,则填写20990101;若上送联系人证件号,则失效期必填
contactMobile 联系人手机号 String(11) 不可空 -
contactEmail 联系人邮箱 String(40) 不可空 -
address 企业地址 String(128) 不可空 -
phone 企业电话 String(15) 不可空 纯数字,不可存在特殊字符,如有,请去除后再上送,例:+ -
orgCode 组织机构代码 String(9) 可空 组织机构代码-统一社会信用代码9-17位
orgExpDateStart 组织机构代码证生效日期 String(8) 条件必填 日期格式:yyyyMMdd,若组织机构代码已填写,则必填
orgExpDateEnd 组织机构代码失效日期 String(8) 条件必填 格式:yyyyMMdd,若证件上无有效期,则填写20990101,若组织机构代码已填写,则必填
bizLicenseCode 营业执照号 String(45) 不可空 工商登记号或统一社会信用代码。开户后不可变更。
bizLicenseExpDateStart 营业执照生效日期 String(8) 可空 日期格式:yyyyMMdd
bizLicenseExpDateEnd 营业执照失效日期 String(8) 不可空 日期格式:yyyyMMdd。若证件上无有效期,则填写20990101
taxRegCode 税务登记号 String(64) 可空 税务登记号
taxRegExpDateStart 税务登记证生效日期 String(8) 可空 日期格式:yyyyMMdd
taxRegExpDateEnd 税务登记证失效日期 String(8) 条件必填 格式:yyyyMMdd, 税务登记号不为空时必填,若证件上无有效期,则填写20990101
bankCode 开户银行 String(20) 不可空 银行编码:银行代码
acctType 账户类型 String(1) 不可空 1-对公 2-对私
bankAcct 账号 String(20) 不可空 -
acctName 户名 String(50) 不可空 对公时须与企业名称一致;
对私时须与法人姓名一致
province 省份 String(8) 条件必输 省份编码:省市编码
area 地区 String(45) 条件必输 省份编码:省市编码
bankBranch 支行名称 String(50) 条件必输 -
uniteBankCode 收款行联行号 String(20) 条件必输 对公时,省+地区+支行名称,或者收款联行号至少一组不为空。
见附录:汇付国际联行号清单
legalCertPhotoCopyF 法人证件的影印件正面(人像面) - 不可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
legalCertPhotoCopyB 法人证件的影印件反面(国徽面) - 不可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
contactCertPhotoCopyF 联系人证件的影印件正面(人像面) - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
contactCertPhotoCopyB 联系人证件的影印件反面(国徽面) - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
bizLicensePhotoCopy 营业执照影印件 - 不可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
orgPhotoCopy 补充材料1 - 可空 如果企业有处罚记录,请在补充材料栏上传对应的结案材料并在补充说明栏填写对应的说明。不同情况可提交的材料如下:
1)法院司法执行信息——已结案文书
2)市场监督管理或者食药监督处罚——罚款缴纳单
3)环保处罚——罚款缴纳单
4)税务处罚——罚款缴纳单
5)其他-对应结案或证明材料
taxRegPhotoCopy 补充材料2 - 可空 如果企业有处罚记录,请在补充材料栏上传对应的结案材料并在补充说明栏填写对应的说明。不同情况可提交的材料如下:
1)法院司法执行信息——已结案文书
2)市场监督管理或者食药监督处罚——罚款缴纳单
3)环保处罚——罚款缴纳单
4)税务处罚——罚款缴纳单
5)其他-对应结案或证明材料
openLicensePhotoCopy 补充材料3 - 可空 如果企业有处罚记录,请在补充材料栏上传对应的结案材料并在补充说明栏填写对应的说明。不同情况可提交的材料如下:
1)法院司法执行信息——已结案文书
2)市场监督管理或者食药监督处罚——罚款缴纳单
3)环保处罚——罚款缴纳单
4)税务处罚——罚款缴纳单
5)其他-对应结案或证明材料
asyncNoticeFlag 是否接收异步通知 String(1) 不可空 固定值1,有异步
noticeUrl 后台通知地址 String(256) 不可空 互联网可访问。
ext1 扩展字段1 String(2000) 不可空 店铺信息,请以jason方式按如下规则填写:{"storeInfo":[{"storeId":"AMAZON_eq3142412342","storelink":"www.amazon.com/dfadasf"},{"storeId":"EBAY_EQRWE","storelink":"www.ebay.com/234234"}],"beneficiary": [{"name": "受益人姓名","address": "受益人地址","idType": "受益人证件类型","idNo": "受益人证件号码","idExpDate": "受益人证件有效期","shareRatio": "受益人股份占比"}, {"name": "王二锤","address": "北京朝阳区","idType": "00","idNo": "333333333333333332","idExpDate": "20250101","shareRatio": "25.5"}]}其中,storeId为“平台名称_店铺ID”,storelink为店铺链接。注:如果没有店铺ID可以提供例如用户在电商平台的sellerid或者在平台的账号等唯一识别标记作为替代;如果没有店铺链接,值可填N/A。
ext2 扩展字段2 String(512) 可空 备用
industryCode 行业 String(10) 不可空 请查看附录行业编码
nationalCode 企业所在国家地区 String(10) 不可空 请查看附录国家编码
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	仅对非空字段进行加签
acctName={acctName}&acctType={acctType}&address={address}&area={area}&bankAcct={bankAcct}&bankBranch={bankBranch}&bankCode={bankCode}&bizLicenseCode={bizLicenseCode}&contactCertId={contactCertId}&contactCertType={contactCertType}&contactEmail={contactEmail}&contactMobile={contactMobile}&contactName={contactName}&contractEmailId={contractEmailId}&industryCode={industryCode}&legalCertId={legalCertId}&legalCertType={legalCertType}&legalMobile={legalMobile}&legalPerson={legalPerson}&merchantAcctId={merchantAcctId}&name={name}&nationalCode={nationalCode}&orgCode={orgCode}&phone={phone}&platformRegTime={platformRegTime}&platformUserId={platformUserId}&province={province}&requestId={requestId}&requestTime={requestTime}&shortName={shortName}&signType={signType}&taxRegCode={taxRegCode}&type={type}&uniteBankCode={uniteBankCode}&version={version}

1.2 应答

同步/异步返回参数说明:

商户在接受到Chinapnr异步通知后,应返回成功接受内容,如"SUCCESS"。

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(16) 原样返回
merchantAcctId 商户号 String(32) 原样返回
platformUserId 用户平台ID String(32) 原样返回
userId 汇付唯一用户号 String(11) result为00时返回
result 状态 String(2) 01-审核中 02-失败 00-成功
errorCode 错误码 String(8) 错误码;失败时返回的错误代码,可以为空。
errorMsg 错误描述 String(256) 错误描述;失败时返回的错误信息,可以为空。
ext1 扩展字段1 String(512) 原样返回
ext2 扩展字段2 String(512) 原样返回
signMsg 签名信息 String(2048) 验签串
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 errorCode={errorCode}&errorMsg={errorMsg}&merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&userId={userId}&version={version}

2 企业用户开户结果查询

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/enterpriseQry.htm
正式环境 https://global.chinapnr.com/mcs/enterpriseQry.htm

2.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户自动生成,请求流水号系统唯一,如:GRKH202112120930001
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
platformUserId 用户平台ID String(32) 不可空 用户在商户系统中的唯一编号
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下固定字段顺序进行加签
- 仅对非空字段进行加签 merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&signType={signType}&version={version}

2.2 应答

同步返回参数说明:

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(16) 原样返回
merchantAcctId 商户号 String(32) 原样返回
platformUserId 用户平台ID String(32) 原样返回
userId 汇付唯一用户号 String(11) 汇付唯一用户号
result 状态 String(2) 01-审核中 02-失败 00-成功
errorCode 错误码 String(8) 错误码;失败时返回的错误代码,可以为空。
errorMsg 错误描述 String(256) 错误描述;失败时返回的错误信息,可以为空。
signMsg 签名信息 String(2048) 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 errorCode={errorCode}&errorMsg={errorMsg}&merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&version={version}

错误代码

code(错误代码) msg(错误描述)
110001 必须提交的请求参数 []未提交
110002 请求的数据项[]长度最大允许[],实际[]
110003 请求的数据项[]格式错误,合法格式请参照接入文档
110005 请求的数据项[]不合法
110006 请求的交易币别[]暂不支持
113001 营业执照OCR识别不通过,缺失字段:
113002 营业执照OCR识别不通过,[]
113003 [法人/联系人]身份证OCR识别不通过,缺失字段:
113004 [法人/联系人]身份证OCR识别不通过,[]
113005 营业执照与提交的信息不符[]
113006 企业身份验证不通过
113007 法人身份证与提交的信息不符[]
113008 联系人身份证与提交的信息不符[]
113009 工商网该企业状态异常:[]
113010 营业执照与工商网信息不符[]
113011 联系人证件有效期起与提交的信息不符[]
120001 用户不存在
120002 非法操作
120003 开户失败
120004 身份信息或卡信息有误
120010 请求的商户号[]不存在,请检查后重试
120011 请求的商户号[]状态异常,不允许交易
120092 请求的机构[]不存在
120093 请求机构状态异常,不允许操作
120094 非法请求,商户不属于机构
120095 [证件]到期日须在[{1}]天后
130001 报备失败
140001 第三方签约失败
140002 当前商户合同有效期未配置或必须大于当天日期,请联系管理员
140003 第三方签约失败,调用接口网络请求超时
150007 受益人身份鉴权失败
150008 受益人身份信息{0}不能为空
150009 受益人身份信息不能为空
150010 受益人身份信息格式错误
20001 订单信息的签名内容不正确
999999 系统异常或未知错误

用户开户修改

正式环境发送异步通知只支持443或80端口 其他端口暂时不支持

本文档定义CHINAPNR结汇入境业务开户接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

1 个人用户修改

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/individualUpd.htm
正式环境 https://global.chinapnr.com/mcs/individualUpd.htm

1.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户自动生成,请求流水号系统唯一,如:GRKH202112120930001
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
userId 用户号 String(8) 不可空 开户成功返回的用户号
platformUserId 用户平台ID String(32) 可空 用户在商户系统中的唯一编号
platformRegTime 平台用户注册时间 String(16) 可空 yyyyMMddHHmmss
certExpDateStart 证件有效期起始 String(8) 可空 yyyyMMdd。
certExpDateEnd 证件有效期结束 String(8) 可空 yyyyMMdd。如无则填写20990101
mobileNumber 手机号 String(11) 可空 -
address 地址 String(128) 可空 -
email 电子邮箱 String(40) 可空
bankCode 开户银行 String(20) 可空 附件代发银行编码
acctType 账户类型 String(1) 可空 2-对私
bankAcct 账号 String(20) 可空 -
acctName 户名 String(50) 可空 用户同名
province 省份 String(8) 可空 附录省份编码
area 地区 String(45) 可空 附录地区编码
bankBranch 支行名称 String(50) 可空 -
uniteBankCode 联行号 String(20) 可空 见附录:汇付国际联行号清单
certPhotoCopyF 证件影印件正面 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
certPhotoCopyB 证件影印件反面 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
asyncNoticeFlag 是否接收异步通知 String(1) 不可空 1:有异步;0:无异步。为0时,只会有同步应答
noticeUrl 后台通知地址 String(256) 条件必输 互联网可访问。用于接收异步结果。asyncNoticeFlag为1时必填。
ext1 扩展字段1 String(2000) 可空
ext2 扩展字段2 String(512) 可空
occupationCode 职业 String(10) 不可空 请查看附录职业编码
nationalCode 国籍 String(10) 不可空 请查看附录国家编码
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	-	仅对非空字段进行加签
acctName={acctName}&acctType={acctType}&address={address}&area={area}&bankAcct={bankAcct}&bankBranch={bankBranch}&bankCode={bankCode}&certId={certId}&certType={certType}&email={email}&merchantAcctId={merchantAcctId}&mobileNumber={mobileNumber}&name={name}&nationalCode={nationalCode}& noticeUrl={noticeUrl}&occupationCode={occupationCode}&platformRegTime={platformRegTime}&platformUserId={platformUserId}&province={province}&requestId={requestId}&requestTime={requestTime}&signType={signType}&uniteBankCode={uniteBankCode}&userId={userId}&version={version}

1.2 应答

同步/异步返回参数说明:

商户在接受到Chinapnr异步通知后,应返回成功接受内容,如"SUCCESS"。

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
merchantAcctId 商户号 String(32) 原样返回
platformUserId 用户平台ID String(32) 原样返回
ext1 扩展字段1 String(512) 原样返回
ext2 扩展字段2 String(512) 原样返回
userId 汇付唯一用户号 String(11) result为00时返回
result 状态 String(2) 01-审核中 02-失败 00-成功
errorCode 错误码 String(8) 错误码;失败时返回的错误代码,可以为空。
errorMsg 错误描述 String(256) 错误描述;失败时返回的错误信息,可以为空。
signMsg 签名信息 String(2048) 验签串
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 errorCode={errorCode}&errorMsg={errorMsg}&merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&userId={userId}&version={version}

用户修改

正式环境发送异步通知只支持443或80端口 其他端口暂时不支持

本文档定义CHINAPNR结汇入境业务开户接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

2 企业用户修改

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/mcs/enterpriseUpd.htm
正式环境 https://global.chinapnr.com/mcs/enterpriseUpd.htm

2.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户自动生成,请求流水号系统唯一,如:GRKH202112120930001
requestTime 请求时间 String(16) 不可空 yyyyMMddHHmmss
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
userId 用户号 String(32) 不可空
platformUserId 用户平台ID String(32) 可空 用户在商户系统中的唯一编号
platformRegTime 平台用户注册时间 String(16) 可空 yyyyMMddHHmmss
name 企业名称 String(64)) 可空 -
shortName 企业简称 String(20) 可空 -
type 企业类型 String(2) 可空 1-个体工商户 2-企业
legalPerson 法人姓名 String(32) 可空 -
legalCertType 法人证件类型 String(2) 可空 00-身份证
01-护照
02-军官证
03-士兵证
04-回乡证
06-警官证
08-台胞证
13-其他
legalCertId 法人证件号 SString(32) 可空 legalCertType=00时,证件号为固定18位身份证号码,如果身份证号包含X,请保持字母为大写
legalCertExpDateStart 法人证件生效日期 String(8) 可空 格式yyyyMMdd。
legalCertExpDateEnd 法人证件时效日期 String(8) 可空 格式yyyyMMdd。如无则填写20990101
legalMobile 法人手机号 String(11) 可空 -
contactName 联系人姓名 String(32) 可空 -
contactCertType 联系人证件类型 String(2) 可空
contactCertId 联系人证件号 String(32) 可空 如果身份证号包含X,请保持字母为大写
contactCertExpDateStart 联系人证件生效日期 String(8) 可空 格式yyyyMMdd。
contactCertExpDateEnd 联系人证件失效日期 String(8) 可空 格式:yyyyMMdd
若证件上无有效期,则填写20990101
contactMobile 联系人手机号 String(11) 可空 -
contactEmail 联系人邮箱 String(40) 可空 -
address 企业地址 String(128) 可空 -
phone 企业电话 String(15) 可空 -
orgCode 组织机构代码 String(45) 可空 组织机构代码
orgExpDateStart 组织机构代码证生效日期 String(8) 可空 日期格式:yyyyMMdd
orgExpDateEnd 组织机构代码失效日期 String(8) 可空 格式:yyyyMMdd,若证件上无有效期,则填写20990101
bizLicenseCode 营业执照号 String(45) 可空 工商登记号或统一社会信用代码。开户后不可变更。
bizLicenseExpDateStart 营业执照生效日期 String(8) 可空 日期格式:yyyyMMdd
bizLicenseExpDateEnd 营业执照失效日期 String(8) 可空 日期格式:yyyyMMdd。若证件上无有效期,则填写20990101
taxRegCode 税务登记号 String(64) 可空
taxRegExpDateStart 税务登记证生效日期 String(8) 可空 日期格式:yyyyMMdd
taxRegExpDateEnd 税务登记证失效日期 String(8) 可空 格式:yyyyMMdd, 税务登记号不为空时必填,若证件上无有效期,则填写20990101
bankCode 开户银行 String(20) 可空 附件代发银行编码
acctType 账户类型 String(1) 可空 1-对公 2-对私
bankAcct 账号 String(20) 可空 -
acctName 户名 String(50) 可空 对公时须与企业名称一致;
对私时须与法人姓名一致
province 省份 String(8) 可空 附录省份编码
area 地区 String(45) 可空 附录地区编码
bankBranch 支行名称 String(50) 可空 -
uniteBankCode 收款行联行号 String(20) 可空 见附录:汇付国际联行号清单
legalCertPhotoCopyF 法人证件的影印件正面 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
legalCertPhotoCopyB 法人证件的影印件反面 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
contactCertPhotoCopyF 联系人证件的影印件正面 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
contactCertPhotoCopyB 联系人证件的影印件反面 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
bizLicensePhotoCopy 营业执照影印件 - 可空 文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
orgPhotoCopy 组织机构代码证影印件 - 可空 若类型为企业,且为旧证时必填,文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
taxRegPhotoCopy 税务登记证影印件 - 可空 若类型为企业,且为旧证时必填,文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
openLicensePhotoCopy 开户许可证影印件 - 可空 若类型为企业,且为旧证时必填,文件字节Base64建议压缩,一个请求中,影印件图片总大小不得超过10M
asyncNoticeFlag 是否接收异步通知 String(1) 不可空 固定值1,有异步
noticeUrl 后台通知地址 String(256) 条件必输 互联网可访问。asyncNoticeFlag为1,必填
ext1 扩展字段1 String(2000) 可空
ext2 扩展字段2 String(512) 可空
industryCode 行业 String(10) 不可空 请查看附录行业编码
nationalCode 企业所在国家地区 String(10) 不可空 请查看附录国家编码
signMsg 签名信息 String(2048) 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	仅对非空字段进行加签
acctName={acctName}&acctType={acctType}&address={address}&area={area}&bankAcct={bankAcct}&bankBranch={bankBranch}&bankCode={bankCode}&bizLicenseCode={bizLicenseCode}&contactCertId={contactCertId}&contactCertType={contactCertType}&contactEmail={contactEmail}&contactMobile={contactMobile}&contactName={contactName}&industryCode={industryCode}&legalCertId={legalCertId}&legalCertType={legalCertType}&legalMobile={legalMobile}&legalPerson={legalPerson}&merchantAcctId={merchantAcctId}&name={name}&nationalCode={nationalCode}&orgCode={orgCode}&phone={phone}&platformRegTime={platformRegTime}&platformUserId={platformUserId}&province={province}&requestId={requestId}&requestTime={requestTime}&shortName={shortName}&signType={signType}&taxRegCode={taxRegCode}&type={type}&uniteBankCode={uniteBankCode}&userId={userId}&version={version}

2.2 应答

同步/异步返回参数说明:

商户在接受到Chinapnr异步通知后,应返回成功接受内容,如"SUCCESS"。

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(16) 原样返回
merchantAcctId 商户号 String(32) 原样返回
platformUserId 用户平台ID String(32) 原样返回
userId 汇付唯一用户号 String(11) result为00时返回
result 状态 String(2) 01-审核中 02-失败 00-成功
errorCode 错误码 String(8) 错误码;失败时返回的错误代码,可以为空。
errorMsg 错误描述 String(256) 错误描述;失败时返回的错误信息,可以为空。
ext1 扩展字段1 String(512) 原样返回
ext2 扩展字段2 String(512) 原样返回
signMsg 签名信息 String(2048) 验签串
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下字段字母顺序进行加签
- 仅对非空字段进行加签 errorCode={errorCode}&errorMsg={errorMsg}&merchantAcctId={merchantAcctId}&platformUserId={platformUserId}&requestId={requestId}&requestTime={requestTime}&result={result}&signType={signType}&userId={userId}&version={version}

商户结汇接口

本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
本页面接口通过XML格式提交报文,加签为全报文加签名,返回以XML报文,具体可在资源下载中下载demo:结汇代发API
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

报文必填标识:M(必填选项) O(可选选项) C(条件必选,特定条件先必填); 报文必填标识:AN(字母及数字) N(数字) A(字母) D(日期,14位数值:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]) X(其它任意字符)

请求地址

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/sell/receivesell.htm
正式环境 https://global.chinapnr.com/sell/receivesell.htm

1.1 T0结汇结果通知

1.1请求

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
NOTIFY 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 会员账号,由我司提供的商户号+01,共13位数字
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200000:T0结汇处理结果通知
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RECEIPT_ID 收汇流水号 AN32 O 汇付唯一流水号
BANK_ID 收款银行编号 AN32 M 目前默认BOC
BANK_ACC_ID 收款银行账号 AN32 M 汇付收款银行账号
BATCH_NO 商户业务流水号 AN32 O 商户汇款凭证上的业务编号,便于商户确定对应哪笔汇款
BANK_TRXID 银行汇入汇款编号 AN32 M
REMIT_TIME 汇款时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CURRENCY 币种 X3 M
PAY_AMOUNT 到账金额 N15 M 格式为实际金额扩大100倍
PAYOUT_AMT_FX 可下发金额(汇款币种) N15 M 格式为实际金额扩大100倍。币种同到账币种
SHCEPP_FEE_FX 手续费金额(汇款币种) N15 M 格式为实际金额扩大100倍。币种同到账币种。手续费后收时该金额为0
ORI_PAY_AMOUNT 原汇款金额(33B场) N15 O 格式为实际金额扩大100倍
RATE 汇率 N15 O 日元、韩元:实际汇率扩大100万倍。其他币种实际汇率扩大10000备。如日元汇率为0.05904,传给商户的汇率为59040;如美元汇率为6.5321,传给商户的汇率为65321。到账币种为外币时必填
RATE_TIME 汇率时间 D C 格式:yyyyMMddHHmmss,到账币种为外币时必填
SETTLE_AMT 结汇人民币金额 N15 M 格式为实际金额扩大100倍提交。等于PAYOUT_AMT+ SHCEPP_FEE
CHARGE_DETAILS 费用细则(71A) X3 O SHA/BEN/OUR
RECEIVER_CHARGES 收报行的收费(71G) N15 O 格式为实际金额扩大100倍
SENDER_REFERENCE 汇款参考号(20场) X16 O
ORDER_BANK 付汇银行信息 X256 O
PAY_ACC 汇款人账号 X256 O
PAYER_NAME 汇款人名称 X256 O
PAYER_ADDRESS 汇款人地址 X256 O
REMIT_INFO 交易附言(70场) X256 O
SENDER_BIC 发报行BIC CODE X11 O
PAYOUT_AMT 可下发金额(人民币) N15 M 格式为实际金额扩大100倍。币种人民币
SHCEPP_FEE 手续费金额(人民币) N15 M 格式为实际金额扩大100倍。币种人民币。手续费后收时该金额为0
FEE_AMT 手续费金额 N15 O 备用。格式为实际金额扩大100倍提交。
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
ENDPARAMS 结束标签 - - -
ENDNOTIFY 结束标签 - - -

1.1.1示例报文

通知报文以xml方式返回,如:
      
    

1.2应答

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200000:T0结汇处理结果通知
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RESULT 接收确认 AN30 M 000000 接收成功
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

1.2.1示例报文

应答报文以xml方式返回,如:
      
    

2.交易明细备案

2.1请求

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
REQUEST 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 会员账号,由我司提供的商户号+01,共13位数字
TERMINALID 虚拟终端号 AN8 M 汇付给的虚拟终端号
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100010:结汇申请
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RECEIPT_ID 收汇流水号 AN32 O 汇付唯一流水号
BATCH_NO 结汇申请批次号 AN32 M 对应同一笔汇款;同一商户号唯一
ORD_NUM 请求序号 AN10 M 同一批次超过5000笔时需分多次备案。
格式为:当前批次号/总批次号。
默认为:1/1
总批次号最大99
REQTIME 请求时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CUR 币种 X3 M 见附录币别代码
SUM_CNT 批次总笔数 N15 M 批次的总笔数
SUM_AMT 批次总金额 N15 M 批次总金额,格式为实际金额扩大100倍提交。如10000,表示100元
PAY_TCNT 总笔数 N15 M 本次请求的总笔数,单次备案数据不超过5000笔。
如批次总笔数超过5000笔,可分批次备案
PAY_TAMT 总金额 N15 M 本次请求的总金额,格式为实际金额扩大100倍提交。
如10000,表示100元
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
REVIEW_URL 审核结果通知地址 X256 M 需外网可访问的地址
RESULT_URL 结汇结果通知地址 X256 M 需外网可访问的地址
DETAILS 交易明细 - M 见如下2.1.1说明
ENDPARAMS 结束标签 - - -
ENDNOTIFY 结束标签 - - -

2.1.1 交易明细格式说明

各字段以|分隔,各行以回车换行符分隔

序号 字段名 格式 是否必输 说明
1 明细流水号 AN32 M 同一商户号下唯一
2 订单编号 AN32 M 订单在电商/电商平台的订单号,如amazon的订单号
3 业务日期 D M 格式:yyyyMMddHHmmss
例如:20161117020101
4 收款方类型 X1 M 默认P – 个人
C-对公
5 收款人证件类别 X2 M 默认00
00-身份证
01–护照
02–军官证
03–士兵证
04–回乡证
05–户口本
06–外国护照
07–其它个人证件类型
61–组织机构代码证
62–营业执照
63–税务登记证
66–统一社会信用代码
69–其它机构证件
6 收款人证件号 X64 M 321281119300000000
7 收款人名称 X128 M 张三
8 收款人帐号 X32 M 6217000000000000000
9 收款银行代码或名称 X32 M 详见字典
10 付款币种 X3 M 参考币种代码。
11 付款金额 N17 M 格式为实际金额扩大100倍提交。
如1000,表示10元
12 商品描述 X4000 M 请按如下json格式填写订单对应商品及收货人的信息:
{"customInfo":{"addr":"客户地址","name":"客户名称","tel":"客户联系电话 "},"goodInfo":[{"cnt":"3","name":"货物名称 1","price":"12.31"},{"cnt":"1","name":"货物名称 2","price":"100.31"}], "storeInfo":{"storeId":"amazon_eq3142412342","storelink": "12010" },"totalCnt":"4","cur":"USD","totalAmt":"1000","logInfo":{"logCompany":"物流公司名称 ","logNo":"物流单号"},"productId":"商品大类编号"}
字段解释:
customInfo:支付人或收货人信息
  addr:地址  
  name:姓名  
  tel:联系电话  
goodInfo:商品信息,可多个,当订单包含多个商品时请按商品填写
  cnt:商品数量,例:3。如商品件数,机票数量,酒店数量等
  name:商品名称(按照业务类型区分)业务类型:商品名称 货物:购买商品的名称、机票:航空公司名称|机票号 酒店:酒店名称、留学:学校名称|录取通知书编号
  price:商品单价,例:13.36
storeInfo:店铺信息  
  storeId:平台名称_店铺ID,例:AMAZON_er341342143 《平台名称填写规则》
  storelink:店铺链接,例:www.amazon.com/ er341342143
totalCnt:商品总数量,例:30
cur:标价币种,例:USD
totalAmt:原订单总金额,例:1000.35
logInfo:物流信息  
  logCompany:物流公司名称,例:DHL
  logNo:物流公司单号,例:32131231231
  productId:商品大类编号
特别注意:商品信息容易出现set、print、get、post、files、globals、_construct字符,如有请特殊处理,如改成pri-nt,阿里云安全策略会对报文中完整print等一些特殊字符进行拦截
13 备注 X256 O

2.1.1示例报文

请求报文以xml方式返回,如:
      
    

2.2应答

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100010:结汇申请
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RECEIPT_ID 收汇流水号 AN32 O 汇付唯一流水号(1:为空 2:等于结汇通知结果中的流水号)
BATCH_NO 结汇批次号 AN32 M 对应同一笔汇款;
同一商户号唯一
ORD_NUM 请求序号 N2 M 同一批次超过5000笔需分多次备案时,请求序号依次递增。
REQTIME 请求时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CUR 付款币种 X3 M 见附录币别代码
SUM_CNT 批次总笔数 N15 M 批次的总笔数
SUM_AMT 批次总金额 N15 M 批次总金额,格式为实际金额扩大100倍提交。
如1000,表示10元
PAY_TCNT 总笔数 N15 M 本次请求的总笔数,单次备案数据不超过5000笔。
如批次总笔数超过5000笔,可分批次备案
PAY_TAMT 总金额 N15 M 本次请求的总金额,格式为实际金额扩大100倍提交。
如10000,表示100元
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
REVIEW_URL 审核结果通知地址 X256 M 需外网可访问的地址
RESULT_URL 结汇结果通知地址 X256 M 需外网可访问的地址
DETAILS 交易明细 - O 如果处理成功,则不返回该字段。
如果有交易明细未通过校验则返回所有记录并给出错误说明。
格式参照审核结果通知的交易明细格式说明
STATUS 处理结果 N1 M 1:处理成功
2:处理失败
ERR_CODE 错误码 X6 O
ERR_MSG 错误描述 X256 O
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

2.2.1示例报文

应答报文以xml方式返回,如:
      
    

2.3 明细备案审核结果通知

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
NOTIFY 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 会员账号,由我司提供的商户号+01,共13位数字
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100020:结汇申请审核结果通知
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RECEIPT_ID 收汇流水号 AN32 M 汇付唯一流水号
BATCH_NO 结汇批次号 AN32 M 对应同一笔汇款;
同一商户号唯一
ORD_NUM 请求序号 N2 M 同一批次超过5000笔需分多次备案时,请求序号依次递增。最大999次
REQTIME 请求时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CUR 付款币种 X3 M 见附录币别代码
SUM_CNT 批次总笔数 N15 M 批次的总笔数
SUM_AMT 批次总金额 N15 M 批次总金额,格式为实际金额扩大100倍提交。
如10000,表示100元
PAY_TCNT 总笔数 N15 M 本次请求的总笔数,单次备案数据不超过5000笔。
如批次总笔数超过5000笔,可分批次备案
PAY_TAMT 总金额 N15 M 本次请求的总金额,格式为实际金额扩大100倍提交。
如10000,表示100元
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
REVIEW_URL 审核结果通知地址 X256 M 需外网可访问的地址
RESULT_URL 结汇结果通知地址 X256 M 需外网可访问的地址
DETAILS 交易明细 - O 如果审核成功,则不返回该字段。
如果有交易明细审核拒绝则返回所有记录并给出错误说明。
格式参照审核结果通知的交易明细格式说明
STATUS 处理结果 N1 M 1:审核成功
2:审核拒绝
ERRERCODE 错误码 X6 O
ERRERMSG 错误描述 X256 O
ENDPARAMS 结束标签 - - -
ENDNOTIFY 结束标签 - - -

2.3.1交易明细格式说明

各字段以|分隔,各行以回车换行符分隔

序号 字段名 格式 是否必输 说明
1 明细流水号 AN32 M 原样返回
2 订单编号 AN32 M 原样返回
3 业务日期 D M 原样返回
4 收款方类型 X1 M 原样返回
5 收款人证件类别 X2 M 原样返回
6 收款人证件号 X64 M 原样返回
7 收款人名称 X128 M 原样返回
8 收款人帐号 X32 M 原样返回
9 收款银行代码或名称 X32 M 原样返回
10 付款币种 X3 M 原样返回
11 付款金额 N17 M 原样返回
12 商品描述 X256 M 原样返回
13 备注 X256 O 原样返回
14 处理说明 X256 O 明细处理有误时会给出错误描述,明细处理成功则不会有此列

2.3.2示例报文

通知报文以xml方式返回,如:  
    

2.4应答

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100020:结汇申请审核结果通知
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RESULT 接收确认 AN30 M 000000 接收成功
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

2.4.1示例报文

应答报文以xml方式返回,如:
      
    

余额支付

本文档定义CHINAPNR账户余额支付接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
只支持同商户下的账户间交易,包括:
(1)商户付款给旗下用户;
(2)用户付款给所属商户;
(3)用户付款给同商户下的其他用户。
不能商户或用户自己转自己

1 余额支付申请接口

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/acctransfer/transfer.htm
正式环境 https://global.chinapnr.com/acctransfer/transfer.htm

1.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestTime 请求时间 String(32) 不可空 yyyyMMddHHmmss
agentAcctId 代理商账号 String(16) 可空 默认不填
merchantAcctId 商户会员号 String(32) 不可空 由我司提供(即11位商户号+01)例如商户号为10012021109,则此处填写1001202110901
terminalId 终端号 String(32) 不可空 由我司提供,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
batchNo 批次号 String(32) 不可空 商户系统中唯一标识该笔批次,失败重发请更换批次号
payCur 付款币种 String(3) 不可空 默认CNY
payTCnt 总笔数 String(11) 不可空 -
payTAmt 总金额 String(15) 不可空 单位分,明细总金额之和
ext1 扩展字段1 String(256) 可空 备用
ext2 扩展字段2 String(256) 可空 备用
noticeUrl 结果通知地址 String(256) 不可空 备用
details 支付明细 - 不可空 见明细字段说明,批次支持明细笔数2000笔,例:1624938759507|1624938759507|163|M|10012159865|H|20000003|测试|ext1|ext2
dupChkFlag 重复拦截校验标志 1 可空 重复拦截标志,默认值为1校验
0-不校验
1- 校验
校验规则:
批次明细按以下格式拼接,当日存在完全相同的交易则拦截不允许交易
付款人类型+付款人账号+收款人类型+收款人账号+币别+金额
signMsg 签名信息 - 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装

1.支付明细字段说明:各字段以|分隔,各行以半角“;”分隔,批次支持明细笔数2000笔

序号 字段 长度 是否必输 说明
1 明细流水号 32 M 同一商户号下唯一,用以区分请求记录,失败重发请更新明细流水号
2 商家业务订单号 64 M 同一商户号下唯一,用以标识商户系统内部该笔交易的业务订单号,便于全局溯源,例如通过该订单号查看业务相关的背景、凭证材料等
3 金额 15 M 格式为实际金额扩大100倍提交。如1000,表示10元
4 付款人类型 1 M M:商户
H:用户
5 付款人类型 15 M 付款人为商户时,填写本商户号的商户号;
付款人为用户时,填写用户开户时得到的8位用户号
6 收款人类型 1 M M:商户
H:用户
7 收款人账户号 15 M 收款人为商户时,填写本商户的商户号;
收款人为用户时,填写用户开户时得到的8位用户号
8 付款背景 256 M 按实际情况填写,支持中文、数字、英文字母、-或_,不支持特殊字符
9 扩展字段1 256 O 备用,值可为空但栏位必须存在
10 扩展字段2 256 O 备用,值可为空但栏位必须存在
-	-	仅对非空字段进行加签
version={version}&signType={signType}&requestTime={requestTime}&agentAcctId={agentAcctId}&merchantAcctId={merchantAcctId}&terminalId={terminalId}&batchNo={batchNo}&payCur={payCur}&payTCnt={payTCnt}&payTAmt={payTAmt}&ext1={ext1}&ext2={ext2}& noticeUrl={noticeUrl}&details={details}&dupChkFlag={dupChkFlag}

1.2 应答

同步/异步返回参数说明:

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestTime 请求时间 String(14) 原样返回
merchantAcctId 商户号 String(32) 原样返回
terminalId 终端号 String(32) 原样返回
batchNo 批次号 String(32) 原样返回
payCur 付款币种 String(3) 原样返回
payTCnt 总笔数 String(11) 原样返回
payTAmt 总金额 String(15) 原样返回
ext1 扩展字段1 String(256) 原样返回
ext2 扩展字段2 String(256) 原样返回
noticeUrl 结果通知地址 String(256) 原样返回
details 提现明细 - 存在错误明细时返回(只返回错误明细),格式见返回明细字段说明○2
status 状态 String(1) 1、受理成功
2、受理失败
errorCode 错误码 String(6) 格式校验未通过时返回该字段
errorMsg 错误描述 String(256) 格式校验未通过时返回该字段

○2返回明细字段说明:各字段以|分隔,各行以半角“;”分隔

序号 字段 长度 是否必输 说明
1 明细流水号 32 M 原样返回
2 商家业务订单号 64 M 原样返回
3 金额 15 M 原样返回
4 付款人类型 1 M 原样返回
5 付款人类型 15 M 原样返回
6 收款人类型 1 M 原样返回
7 收款人账户号 15 M 原样返回
8 付款背景 256 M 原样返回
9 扩展字段1 256 O 原样返回
10 扩展字段2 256 O 原样返回
11 失败原因 256 M 失败描述

2 余额支付交易结果异步通知

当批次下所有明细都收到处理完成时,发起此通知,通知地址为申请时提交的noticeUrl。

2.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestTime 请求时间 String(32) 不可空 原样返回
merchantAcctId 商户会员号 String(32) 不可空 原样返回
terminalId 终端号 String(32) 不可空 原样返回
batchNo 批次号 String(32) 不可空 原样返回
payCur 付款币种 String(3) 不可空 默认CNY
payTCnt 总笔数 String(11) 不可空 原样返回
payTAmt 总金额 String(15) 不可空 单位:分
原样返回
ext1 扩展字段1 String(256) 可空 原样返回
ext2 扩展字段2 String(256) 可空 原样返回
noticeUrl 结果通知地址 String(256) 不可空 原样返回
status 交易结果 String(2) - 1-全部成功 2-全部失败 3-部分成功
details 支付明细 - 不可空 仅返回付款失败的交易明细,未在明细中返回的明细均表示付款成功。格式见结果通知明细字段说明○3
signMsg 签名信息 - 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
序号 字段 长度 是否必输 说明
1 明细流水号 32 M 原样返回
2 商家业务订单号 64 M 原样返回
11 失败原因 256 M 失败描述
-	仅对非空字段进行加签
version={version}&signType={signType}&requestTime={requestTime}&merchantAcctId={merchantAcctId}&terminalId={terminalId}&batchNo={batchNo}&payCur={payCur}&payTCnt={payTCnt}&payTAmt={payTAmt}&ext1={ext1}&ext2={ext2}& noticeUrl={noticeUrl}&details={details}&status={status}

2.2 应答

商户端接收到通知结果并处理完毕后需明确返回字符串:<result>000000</result>表示接收并处理成功。如果我司没有成功收到<result>000000</result>,系统会按照一定策略通知6次或收到<result>000000</result>后结束停止,以先到者为准。

3.余额支付交易结果查询(单笔)

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/acctransfer/transferQuery.htm
正式环境 https://global.chinapnr.com/acctransfer/transferQuery.htm

3.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
version 网关版本 String(10) 不可空 固定值:1
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 商户系统中唯一性ID
requestTime 请求时间 String(14) 不可空 yyyyMMddHHmmss
agentAcctId 代理商账号 String(32) 可空 默认不填
merchantAcctId 商户号 String(32) 不可空 会员账号,由我司提供的商户号+01,共13位数字
terminalId 终端号 String(32) 不可空 由我司提供,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
origbatchNo 原付款批次号 String(32) 不可空 商户系统中唯一标识该笔批次
origtransNo 原付款明细流水号 String(32) 不可空 关联明细字段的唯一流水号
origApplyDate 原批次申请日期 String(8) 不可空 为批次申请提交的日期
格式:yyyyMMdd例如:20180920
signMsg 签名信息 - 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	按以下固定字段顺序进行加签
- 仅对非空字段进行加签 version={version}&signType={signType}&requestId={requestId}&requestTime={requestTime}&agentAcctId={agentAcctId}&merchantAcctId={merchantAcctId}&terminalId={terminalId}&origbatchNo={origbatchNo}&origtransNo={origtransNo}&origApplyDate={origApplyDate}

3.2 应答

同步返回参数说明:

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(14) 原样返回
merchantAcctId 商户号 String(32) 原样返回
terminalId 终端号 String(32) 原样返回
origbatchNo 原付款批次号 String(32) 原样返回
origtransNo 原付款明细流水号 String(32) 原样返回
origApplyTime 原批次申请时间 String(14) 原批次申请时间,格式:yyyyMMddHHmmss
例如:20180503124565
cur 币别 String(3) 币别,默认CNY
amt 金额 String(15) 格式为实际金额扩大100倍提交。如1000,表示10元
feeAmt 手续费 String(15) 手续费。格式为实际金额扩大100倍提交。如1000,表示10元
ext1 扩展字段1 String(256) 原样返回
ext2 扩展字段1 String(256) 原样返回
payerAcctType 付款人账户类型 1 原样返回
payerAcctNo 付款人账户号 String(15) 原样返回
payeeAccttype 收款人账户类型 String(1) 原样返回
payeeAcctNo 收款人账户号 String(15) 原样返回
status 状态 String(2) 0.请求参数错误,
1.处理中,
2.付款成功,
3.付款失败,
4.交易不存在(请求流水不存在或原批次受理失败均为交易不存在)
errorCode 错误码 String(6) 当STATUS为0、3、4时返回
errorMsg 错误描述 String(256) 当STATUS为0、3、4时返回

注: STATUS=0,4时,除商户请求提交的字段和 STATUS、ERR_CODE、ERR_MSG外,均返回空值

商户代发接口目录:

商户代发接口

正式环境发送异步通知只支持443或80端口 其他端口暂时不支持。

本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
本页面接口通过XML格式提交报文,加签为全报文加签名,返回以XML报文,具体可在资源下载中下载demo结汇代发api
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

报文必填标识:M(必填选项) O(可选选项) C(条件必选,特定条件先必填); 报文必填标识:AN(字母及数字) N(数字) A(字母) D(日期,14位数值:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]) X(其它任意字符)

请求地址

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/sell/receivesell.htm
正式环境 https://global.chinapnr.com/sell/receivesell.htm

1.代发申请

1.1请求

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
REQUEST 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 会员账号,由我司提供的商户号+01,共13位数字
TERMINALID 虚拟终端号 AN8 M 汇付给的虚拟终端号,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100040:代发申请
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
BATCH_NO 代发批次号 AN32 M 商户系统中唯一性ID,代发失败需重新生成
REQTIME 请求时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CUR 币种 X3 M 默认CNY
PAY_TCNT 总笔数 N15 M
PAY_TAMT 总金额 N15 M 本次请求的总金额,格式为实际金额扩大100倍提交。
如10000,表示100元
PURPOSE 用途 X256 M 请从如下值中选一种填入:
1.销售结算款
2.佣金/工资
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
RESULT_URL 结果通知地址 X256 M 需外网可访问的地址
REVIEW_URL 校验结果通知地址 X256 M 已废弃,可与RESULT_URL填写一致
DETAILS 交易明细 - M 见如下1.1.1说明,批次支持最大明细5000笔
ENDPARAMS 结束标签 - - -
ENDNOTIFY 结束标签 - - -

1.1.1 代发明细格式说明

各字段以|分隔,各行以回车换行符分隔,当前批次支持最大明细5000笔

序号 字段名 格式 是否必输 说明
1 代发明细流水号 X32 M 同一商户号下唯一,代发失败需重新生成明细流水
2 金额 N15 M 格式为实际金额扩大100倍提交。
如1000,表示10元
3 收款银行代码或名称 X256 C 详见附录:银行码表+省市代码
收款账户类型为H/M时,为空即可;
收款账户类型不为H/M时,请根据银行码表填写完整准确的银行名称。
4 收款账户的类型 X1 M 收款账户的类型
‘C’–对公银行账户
‘P’–对私银行账户
‘H’–汇付用户账户
‘M’–汇付商户账户
‘S’–对私存折账户
‘G’–对公存折账户
5 账号 N32 M 银行账号
6 户名 X32 M 户名
7 证件类型 AN2 M 默认00
00-身份证
01–护照
02–军官证
03–士兵证
04–回乡证
05–户口本
06–外国护照
07–其它个人证件类型
61–组织机构代码证
62–营业执照
63–税务登记证
66–统一社会信用代码
69–其它机构证件
8 证件号码 X32 M 如果身份证号包含X,请保持字母为大写
9 省份 X30 C 见附录:银行码表+省市代码
收款账户类型为C/G时,省市/联行号2选1;
收款账户类型为P/S/H/M时,省市为空即可。
10 地区 X30 C 见附录:银行码表+省市代码
收款账户类型为C/G时,省市/联行号2选1;
收款账户类型为P/S/H/M时,省市为空即可。
此处为地级市或省辖县,若客户的提供的是县或县级市,请按其所属的地级市填写。
11 支行名 X256 O 支行全称。
如:招行银行南京分行城东支行
12 用途 X256 M 请从如下值中选一种填入:
销售结算款
佣金/工资
13 对应结汇明细 X20000 O 对应交易明细备案接口中的“结汇申请批次号”或“明细流水号”,多个用逗号“,”分隔
14 扩展字段1 X256 O 为避免商户同金额、卡号的不同出款申请被疑似重复拦截,不同的提现申请,建议传入全局唯一值
15 扩展字段2 X256 O
16 联行号 X12 C 12位纯数字,收款账户类型为C/G时,省市/联行号2选1;
见附录:汇付国际联行号清单
测试数据:105554508399
17 备注 X100 O 该字段会通过银网联送给收款银行,但收款人能否看到该字段的内容,还要看收款行的处理逻辑。
18 到账时效 X1 C 取值: 1:T+0,2:T+1;
1.若终端下配置多个到账时效;且收款账户的类型为C和P,S和G时,必填,需指定到账时效;
2.若终端下配置单个到账时效;非必填,默认获取配置到账时效。

1.1.2示例报文

请求报文以xml方式返回,如:
      
    

1.2应答

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100040:代发申请
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
BATCH_NO 代发批次号 AN32 M 商户系统中唯一性ID
REQTIME 请求时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CUR 付款币种 X3 M 默认CNY
PAY_TCNT 总笔数 N15 M
PAY_TAMT 总金额 N15 M
PURPOSE 用途 X256 M 佣金/工资
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
RESULT_URL 结果通知地址 X256 M 需外网可访问的地址
DETAILS 代发明细 - O 参见3.2.1
STATUS 处理结果 N1 M 1:校验处理成功
2:校验处理失败
ERRERCODE 错误码 X6 O
ERRERMSG 错误描述 X256 O
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

1.2.1示例报文

应答报文以xml方式返回(只返回错误的明细信息),如:
      
    

1.3 代发结果通知

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
NOTIFY 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100060:代发结果通知
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
BATCH_NO 代发批次号 AN32 M 商户系统中唯一性ID
REQTIME 请求时间 D M 格式:yyyyMMddHHmmss
例如:20161117020101
PAY_CUR 付款币种 X3 M 默认CNY
PAY_TCNT 总笔数 N15 M
PAY_TAMT 总金额 N15 M
PURPOSE 用途 X256 M 佣金/工资
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
RESULT_URL 结果通知地址 X256 M 需外网可访问的地址
DETAILS 代发明细 - O 代发成功时返回为空;代发失败时返回。
STATUS 处理结果 N1 M 1:代发处理成功
2:代发处理失败
ERRERCODE 错误码 X6 O
ERRERMSG 错误描述 X256 O
ENDPARAMS 结束标签 - - -
ENDNOTIFY 结束标签 - - -

1.3.1代发明细格式说明

各字段以|分隔,各行以回车换行符分隔

序号 字段名 格式 是否必输 说明
1 代发明细流水号 X32 M 原样返回
2 金额 N15 M 原样返回
3 收款银行代码或名称 X256 M 原样返回
4 收款账户类型 X1 M 原样返回
5 账号 N32 M 原样返回
6 户名 X32 M 原样返回
7 证件类型 AN2 M 原样返回
8 证件号码 X18 M 原样返回
9 省份 X30 M 原样返回
10 地区 X30 M 原样返回
11 支行名 X256 M 原样返回
12 用途 X256 M 原样返回
13 对应结汇明细 X20000 O
14 扩展字段1 X256 O 原样返回
15 扩展字段2 X256 O 原样返回
16 处理说明 X256 O 明细处理有误时会给出错误描述,明细处理成功则不会有此列

1.3.2示例报文

请求报文以xml方式返回(只返回错误的明细信息,存在错误明细时,状态为2),如:
      
    

1.4应答

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 100060:代发结果通知
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
RESULT 接收确认 AN30 M 000000 接收成功
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

1.4.1示例报文

应答报文以xml方式返回,如:
					
					
      
    

2.代发查询接口

2.1请求

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
REQUEST 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 汇付给的虚拟终端号,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200030
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
BATCH_NO 代发批次号 X32 M 申请时提交的批次号
REMIT_REQ_ID 明细流水号 X32 M 申请时提交的明细流水号
APPLY_DATE 原交易日期 D M 格式:yyyyMMdd
例如:20180503
ENDPARAMS 结束标签 - - -
ENDNOTIFY 结束标签 - - -

2.1.1示例报文

请求报文以xml方式返回,如:
      
    

2.2返回

汇付 –> 商户(同步)

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN15 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200030
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
BATCH_NO 代发批次号 X32 M 申请时提交的批次号
REMIT_REQ_ID 明细流水号 X32 M 申请时提交的明细流水号
APPLY_TIME 交易时间 D M 原交易申请时间,格式:
yyyyMMddHHmmss
例如:20180503124565
CUR 币别 X3 M 币别,默认CNY
AMT 金额 N15 M 格式为实际金额扩大100倍提交。
如1000,表示10元
FEE_AMT 手续费 N15 O 手续费。格式为实际金额扩大100倍提交。
如10000,表示10元
BANK_ID 银行编码 X256 O 原样返回
ACCT_TYPE 账户类型 X1 M 原样返回
BANK_ACCT 收款账号 N32 M 原样返回
PAYEE_NAME 收款人户名 AN2 M 原样返回
PAYEE_ID_TYPE 收款人证件类型 AN2 M 原样返回
PAYEE_ID_NO 收款人证件号 X32 M 原样返回
PROVINCE 省份 X30 M 原样返回
CITY 地区 X30 M 原样返回
BANK_BRANCH 支行名称 X256 M 原样返回
PURPOSE 用途 X256 O 原样返回
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
STATUS 状态 X1 M 0.请求参数错误,1.处理中,
2.代发成功,3.代发失败,
4.交易不存在
ERRERCODE 错误码 X6 O 当STATUS为0、3、4时返回
ERRERMSG 错误描述 X64 O 当STATUS为0、3、4时返回
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -
注: STATUS=0,4时,PARAMS节点下除 STATUS、ERR_CODE、ERR_MSG外,均返回空值

2.2.1示例报文

应答报文以xml方式返回,如:
      
    

附录:代发系统错误码

110001	必须提交的请求参数 []未提交
110002	请求的数据项格式错误
110006	请求的交易币别[]暂不支持
120010	请求的商户号[]不存在,请检查后重试
120011	请求的商户号[]状态异常,不允许交易
120012	请求的终端号[]不存在,请检查后重试
120013	请求的终端号[]状态异常,不允许交易
120014	产品功能未开通,不允许交易
120030	请求的商户号[]/终端号[]对应的结算信息未开通
120032	请求的商户号[]/终端号[]对应的报价币别[]与交易申请的币别[]不一致
120023	交易请求Ip[]未知,不允许交易
200004	您的IP地址不允许交易
400008	商户账户余额不足
110005  交易明细格式有误,详情参见明细错误描述
999999	系统异常或未知错误

测试环境mock交易规则

代发,提现交易规则说明:
transAmt(0,10000) 交易成功
transAmt[10000,50000) 交易失败
银行卡:6257080018600105 姓名:张三

商户余额查询接口

本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
本页面接口通过XML格式提交报文,加签为全报文加签名,返回以XML报文,具体可参考资源下载中demo:结汇代发API
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

报文必填标识:M(必填选项) O(可选选项) C(条件必选,特定条件先必填); 报文必填标识:AN(字母及数字) N(数字) A(字母) D(日期,14位数值:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]) X(其它任意字符)

请求地址

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/sell/receivesell.htm
正式环境 https://global.chinapnr.com/sell/receivesell.htm

1.余额查询

1.1请求

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
REQUEST 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN13 M 会员账号,由我司提供的商户号+01,共13位数字
TERMINALID 虚拟终端号 AN8 M 汇付给的虚拟终端号,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200010:余额查询
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
ACCT_TYPE 账户类型 X3 M 001:2010001001 主账户
004:2280001004 待结算账户
010:2010001010 头寸额度账户
011:1290001011 头寸占用账户
040:2280001040 待分账账户
042:2280001042 直连待结算账户
ACCT_CUR 账户币种 X3 M 默认值:CNY ,人民币
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
ENDPARAMS 结束标签 - - -
ENDREQUEST 结束标签 - - -

1.2应答

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN13 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200010:余额查询
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
ACCT_TYPE 账户类型 X3 M 原样返回
ACCT_CUR 账户币种 X3 M 原样返回
BALANCE 余额 N15 M 格式为实际金额扩大100倍。如1000,表示10元
BALANCE_TIME 余额时间 D M 格式:yyyyMMddHHmmss
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
STATUS 处理结果 X1 M 1:成功 2:失败
ERRORCODE 错误码 X6 O -
ERRORMSG 错误描述 X256 O -
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

用户余额查询接口

本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
本页面接口通过XML格式提交报文,加签为全报文加签名,返回以XML报文,具体可参考资源下载中demo:结汇代发API
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2

报文必填标识:M(必填选项) O(可选选项) C(条件必选,特定条件先必填); 报文必填标识:AN(字母及数字) N(数字) A(字母) D(日期,14位数值:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]) X(其它任意字符)

请求地址

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/sell/receivesell.htm
正式环境 https://global.chinapnr.com/sell/receivesell.htm

1.用户余额查询

1.1请求

商户->汇付

关键字 定义 类型长度 必填 参数说明/示例
REQUEST 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN13 M 会员账号,由我司提供的商户号+01,共13位数字
TERMINALID 虚拟终端号 AN8 M 汇付给的虚拟终端号,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200011:用户余额查询
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
ACCT_TYPE 账户类型 X3 M 001:2010001001 主账户
ACCT_NO 用户账户号 AN11 M 商户用户在汇付国际开立的用户账户号(开户接口时返回)
ACCT_CUR 账户币种 X3 M 默认值: CNY ,人民币
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
ENDPARAMS 结束标签 - - -
ENDREQUEST 结束标签 - - -

1.2应答

汇付->商户

关键字 定义 类型长度 必填 参数说明/示例
RESPONSE 开始标签 - -
GENERAL 开始标签 - -
MERCHANTID 商户号 AN13 M 由汇付给出
TERMINALID 虚拟终端号 AN8 M 由汇付给出
PRODUCTTYPE 产品类型 AN32 M 固定为:JH
VERSION 接口版本 AN10 M 当前版本:1.0
TRXTYPE 交易类别 AN6 M 200011:用户余额查询
ENDGENERAL 结束标签 - - -
PARAMS 开始标签 - - -
ACCT_TYPE 账户类型 X3 M 原样返回
ACCT_NO 用户账户号 AN11 M 原样返回
ACCT_CUR 账户币种 X3 M 原样返回
BALANCE 余额 N15 M 格式为实际金额扩大100倍。如1000,表示10元
BALANCE_TIME 余额时间 D M 格式:yyyyMMddHHmmss
EXT1 扩展字段1 X256 O
EXT2 扩展字段2 X256 O
STATUS 处理结果 X1 M 1:成功 2:失败
ERRORCODE 错误码 X6 O -
ERRORMSG 错误描述 X256 O -
ENDPARAMS 结束标签 - - -
ENDRESPONSE 结束标签 - - -

账户明细流水查询

本文档定义CHINAPNR账户余额支付接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。

1 账户明细流水查询

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/balance/acctBalanceQuery.htm
正式环境 https://global.chinapnr.com/balance/acctBalanceQuery.htm

1.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
inputCharset 字符集 String(1) 不可空 固定值:1
productType 网关版本 String(2) 不可空 固定值:ACC
version 网关版本 String(10) 不可空 固定值:1.0
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 请求流水号,系统唯一
requestTime 请求时间 String(14) 不可空 yyyyMMddHHmmss
acctType 账户类型 String(3) 不可空 001:2010001001 主账户
004:2280001004 待结算账户
010:2010001010 头寸额度账户
011:1290001011 头寸占用账户
040:2280001040 待分账账户
042:2280001042 直连待结算账户
acctCur 账户币种 String(3) 不可空 例:CNY;详细见:币别代码
merchantAcctId 商户会员号 String(32) 不可空 由我司提供(即11位商户号+01)例如商户号为10012021109,则此处填写1001202110901
terminalId 终端号 String(8) 不可空 由我司提供,汇数分配的终端号,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
trxType 交易类别 String(6) 不可空 固定:100000
queryType 查询类型 String(1) 不可空 1 商户账户
2 用户账户
userId 查询的用户ID列表 String(120) 条件 queryType=2时必填。逗号分隔,最多不超过10个用户号
startDate 查询时间起始 String(14) 不可空 格式:yyyyMMddHHmmss(大于等于)
endDate 查询时间结束 String(14) 不可空 格式:yyyyMMddHHmmss(小于)
bgUrl 商户提供的异步通知地址 String(255) 不可空 用于接收异步返回,异步返回包含查询结果的文件名。
signMsg 签名信息 - 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	-	仅对非空字段进行加签
acctCur={acctCur}&acctType={acctType}&bgUrl={bgUrl}&endDate={endDate}&inputCharset={inputCharset}&merchantAcctId={merchantAcctId}&productType={productType}&queryType={queryType}&requestId={requestId}&requestTime={requestTime}&signType={signType}&startDate={startDate}&terminalId={terminalId}&trxType={trxType}&userId={userId}&version={version}

1.2 应答

同步返回参数说明:

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(14) 原样返回
productType 产品类型 String(2) 原样返回
queryType 查询类型 String(1) 原样返回
acctType 账户类型 String(3) 原样返回
acctCur 账户币种 String(3) 原样返回
merchantAcctId 商户号 String(32) 原样返回
terminalId 终端号 String(8) 原样返回
trxType 交易类别 String(6) 原样返回
userId 查询的用户ID列表 String(120) 原样返回
startDate 查询时间起始 String(14) 原样返回
endDate 查询时间结束 String(14) 原样返回
respCode 返回码 String(8) 000000表示同步受理成功,其他为受理失败
respMsg 返回描述 String(256) 可空
signMsg 签名信息 String(2048) 不可空
注:若通过sdk接入,则无需自己处理,代码已封装
-	仅对非空字段进行加签
acctCur={acctCur}&acctType={acctType}&merchantAcctId={merchantAcctId}&productType={productType}&requestTime={requestTime}&respCode={respCode}&respMsg={respMsg}&signType={signType}&startDate={startDate}&terminalId={terminalId}&trxType={trxType}&userId={userId}&version={version}

异步返回参数说明:

参数名称 参数含义 最大长度 参数说明
version 版本号 String(10) 原样返回
signType 签名方式 String(2) 原样返回
requestId 请求流水号 String(32) 原样返回
requestTime 请求时间 String(14) 原样返回
productType 产品类型 String(2) 原样返回
queryType 查询类型 String(1) 原样返回
acctType 账户类型 String(3) 原样返回
acctCur 账户币种 String(3) 原样返回
merchantAcctId 商户号 String(32) 原样返回
terminalId 终端号 String(8) 原样返回
userId 查询的用户ID列表 String(120) 原样返回
startDate 查询时间起始 String(14) 原样返回
endDate 查询时间结束 String(14) 原样返回
notifyCode 返回码 String(8) 非空
notifyMsg 返回描述 String(256) 可空
fileName 查询结果文件名,用于下载请求 商户根据此处的文件名,利用流水查询结果文件下载接口下载文件 可空
signMsg 签名信息 String(2048) 不可空
注:若通过sdk接入,则无需自己处理,代码已封装
-	仅对非空字段进行加签
acctCur={acctCur}&acctType={acctType}&endDate={endDate}&fileName={fileName}&merchantAcctId={merchantAcctId}& notifyCode={notifyCode}& notifyMsg={notifyMsg}&productType={productType}&requestId={requestId}&requestTime={requestTime}&signType={signType}&startDate={startDate}&terminalId={terminalId}&trxType={trxType}&userId={userId}&version={version}

账户明细流水查询文件下载

本文档定义CHINAPNR账户余额支付接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。

1 账户明细流水查询文件

环境 HTTPS请求地址
测试环境 https://hfgj.testpnr.com/balance/acctBalanceDownload.htm
正式环境 https://global.chinapnr.com/balance/acctBalanceDownload.htm

1.1 请求

参数 参数含义 长度 是否必填 参数说明
协议参数
inputCharset 字符集 String(1) 不可空 固定值:1
productType 网关版本 String(2) 不可空 固定值:ACC
version 网关版本 String(10) 不可空 固定值:1.0
signType 签名类型 String(2) 不可空 固定值:4。RSA加签
业务参数
requestId 请求流水号 String(32) 不可空 请求流水号,系统唯一
requestTime 请求时间 String(14) 不可空 yyyyMMddHHmmss
merchantAcctId 商户会员号 String(32) 不可空 由我司提供(即11位商户号+01)例如商户号为10012021109,则此处填写1001202110901
terminalId 终端号 String(8) 不可空 由我司提供,汇数分配的终端号,不同的接口/功能可能会分配不同的终端号,故请考虑多终端情况下的兼容。
trxType 交易类别 String(6) 不可空 固定:100000
fileName 请求下载的文件名 String(256) 不可空 此处为账户流水查询接口中异步结果返回的文件名
signMsg 签名信息 - 不可空 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签,
加签证书,请参照私钥公钥生成
注:若通过sdk接入,则无需自己处理,代码已封装
-	-	仅对非空字段进行加签
fileName={fileName}&merchantAcctId={merchantAcctId}&productType={productType}&requestId={requestId}&requestTime={requestTime}&signType={signType}&terminalId={terminalId}&trxType={trxType}&version={version}

1.2 应答

同步返回文件流

1.3 结果文件格式

账户流水查询的返回为txt格式的文件,无需作验签处理。文件字段以“,”线分割,第一行为汇总信息。第二行起为明细信息。

文件名格式为“商户号(13位)_序号_查询时间起始_查询时间结束.txt”。其中查询时间起始/查询时间结束格式为YYYYMMDDHHMMSS。

文件内容示例格式如下:

账户类型,账户币种,起始时间,结束时间,行数
用户号,明细ID,交易参考号,商户订单号,记账时间,借方金额,贷方金额,期初余额,期末余额,备注,产品类型,交易类型,记账规则,,,
用户号,明细ID,交易参考号,商户订单号,记账时间,借方金额,贷方金额,期初余额,期末余额,备注,产品类型,交易类型,记账规则,,,

商户账户明细示例:

001,CNY,20211111093820,20211117093820,3
,105799586,1440632,20211116094245696,20211116094253,2,0,5855,5853,代发|1440632,,SFEX,30005131
,105799265,1440629,20211116093957811,20211116094006,3,0,5858,5855,代发|1440629,,SFEX,30005131
,105796087,8848640,163691691583369,20211116091000,0,1,5857,5858,代发退回|8848640,,SFEX_BACK,30005115

用户账户明细示例:

001,CNY,20211021003820,20211022003820,1
10000005,103542826,30077,20211021182754667,20211021182827,0,1,41,42,单次分账|原交易订单号88917,,TRANSDIV,10007111