人民币网关支付接口

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

提交参数

请求地址

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

协议参数

参数 类型 是否必填 最大长度 描述 示例值
inputCharset String 5 字符集,固定值:1
1-UTF-8
1
pageUrl String 256 接受支付结果的页面地址 https://www.merchant.com/pay/notifyReceiverPg.do
bgUrl String 256 服务器接受支付结果的后台地址 https://www.merchant.com/pay/notifyReceiverBg.do
version String 10 网关版本,固定值:3.0
3.0-人民币网关支付
3.0
language String 2 网关页面显示语言种类,固定值:1
1-中文显示
1
signType String 2 签名类型,固定值:4
4-RSA加签
4

业务参数

参数 类型 是否必填 最大长度 描述 示例值
merchantAcctId String 必选 32 会员账号,由我司提供的商户号+01,共13位数字 1001234001101
terminalId String 必选 8 终端号,由我司提供的终端号 999999
payerName String 有条件必选 64 支付人姓名,中文名,网银直连时必填 张三
payerContactType String 可选 2 支付人联系方式类型,固定值:1或者2
1-代表电子邮件方式
2-其他联系方式
1
payerContact String 可选 64 支付人联系方式,根据payerContactType的方式填写对应字符,邮箱或者其他联系方式 13400000000
payerIdentityCard String 可选 32 支付人身份证号码,字符串,18位身份证号;网银直连时必填 320125198800001111
mobileNumber String 可选 32 支付人手机号 15800001111
cardNumber string 可选 32 支付人所持卡号,网关直连时必填 6225881257400000
customerId string 可选 32 支付人在商户系统的客户编号 jd1001
orderId string 必选 32 商户订单号,只允许使用字母、数字、_,并以_,字母或数字开头每商户提交的订单号,必须在自身账户交易中唯一 order20170728120001299
orderCurrency String 必选 3 订单币种,3位币别码,详情请参照币别代码附录。当该字段不为CNY时,必须与settlementCurrency一致。 如美元:USD。
orderAmount Number 必选 12 商户订单金额,整型数字,单位为分。日韩元支持的最小单位为元。 如100元,则填写10000
orderTime String 必选 14 商户订单提交时间,数字串,一共14位。格式为:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位] 20171117020101
inquireTrxNo String 可选 10 查询流水号,字符串,商户外汇从CHINAPNR询价时需填入,不填则根据交易时间实时询价 交易前已在CHINAPNR询价返回工单号:2089,则填入2089
productName String 必选 256 商品名称 iphone7
productNum Number 可选 8 商品数量,整型数字 1
productId String 可选 32 商品代码,请根据我司提供的商品代码附录进行填写。 如母婴营养保健,填写:100018
productDesc String 可选 256 商品描述,字符串 iphone7,128G,红色。
ext1 String 可选 128 扩展字段1,英文或中文字符串支付完成后,按照原样返回给商户 扩展字段1
ext2 String 可选 128 扩展字段2,英文或中文字符串支付完成后,按照原样返回给商户 扩展字段2
payType String 必选 4 支付方式:
00:全部
10:网银
10-1:B2C网银
10-2:B2B网银
00
bankId String 可选 8 银行代码,请参考银行代码表附录。网银直连时必填;此字段不为空时,payType必须为下列之一:10、10-1、10-2 如中国农业银行,ABC
refererUrl String 可选 256 订单来源url,前台交易有防钓鱼要求的商户上送,用户下单的来源,一般为商户系统的url地址,以便和用户页面跳转时的来源作检查
customerIp String 可选 32 支付人Ip,前台交易有防钓鱼要求的商户上送,支付人下单时的ip,不要传商户自己系统的ip
orderTimeout String 可选 10 支付总超时时间,前台类消费交易时上送,单位为分钟,建议30分钟以上 30
redoFlag String 可选 1 同一订单禁止重复提交标志,预留字段
signMsg String 必选 2048 签名字符串请参考签名方法 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签
inputCharset={inputCharset}&pageUrl={pageUrl}&bgUrl={bgUrl}&version={version}&language={language}&signType={signType}&merchantAcctId={merchantAcctId}&terminalId={terminalId}&payerName={payerName}&payerContactType={payerContactType}&payerContact={payerContact}&payerIdentityCard={payerIdentityCard}&mobileNumber={mobileNumber}&cardNumber={cardNumber}&customerId={customerId}&orderId={orderId}&orderCurrency={orderCurrency}&orderAmount={orderAmount}&orderTime={orderTime}&inquireTrxNo={inquireTrxNo}&productName={productName}&productNum={productNum}&productId={productId}&productDesc={productDesc}&ext1={ext1}&ext2={ext2}&payType={payType}&bankId={bankId}&refererUrl={refererUrl}&customerIp={customerIp}&orderTimeout={orderTimeout}&redoFlag={redoFlag}
只对非空值的字段进行加签。

返回结果

交易结果会同时通知提交时pageUrl和bgUrl对应的地址。

置单返回

参数 类型 是否必填 最大长度 描述 示例值
errCode String 必选 32 错误代码,详细请参考错误代码附录 000000
errMsg String 必选 256 错误描述,置单失败时返回;表示置单失败原因 无可用收单通道
redirectUrl String 必选 10 跳转Url,置单成功时返回;表示跳转url,需将用户页面跳转至此url

返回参数

参数 类型 是否必填 最大长度 描述 示例值
merchantAcctId String 必选 32 会员账号,与提交订单时的保持一致 1001234001101
terminalId String 必选 8 终端号,与提交订单时的保持一致 999999
version String 必选 10 网关版本,与提交订单时一致 3.0
payType String 必选 4 支付方式,与提交订单时一致 00
bankId String 必选 8 银行代码,与提交订单一致 BOC
orderId String 必选 32 商户订单号,与提交订单时一致 order20170728120001299
orderTime String 必选 14 商户订单提交时间,与提交订单时一致 20171117020101
orderCurrency String 必选 3 订单币种,与提交订单时一致 USD
orderAmount Number 必选 12 商户订单金额,与提交订单时一致 10000
dealId String 必选 32 收单系统交易号,该交易在收单系统对应的交易号 20000100
dealTime String 必选 14 交易时间,交易失败时可能为空。收单系统对交易进行处理的时间,格式为:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位] 20170728120001
ext1 String 可选 128 扩展字段1,与提交订单时一致
ext2 String 可选 128 扩展字段2,与提交订单时一致
bankDealId String 可选 64 银行交易号,后端通道系统的交易流水号
payResult String 必选 2 处理结果:
10-支付成功
其他均为失败
errCode String 必选 8 错误代码,详细请参考错误代码附录 000000
signMsg String 必选 2048 签名字符串,商户需对该字段进行验签。详情请参考验签方法。对于所有值不为空的参数及对应值,按照字母顺序组成字符串 DSA:参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行支付平台证书加密形成密文后进行2048位的Base64转码。
bankDealId={bankDealId}&bankId={bankId}&dealId={dealId}&dealTime={dealTime}&errCode={errCode}&ext1={ext1}&ext2={ext2}&merchantAcctId={merchantAcctId}&orderAmount={orderAmount}&orderCurrency={orderCurrency}&orderId={orderId}&orderTime={orderTime}&payResult={payResult}&payType={payType}&terminalId={terminalId}&version={version}
根据字母排序(如a**字段放在b**字段前面)验签。

请求示例

请参考具体Demo。  下载地址

PG返回示例

http://192.168.1.111:8081/QAMOCK-Test/notifyReceiverPg.do?dealTime=20170821152808&errCode=000000&merchantAcctId=1001215986501&orderTime=20170821152751&orderCurrency=CNY&dealId=2000003870&version=3.0&bankId=cmb&terminalId=0010003&payResult=10&ext1=ext1&ext2=ext2&orderAmount=1000&signMsg=LGgKDndwVYtppVr6LVE2Ng31dK4mfUtVm8MVUkDTu5xz54pk7aa2zBTXBi%2FfqAI4huV%2BK4LPPsZX7ouvp4FUPuiP3RaITPYfL%2FZbDWwq97JwPwlLtZhjFgkpcAEfoulBwnyw6OiI%2F5yjS2Ux0KaOsl7mUNPnNzFzFnjXqEXjnzs%3D&payType=00&orderId=2017082115280239

BG返回示例

BG以http Key-Value方式返回,如:
dealTime=20170821152808
errCode=000000
merchantAcctId=1001215986501
orderTime=20170821152751
orderCurrency=CNY
dealId=2000003870
version=3.0
bankId=cmb
terminalId=0010003
payResult=10
ext1=ext1
ext2=ext2
orderAmount=1000
signMsg=LGgKDndwVYtppVr6LVE2Ng31dK4mfUtVm8MVUkDTu5xz54pk7aa2zBTXBi%2FfqAI4huV%2BK4LPPsZX7ouvp4FUPuiP3RaITPYfL%2FZbDWwq97JwPwlLtZhjFgkpcAEfoulBwnyw6OiI%2F5yjS2Ux0KaOsl7mUNPnNzFzFnjXqEXjnzs%3D
payType=00
orderId=2017082115280239