本开发文档的阅读对象为:具有一定开发能力,了解PHP、JAVA、.NET等开发语言的开发、维护或管理人员。
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
| 版本号 | 更新说明 | 更新日期 |
|---|---|---|
| V1.0 | 创建 | 2021.07.22 |
-
商户会员号
Chinapnr网关支付时提交的为商户会员号,并非商户号,会员号=商户号+"01"(如商户号为abc时,会员号为abc01)
1.薪税业务流程图
商户接入身份鉴权接口时,调用API须遵循以下规则:
| 传输方式 | 为保证交易安全性,采用 HTTPS 传输 |
| 提交方式 | 采用 POST 方法提交 |
| 数据格式 | HTTP KEY=VALUE 格式 |
| 字符编码 | 支持 UTF-8 字符编码 |
| 签名算法 | 商户生成签名字符串,现支持的签名算法类型为 RSA-SHA1 |
| 签名要求 | 请求和接收数据均需要校验签名 |
场景介绍
本文档旨在对汇付国际薪税产品接口技术规范进行说明,用于指导开发人员进行相关接口的开发。
概述
本文档展示了如何从零开始,与Chinapnr跨境系统薪税接口对接的流程。
第一步:获取账号信息
-
商户需与前端销售沟通开通测试账号或生产账号,并提供接受邮箱地址。
-
1-2个工作日内由开通组负责将开通的账号信息发送至商户邮箱。
第二步:配置密钥
-
开发者调用接口前需要先生成RSA密钥,RSA密钥包含私钥、公钥。生成密钥后在商户后台进行密钥配置,配置完成后可发起交易。详细步骤请参考《配置密钥》。
第三步:搭建和配置开发环境
-
下载示例代码Demo 为了帮助开发者调用开放接口,我们提供了示例代码下载,包含JAVA、PHP和.NET三语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的Demo并引入您的开发工程
-
将Demo运行成功,并将代码集成到您的项目中,记得修改商户号,终端号,和私钥证书。如生产环境,还需更换Chinapnr生产公钥证书。
注意:为确保安全,商户在收到汇付申报结果通知后,务必先验证返回的签名字段。
概述
Chinapnr开放平台采用了 RSA 安全签名机制,开发者可以通过Chinapnr公钥验证消息来源,同时可使用自己的私钥对信息进行加密。RSA 算法及数字签名机制是Chinapnr平台与开发者网关安全通信的基础,若开发者不熟悉 RSA 及数字签名,请先查阅相关资料。
RSA 私钥及公钥生成
1. 生成 RSA 私钥及公钥,请详见“附录一:私钥公钥生成及范例”。 生成的文件格式如:客户私钥private-rsa.pfx,客户公钥public-rsa.cer。
商户上传公钥
注意:
-
上传商户公钥前需先联系前端获取商户后台账号和密码,并将客户公钥public-rsa.cer文件前缀名称修改为商户号。 如开通的商户号为10012159865,则证书修改为10012159865.cer上传。
商户平台登录地址 测试环境 / 生产环境进入Platform Management菜单Certificate Management菜单,转入如下界面:
图5.1 上传公钥
在证书管理,输入邮箱,点击Do Upload上传证书。页面提示上传成功,证书列表中可以查看新增证书,状态为1有效。
下载Chinapnr公钥
点击Download下载系统公钥用于接收跨境系统返回时验签。
图5.2 下载Chinapnr公钥
注意:
不同环境Chinapnr公钥证书需在不对环境的商户后台下载。
DEMO下载
注意:Demo下载后可直接运行,也可将项目里商户号,终端号,私钥证书(**.pfx)更换成已开通测试商户的。
| 支付模式 | 说明 | 平台 | 操作 |
|---|---|---|---|
| 身份鉴权API | 身份鉴权API对应的DEMO | JAVA | 下载 |
文档下载
| 支付模式 | 说明 | 操作 |
|---|---|---|
| 薪税业务 | 薪税对外接口 | 下载 |
1.订单信息的签名不正确
确保私钥证书正确。
确保加签字段和加签顺序正确,可对照Demo对比
2.订单返回信息验签失败
确保公钥证书正确,与所提交环境匹配,可在对应环境商户后台下载。
确保验签字段和验签顺序正确,可对照Demo对比
3.网关发起交易,报商户号不存在或未开通
网关发起交易时,提交的并非是商户号,而是会员号,会员号=商户号+“01”。
OpenSSL工具安装
1.Linux用户(以Ubuntu为例)
sudo apt-get install openssl
2.Windows用户开发者可以在OpenSSL官方网站下载Windows的OpenSSL安装包进行安装。或直接下载
3.若不习惯查看文档中心,此为证书生成word文档,可自行下载证书生成文档下载RSA私钥及公钥生成
生成证书days在730-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-----
批量开户申请
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 批量开户申请
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/batchOpenAccount.htm |
| 正式环境 | https://global.chinapnr.com/salary/batchOpenAccount.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 汇付跨境系统商户号+01,共13位 |
| orderId | 批次请求流水号 | 变长32 String | 必填 | |
| coreMemberId | 核心企业会员号 | 变长20 String | 必填 | |
| groundAgentId | 落地公司机构号 | 变长20 String | 必填 | |
| noticeUrlContactLink | 签约链接异步通知地址 | 变长256 String | 必填 | |
| noticeUrlContactResult | 签约结果异步通知地址 | 变长256 String | 必填 | |
| appSignSuccessUrl | 用户签约pg通知地址 | 变长256 String | 非必填 | |
| batchOpenList | 明细列表 | json格式 | ||
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| name | 姓名 | 变长40 String | 必填 | |
| bankAcctName | 卡号姓名 | 变长40 String | 必填 | |
| contactTelNo | 手机号 | 变长11 String | 必填 | 手机号,限制大陆手机号,不支持境外 |
| accountIdNo | 持卡人证件号 | 变长18 String | 必填 | 如果身份证号包含X,请保持字母为大写 |
| idType | 证件类型 | 变长1 String | 必填 | 1-身份证;2-港澳通行证; |
| cardNum | 卡号 | 变长32 String | 必填 | |
| bankId | 银行ID | 变长8 String | 必填 | 银联颁布的银行代码,参考附录 |
| reqTransId | 请求流水号 | 变长32 String | 必填 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&orderId={orderId}&coreMemberId={coreMemberId}&groundAgentId={groundAgentId}¬iceUrlContactLink={noticeUrlContactLink}¬iceUrlContactResult={noticeUrlContactResult}&batchOpenList={batchOpenList}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 请求流水号 | 变长32 String | 必填 | |
| respCode | 返回码 | 变长3 String | 必填 | 000受理成功 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
1.1 签约地址异步通知
商户在接受到Chinapnr异步通知后,应返回成功接受内容,如"SUCCESS"。
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功 |
| respDesc | 描述 | 变长3 String | 选填 | 必填,则返回描述 |
| orderId | 请求流水号 | 变长32 String | 必填 | |
| contactTelNo | 手机号 | 变长32 String | 必填 | 手机号,限制大陆手机号,不支持境外 |
| contractNo | 合同号 | 变长50 String | 选填 | |
| reqTransId | 流水号 | 变长32 String | 必填 | 对应请求接口中的请求流水号 |
| signUrl | 签约地址 | 变长 String | 必填 | |
| viewUrl | 查看地址 | 定长 String | 必填 | |
| personMemberId | 员工会员号 | 定长18 String | 选填 | 薪税云用户唯一标识 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段字母顺序进行加签
- 仅对非空字段进行加签
contactTelNo={contactTelNo}&contractNo={contractNo}&orderId={orderId}&reqTransId={reqTransId}&respCode={respCode}&respDesc={respDesc}&signUrl={signUrl}&viewUrl={viewUrl}
1.2 签约结果异步通知
用户签约成功后返回结果通知
商户在接受到Chinapnr异步通知后,应返回成功接受内容,如"SUCCESS"。
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 订单号 | 变长32 String | 必填 | |
| reqTransId | 请求流水号 | 变长32 String | 必填 | 对应请求接口中的请求流水号 |
| memberId | 会员号 | 定长18 String | 选填 | 薪税云用户唯一标识 |
| contractName | 合同名称 | 变长60 String | 选填 | |
| contractNo | 合同号 | 变长32 String | 选填 | |
| state | 状态 | 变长2 String | 选填 | 1.成功 0.失败 |
| templateId | 合同模板号 | 变长32 String | 选填 | |
| minorCompanyName | 落地公司名称 | 变长60 String | 选填 | |
| minorMemberId | 落地公司会员号 | 变长18 String | 选填 | |
| minorAgentId | 落地公司机构号 | 变长18 String | 选填 | |
| contractType | 合同类型 | 变长2 String | 选填 | 1:落地公司-核心企业 6:落地-个人 |
| contractDownloadUrl | 合同下载地址 | 变长 String | 选填 | |
| salaryModle | 开票类型 | 变长2 String | 选填 | 1:普票;2:专票 3:两个都有;0:无费率 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段字母顺序进行加签
- 仅对非空字段进行加签
contractDownloadUrl={contractDownloadUrl}&contractId={contractId}&contractName={contractName}&memberId={memberId}&minorAgentId={minorAgentId}&minorCompanyName={minorCompanyName}&minorMemberId={minorMemberId}&orderId={orderId}&reqTransId={reqTransId}&salaryModle={salaryModle}&state={state}&templateId={templateId}
费用代发接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 费用代发申请
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/salaryModle.htm |
| 正式环境 | https://global.chinapnr.com/salary/salaryModle.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 汇付跨境系统商户号+01,共13位 |
| orderId | 请求流水号 | 变长32 String | 必填 | |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | |
| groundMemberId | 落地公司会员号 | 变长18 String | 必填 | |
| salaryModle | 代发模式 | 定长1 String | 必填 | 1-普票 2-专票(由核心企业和落地公司签的合同决定的) |
| accountModle | 走账模式 | 定长1 String | 必填 | 1-直发 2-代发 |
| modeIdcompany | 走账类型 | 定长1 String | 必填 | 1-单账户模式; |
| noticeUrl | 异步通知地址 | 变长100 String | 必填 | |
| batchSalaryModleDtos | 代发工资明细 | 明细参数参照下方参数字段 | ||
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| salaryMonth | 月份 | 定长6 String | 必填 | |
| name | 姓名 | 变长40 String | 必填 | |
| accountIdNo | 身份证号 | 变长18 String | 必填 | 如果身份证号包含X,请保持字母为大写 |
| contactTelNo | 手机号 | 定长11 String | 必填 | 手机号,限制大陆手机号,不支持境外 |
| salary | 工资金额 | 数值 | 必填 | 单位为分,无小数位 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&orderId={orderId}&coreMemberId={coreMemberId}&groundMemberId={groundMemberId}&salaryModle={salaryModle}&accountModle={accountModle}&modeIdcompany={modeIdcompany}& noticeUrl={noticeUrl}&batchSalaryModleDtos={batchSalaryModleDtos}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 002受理成功 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
| attachId | 受理批次号 | 变长10 String | 选填 |
1.1 费用代发异步通知
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 订单号 | 变长32 String | 必填 | |
| attachId | 受理批次号 | 变长32 String | 选填 | |
| state | 批次处理结果 | 变长8 String | 选填 | 2 代发处理成功; 3 代发部分处理成功; 4 代发处理失败 |
| coreAgentId | 机构号 | 变长32 String | 选填 | |
| succAmount | 成功金额 | 变长14 String | 选填 | |
| coreMemberId | 核心企业会员号 | 变长32 String | 必填 | |
| stateDesc | 结果描述 | 变长60 String | 选填 | |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段字母顺序进行加签
- 仅对非空字段进行加签
attachId={attachId}&coreAgentId={coreAgentId}&coreMemberId={coreMemberId}&orderId={orderId}&state={state}&stateDesc={stateDesc}&succAmount={succAmount}
1.2费用代发结果查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/salaryResult.htm |
| 正式环境 | https://global.chinapnr.com/salary/salaryResult.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业会员号 |
| attachId | 批次号 | 变长11 String | 选填 | 若订单号未填,则批次号必填 |
| orderId | 订单号 | 变长32 String | 选填 | 若批次号未填,则订单号必填 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段固定顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&coreMemberId={coreMemberId}&attachId={attachId}&orderId={orderId}
输出参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功【受理成功】 |
| respDesc | 描述 | 变长60 String | 必填 | 返回描述 |
| attachState | 批次状态 | 变长3 String | 必填 | 1 代发处理中;2 代发处理成功;3 代发部分处理成功;4 代发处理失败 |
| salaryRespDto | 代发结果明细 | 参照以下明细参数 |
明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| salaryState | 转账交易状态 | 变长1 String | 必填 | 转账交易状态:0-未处理 1转账成功 2-转账失败 |
| outMemberId | 出账方商户号 | 变长20 String | 必填 | |
| toMemberId | 入账方会员号 | 变长20 String | 必填 | |
| outMemberName | 出账方商户名称 | 变长40 String | 必填 | |
| toMemberName | 入账方会员名称 | 变长40 String | 必填 | |
| orderAmt | 转账金额 | 变长18 String | 无小数位 | |
| transFee | 转账服务费 | 变长14 String | 无小数位 | |
| realTransAmt | 实际交易金额 | 变长18 String | 无小数位 |
开票申请接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 开票申请
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/applyInvoice.htm |
| 正式环境 | https://global.chinapnr.com/salary/applyInvoice.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 订单号 | 变长32 String | 必填 | 必填,必须唯一:建议14位以上时间戳+随机数 |
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | |
| batchList | 批次列表 | String | 必填 | 代发批次号,多个英文逗号分隔,如1,2,3,4(多个表示合并开一张票) |
| asynUrl | 异步地址 | String | 必填 | 异步通知地址 |
| receiveMobile | 接收人手机号 | 定长11 String | 必填 | |
| receiveName | 接收人姓名 | 变长40 String | 必填 | |
| courierAddress | 快递地址 | 变长64 String | 必填 | |
| invoiceTaxNo | 购方税号 | 变长20 String | 否 | |
| invoiceName | 购方公司名称 | 变长100 String | 否 | |
| invoiceAddress | 购方公司地址 | 变长100 String | 否 | |
| invoiceCardNum | 购方公司账号 | 变长20 String | 否 | |
| invoiceBankName | 购方银行名称 | 变长40 String | 否 | |
| invoicePhone | 购方联系电话 | 变长15 String | 否 | |
| remarks | 备注 | 变长64 String | 否 | |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
orderId={orderId}&merchantAcctId={merchantAcctId}&coreMemberId={coreMemberId}&batchList={batchList}&asynUrl={asynUrl}&receiveMobile={receiveMobile}&receiveName={receiveName}&courierAddress={courierAddress}&invoiceTaxNo={invoiceTaxNo}&invoiceName={invoiceName}&invoiceAddress={invoiceAddress}&invoiceCardNum={invoiceCardNum}&invoiceBankName={invoiceBankName}&invoicePhone={invoicePhone}&remarks={remarks}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 必填,000成功【成功】 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
| invoiceBatch | 开票批次号 | 变长20 String | 选填 |
1.1 开票异步通知
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 订单号 | 变长32 String | 必填 | |
| invoiceBatch | 开票批次号 | 变长32 String | 必填 | |
| receiveName | 接收人姓名 | String | 必填 | |
| recieveMobile | 签收人手机号 | String | 必填 | |
| courierCompany | 快递公司 | String | 必填 | |
| courierAddress | 快递地址 | String | 必填 | |
| courierNum | 快递单号 | String | 必填 | |
| invoiceUrls | 电子发票地址列表 | list | 选填 | 多个电子发票列表 |
| invoiceUrl | 电子发票地址 | String | 选填 | |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段字母顺序进行加签
- 仅对非空字段进行加签
courierAddress={courierAddress}&courierCompany={courierCompany}&courierNum={courierNum}&invoiceBatch={invoiceBatch}&invoiceUrls={invoiceUrls}&orderId={orderId}&receiveName={receiveName}&recieveMobile={recieveMobile}
1.2 开票结果查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/queryInvoiceInfo.htm |
| 正式环境 | https://global.chinapnr.com/salary/queryInvoiceInfo.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业会员号 |
| invoiceBatch | 开票批次号 | 变长20 String | 选填 | 开票批次号,可为空查询全部 |
| orderId | 订单号 | 变长32 String | 必填 | 原请求订单号 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段固定顺序进行加签
- 仅对非空字段进行加签
orderId={orderId}&merchantAcctId={merchantAcctId}&coreMemberId={coreMemberId}&invoiceBatch={invoiceBatch}
输出参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功【成功】 |
| respDesc | 描述 | 变长60 String | 必填 | 返回描述 |
| invoiceDeatils | 开票明细 | 参照以下明细参数 |
明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| receiveName | 接收人姓名 | String | 必填 | |
| recieveMobile | 签收人手机号 | String | 必填 | |
| courierCompany | 快递公司 | String | 必填 | |
| courierAddress | 快递地址 | String | 必填 | |
| courierNum | 快递单号 | String | 必填 | |
| invoiceUrls | 电子发票地址列表 | List | 多个电子发票列表 | |
| invoiceUrl | 转账服务费 | String |
资金调拨接口
因跨境业务与薪税业务为不同的两个系统,商户可以使用该接口将跨境系统的资金调拨至薪税系统用于费用下发
1.0 调拨申请
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/allotApply.htm |
| 正式环境 | https://global.chinapnr.com/salary/allotApply.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 订单号 | 变长32 String | 必填 | 必填,必须唯一:建议14位以上时间戳+随机数 |
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| userAcctId | 用户号 | 变长32 String | 条件必填 | 汇付跨境系统用户号,transType=2必填 |
| transType | 调拨类型 | 变长32 String | 非必填 | 1、从商户账户划拨;2、从用户账户划拨;不填默认为1。 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业机构号 |
| amount | 金额 | String | 必填 | 单位为分,无小数位 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
orderId={orderId}&merchantAcctId={merchantAcctId}&userAcctId={userAcctId}&transType={transType}&coreMemberId={coreMemberId}&amount={amount}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 必填,000成功【成功】 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
1.1 调拨申请查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/allotQuery.htm |
| 正式环境 | https://global.chinapnr.com/salary/allotQuery.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业会员号 |
| orderId | 订单号 | 变长32 String | 必填 | 原请求订单号 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段固定顺序进行加签
- 仅对非空字段进行加签
orderId={orderId}&merchantAcctId={merchantAcctId}&coreMemberId={coreMemberId}
输出参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功【成功】 |
| respDesc | 描述 | 变长60 String | 必填 | 返回描述 |
签约查询接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 签约查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/contractQuery.htm |
| 正式环境 | https://global.chinapnr.com/salary/contractQuery.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| orderId | 订单号 | 变长32 String | 必填 | |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业机构号 |
| personMemberId | 员工会员号 | 变长18 String | 条件必填 | 合同类型为6时必填 |
| contractType | 合同类型 | 变长1位String | 必填 | 1:核心企业-税优公司 6:个人-税优公司 |
| startDate | 开始时间 | 定长8位String | 必填 | 必填,yyyyMMdd |
| endDate | 结束时间 | 定长8位String | 必填 | 必填,yyyyMMdd |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&orderId={orderId}&coreMemberId={coreMemberId}&personMemberId={personMemberId}&contractType={contractType}&startDate={startDate}&endDate={endDate}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
| contractInfos | 签约合同列表 | String | 需要进行urlDecode解码 |
签约合同明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| contractName | 合同名称 | 变长60 String | 选填 | |
| contractId | 合同号 | 变长32 String | 选填 | |
| state | 状态 | 变长2 String | 选填 | 1.成功; 0.失败 |
| minorCompanyName | 落地公司名称 | 变长60 String | 选填 | |
| minorMemberId | 落地会员号 | 变长18 String | 选填 | |
| minorAgentId | 落地机构号 | 变长18 String | 选填 | |
| templateId | 合同模板号 | 变长32 String | 选填 | |
| contractType | 合同类型 | String | 选填 | 原样返回 |
| contractDownloadUrl | 合同下载地址 | 变长 String | 选填 | |
| salaryModle | 开票类型 | 变长2 String | 选填 | 1:普票;2:专票 3:两个都有;0:无费率 |
余额查询接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
只能机构来查询,员工不能通过该接口查询余额
1.0 余额查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/queryAccount.htm |
| 正式环境 | https://global.chinapnr.com/salary/queryAccount.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业机构号 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&coreMemberId={coreMemberId}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功 |
| respDesc | 返回描述 | 变长60 String | 必填 | 返回描述 |
| acctInfoList | 查询返回明细 | list |
余额明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| acctType | 账户类型 | 变长1 String | 必填 | 1-结算户;2-钱包户;3-充值户 |
| balanceAmt | 账户余额 | 数值 | 必填 | 单位为分,无小数位 |
| avlBal | 可用余额 | 数值 | 必填 | 单位为分,无小数位 |
代发费用查询(试算)
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 代发费用查询(试算)
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/salaryCharge.htm |
| 正式环境 | https://global.chinapnr.com/salary/salaryCharge.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| personMemberId | 员工会员号 | 变长18 String | 必填 | |
| groundMemberId | 落地公司会员号 | 变长18 String | 必填 | |
| orderId | 订单号 | 变长32 String | 必填 | 必须唯一:建议14位以上时间戳+随机数 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业机构号 |
| salaryModle | 代发模式 | 变长1 String | 必填 | 1-普票 ;2-专票 |
| salary | 发放的工资金额 | 数值 | 必填 | 单位为分,无小数位 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&personMemberId={personMemberId}&groundMemberId={groundMemberId}&orderId={orderId}&coreMemberId={coreMemberId}&salaryModle={salaryModle}&salary={salary}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功 |
| respDesc | 返回描述 | 变长60 String | 必填 | 返回描述 |
| serviceMony | 费用金额 | 数值 | 单位为分,无小数位 |
员工信息修改
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 员工信息修改
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/batchModifyAccount.htm |
| 正式环境 | https://global.chinapnr.com/salary/batchModifyAccount.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| orderId | 订单号 | 变长32 String | 必填 | 必须唯一:建议14位以上时间戳+随机数 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业机构号 |
| batchModifyList | 明细 | 必填 | json格式 | |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| memberId | 员工会员号 | 定长18位String | 必填 | |
| contactTelNo | 手机号 | 定长11位String | 选填 | 手机号,限制大陆手机号,不支持境外。手机号/卡号至少一个有值 |
| cardNum | 卡号 | 变长32位String | 选填 | 手机号/卡号至少一个有值 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&orderId={orderId}&coreMemberId={coreMemberId}&batchModifyList={batchModifyList}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
| orderId | 请求流水号 | 变长32 String | 必填 | |
| personList | 明细 |
明细参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| memberId | 员工会员号 | 定长18位String | 必填 | |
| state | 修改状态 | 定长1位String | 必填 | 0-失败;1-成功 |
| stateDesc | 描述 | 变长60位String | 选填 | 失败原因 |
员工入驻结果查询
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 员工入驻结果查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/queryPersonnel.htm |
| 正式环境 | https://global.chinapnr.com/salary/queryPersonnel.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| orderId | 订单号 | 变长32 String | 条件必填 | 原请求流水号(当前不支持,请使用会员号查询) |
| personMemberId | 会员号 | 变长18 String | 条件必填 | 请求流水号和会员号二选一 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
orderId={orderId}&merchantAcctId={merchantAcctId}&personMemberId={personMemberId}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| orderId | 请求流水号 | 变长3 String | 选填 | |
| personMemberId | 会员号 | 定长18 String | 选填 | |
| coreMemberId | 核心企业会员号 | 变长32 String | 选填 | |
| state | 入驻状态 | 定长8 String | 选填 | 1-待开户;2开户成功待签约;3-开户失败; 4-签约成功; 5-签约失败 |
| stateDesc | 入驻结果描述 | 选填 | 1 |
| code(错误代码) | msg(错误描述) |
|---|---|
| 000 | 成功 |
| 158 | 用户已存在 |
| 001 | 交易处理中 |
| 002 | 请求已受理 |
| 003 | 交易失败 |
| 010 | 调用加密机失败 |
| 012 | 准入ID未授权 |
| 096 | 系统繁忙 |
| 097 | 通道繁忙 |
| 098 | 系统超时 |
| 099 | 请系统异常 |
| 121 | 请求参数非法 |
| 122 | 验证签名失败 |
| 131 | 订单不存在 |
| 150 | 核心企业信息不存在 |
| 151 | 落地公司信息不存在 |
| 202 | 交易订单号重复 |
| 318 | 商户号不存在 |
| 401 | CA认证失败 |
| 900 | 功能开通 |
个人提现接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
1.0 个人提现申请
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/withdrawPerson.htm |
| 正式环境 | https://global.chinapnr.com/salary/withdrawPerson.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 汇付跨境系统商户号+01,共13位 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | |
| personMemberId | 员工会员号 | 变长18 String | 必填 | |
| orderId | 请求流水号 | 变长32 String | 必填 | 建议14位以上时间戳+随机数 |
| orderAmt | 提现金额 | 变长14 String | 必填 | 单位为分 |
| retUrl | 异步通知地址 | 变长64 String | 必填 | 提现异步通知,返回地址 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下固定字段顺序进行加签
- 仅对非空字段进行加签
merchantAcctId={merchantAcctId}&coreMemberId={coreMemberId}&personMemberId={personMemberId}& orderId={orderId}&orderAmt={orderAmt}&retUrl={retUrl}
返回结果
结果会接口同步返回。
返回参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| respCode | 返回码 | 变长3 String | 必填 | 000成功【受理成功】 |
| respDesc | 返回描述 | 变长60 String | 选填 | 返回描述 |
| orderId | 订单号 | 变长32 String | 必填 | |
| transSeqId | 系统流水号 | 变长32 String | 必填 | 系统流水号 |
| cardNum | 银行卡号 | 变长4 String | 必填 | 返回描述 |
| transState | 提现状态 | 变长1 String | 必填 | 0-初始化;1-处理中;2-成功;3-失败 |
1.1 个人提现异步通知
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| transSeqId | 系统流水号 | 变长32 String | 必填 | 系统流水号 |
| orderId | 订单号 | 变长32 String | 必填 | |
| cardNum | 银行卡号 | 变长4 String | 必填 | |
| transState | 提现状态 | 定长1 String | 必填 | 0-初始化;1-处理中;2-成功;3-失败 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段字母顺序进行加签
- 仅对非空字段进行加签
cardNum={cardNum}&orderId={orderId}&transState={transState}&transSeqId={transSeqId}
1.2 提现结果查询
请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://hfgj.testpnr.com/salary/withdrawInquire.htm |
| 正式环境 | https://global.chinapnr.com/salary/withdrawInquire.htm |
输入参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| merchantAcctId | 商户号 | 变长32 String | 必填 | 会员账号,由我司提供的商户号+01,共13位数字 |
| coreMemberId | 核心企业会员号 | 变长18 String | 必填 | 核心企业会员号 |
| orderId | 订单号 | 变长32 String | 选填 | 若系统流水号未填,则订单号必填 |
| transSeqId | 系统流水号 | 变长32 String | 选填 | 若订单号未填,则系统流水号必填 |
| signMsg | 签名 | 必填 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 加签证书,请参照私钥公钥生成 注:若通过sdk接入,则无需自己处理,代码已封装 |
- 按以下字段固定顺序进行加签
- 仅对非空字段进行加签
transSeqId={transSeqId}&orderId={orderId}&coreMemberId={coreMemberId}&merchantAcctId={merchantAcctId}
输出参数
| 参数名称 | 参数中文名称 | 数据格式 | 是否必须 | 参数说明 |
|---|---|---|---|---|
| cashOutStat | 提现状态 | 定长1 String | 必填 | 0-初始化;1-处理中;2-成功;3-失败 |
| cardNum | 银行卡号 | 变长4 String | 必填 | |
| orderAmt | 提现金额 | 变长14 String | 无小数位 | |
| feeAmt | 手续费 | 变长14 String |
