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

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

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

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

1.薪税业务流程图

商户接入身份鉴权接口时,调用API须遵循以下规则:

传输方式 为保证交易安全性,采用 HTTPS 传输
提交方式 采用 POST 方法提交
数据格式 HTTP KEY=VALUE 格式
字符编码 支持 UTF-8 字符编码
签名算法 商户生成签名字符串,现支持的签名算法类型为 RSA-SHA1
签名要求 请求和接收数据均需要校验签名

场景介绍

本文档旨在对汇付国际薪税产品接口技术规范进行说明,用于指导开发人员进行相关接口的开发。

概述

本文档展示了如何从零开始,与Chinapnr跨境系统薪税接口对接的流程。

第一步:获取账号信息

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

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

第二步:配置密钥

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

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

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

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

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

概述

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公钥证书需在不对环境的商户后台下载。

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 功能开通

银行码表

《银行码表》下载

针对批量员工入驻,选择bankId使用。

个人提现接口

本文档定义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