海关申报接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
提交参数
请求地址
环境 | HTTPS请求地址 |
---|---|
测试环境 | https://hfgj.testpnr.com/custom/applyImptDec.do |
正式环境 | https://global.chinapnr.com/custom/applyImptDec.do |
协议参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
version | String | 是 | 10 | 网关版本,固定值:1.0 1.0-海关申报 |
1.0 |
bgUrl | String | 是 | 256 | 服务器接受支付结果的后台地址 | https://www.merchant.com/pay/notifyReceiverBg.do |
signType | String | 是 | 2 | 签名类型,固定值:4 4-RSA加签 |
4 |
业务参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
merchantAcctId | String | 必选 | 32 | 会员账号,由我司提供的商户号+01,共13位数字 | 1001234001101 |
terminalId | String | 必选 | 8 | 终端号,由我司提供的终端号 | 999999 |
dealId | String | 条件必选 | 32 | 条件必输;对于分期支付,允许多个,英文逗号分隔 (数字,数字) | P99999 |
customCode | String | 必选 | 32 | 海关编码,参照海关编码附录 | NBHG |
customVersion | String | 可选 | 8 | 海关版本。预留,为空即可 | |
merCustomCode | String | 必选 | 32 | 商户海关备案号,商户在海关的备案号 (注:非汇付备案号) |
TES******20000 |
merCustomName | String | 必选 | 64 | 电商平台的海关注册登记名称 | XXXXX有限公司 |
payerIdType | string | 必选 | 2 | 证件类型,证件类型默认为身份证:1-身份证 | 1 |
payerName | string | 必选 | 64 | 购买人中文姓名 | 张三 |
payerIdNumber | string | 必选 | 32 | 购买人身份证号,字符串,18位身份证号。 | 320125198800001111 |
orderId | String | 必选 | 32 | 商户订单号,字符串,只允许使用字母、数字、_、-,并以_,字母或数字开头,每商户提交的订单号,必须在自身账户交易中唯一;合并支付时,填写商户子订单号 | 20170821125324 |
orderCurrency | String | 必选 | 3 | 默认CNY | CNY |
orderAmt | Number | 必选 | 15 | 订单金额,整型数字,单位为分。日韩元支持的最小单位为元。 需满足orderAmt=freightAmt+goodsAmt+taxAmt-offsetAmt |
如100元,则填写10000 |
freightAmt | Number | 必选 | 15 | 物流费,没值传0,整型数字,以分为单位。比方10元,提交时金额应为1000,商户页面显示金额可以转换成以元为单位显示 | 如100元,则填写10000 |
goodsAmt | Number | 必选 | 15 | 货款,没值传0,整型数字,以分为单位。比方10元,提交时金额应为1000,商户页面显示金额可以转换成以元为单位显示 | 如100元,则填写10000 |
taxAmt | Number | 必选 | 15 | 税款,没值传0,整型数字,以分为单位。比方10元,提交时金额应为1000,商户页面显示金额可以转换成以元为单位显示 | 如100元,则填写10000 |
offsetAmt | Number | 必选 | 15 | 抵扣金额,没值传0,整型数字,以分为单位。比方10元,提交时金额应为1000,商户页面显示金额可以转换成以元为单位显示 | 如100元,则填写10000 |
ecpShortName | String | 必选 | 16 | 填写电商平台在检验检疫的备案号,推送南沙时请准确填写,其他海关填写一固定值即可 | SHHF |
ecpDomainName | String | 必选 | 64 | 电商平台域名 | |
competCustom | String | 必选 | 32 | 主管海关代码 | 固定在 1 |
iaqInstCode | String | 必选 | 32 | 检验检疫机构代码 | 固定值 1 |
bizType | String | 可空 | 16 | 拆单标识 Split表示拆单,其他值不拆单 | Split |
ext1 | String | 可选 | 512 | 扩展字段1,英文或中文字符串支付完成后,按照原样返回给商户 | 扩展字段1 |
ext2 | String | 可选 | 512 | 扩展字段2,英文或中文字符串支付完成后,按照原样返回给商户 | 扩展字段2 |
signMsg | String | 必选 | 2048 | 签名字符串请参考签名方法。 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 |
version={version}&bgUrl={bgUrl}&signType={signType}&merchantAcctId={merchantAcctId}&terminalId={terminalId}&dealId={dealId}&customCode={customCode}&customVersion={customVersion}&merCustomCode={merCustomCode}&merCustomName={merCustomName}&payerIdType={payerIdType}&payerName={payerName}&payerIdNumber={payerIdNumber}&orderId={orderId}&orderCurrency={orderCurrency}&orderAmt={orderAmt}&freightAmt={freightAmt}&goodsAmt={goodsAmt}&taxAmt={taxAmt}&offsetAmt={offsetAmt}
只对非空值的字段进行加签。
返回结果
申报结果更新申报成功或申报失败会通知提交时bgUrl对应的地址。
返回参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
version | String | 必选 | 10 | 版本号;固定值:1.0 | 1.0 |
bgUrl | String | 必选 | 256 | 后台通知地址 | http://192.168.1.111:8081/QAMOCK-Test/receiveCustomBg.do |
signType | String | 必选 | 2 | 签名方式;固定值:4-RSA | 4-RSA |
merchantAcctId | String | 必选 | 32 | 商户号 | 1001215986001 |
terminalId | String | 必选 | 32 | 终端号 | 99999 |
dealId | String | 可选 | 32 | 支付流水号,在bizType传值为Split即标识拆单情况下,该值为新生成的支付单号, 即海关平台查单的支付单号为该值而非请求中上送的支付单号;若bizType不为Split,则该值同请求。 |
P99999 |
customCode | String | 必选 | 32 | 海关代码 | NBHG |
customVersion | String | 可选 | 8 | 海关版本 | |
merCustomCode | String | 必选 | 32 | 商户海关备案号 | 310436T001 |
merCustomName | String | 必选 | 32 | 商户海关备案名称 | 上海汇付数据服务有限公司 |
ecpShortName | String | 必选 | 16 | 电商平台企业简写(四位) | SHHF |
ecpDomainName | String | 必选 | 64 | 电商平台互联网域名 | |
competCustom | String | 必选 | 32 | 主管海关代码 | 10002000 |
iaqInstCode | String | 必选 | 32 | 检验检疫机构代码 | 60007000 |
payerIdType | Number | 必选 | 2 | 证件类型 | 1 |
payerName | String | 必选 | 64 | 姓名 | |
payerIdNumber | String | 必选 | 32 | 身份证号 | |
orderId | String | 必选 | 32 | 商户订单号 | 20170821091312 |
orderCurrency | String | 必选 | 3 | 订单币种 | USD |
orderAmt | Number | 必选 | 15 | 订单金额 | 如100元,则填写10000 |
freightAmt | Number | 必选 | 15 | 物流费 | 如100元,则填写10000 |
goodsAmt | Number | 必选 | 15 | 货款 | 如100元,则填写10000 |
taxAmt | Number | 必选 | 15 | 关税 | 如100元,则填写10000 |
offsetAmt | Number | 必选 | 15 | 抵扣金额 | 如100元,则填写10000 |
bizType | String | 可选 | 16 | 业务类型 | |
ext1 | String | 可选 | 128 | 扩展字段1,与提交订单时一致 | |
ext2 | String | 可选 | 128 | 扩展字段2,与提交订单时一致 | |
declareId | String | 必选 | 32 | 申报ID | |
decResult | String | 必选 | 2 | 结果:10-接收成功、11-接收失败、21-申报失败、20-申报成功 | 20 |
errorCode | String | 必选 | 8 | 错误代码,详细请参考错误代码附录 | 000000 |
errorMsg | String | 必选 | 256 | 错误描述。失败时返回的错误信息,可以为空。 | 03:保存成功02:支付单报文处理失败,接收报文为旧报文数据,不做处理 |
signMsg | String | 必选 | 2048 | 签名字符串,商户需对该字段进行验签。详情请参考验签方法。对于所有值不为空的参数及对应值,按照字母顺序组成字符串 DSA:参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行支付平台证书加密形成密文后进行2048位的Base64转码。 |
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}
根据字母排序(如a**字段放在b**字段前面)验签。
请求示例
请参考具体Demo。 下载地址
BG返回示例
BG以http Key-Value方式返回,如:
ecpDomainName=www.xxx.com
signType=4
merCustomCode=TEST1000020000
version=1.0
payerIdType=1
terminalId=hgpass
decResult=20
bgUrl=http://localhost:63611/receiveBg.aspx
taxAmt=0
merCustomName=TEST
customCode=NBHG
orderId=20170815171329
orderAmt=500
ecpShortName=Test
customVersion=
offsetAmt=0
declareId=467
merchantAcctId=1001215986001
competCustom=10002000
goodsAmt=0
orderCurrency=CNY
dealId=c94858
iaqInstCode=60007000
freightAmt=500
ext1=
ext2=
signMsg=JnsPMjJVveVbzQoRi16qk0Z5ITCNbl09qNSTRuljY1UJc3wmKTfJIqEWcfWn48S6DDhWds06L2qTmMoFWnhCKMgcA6TvfmLpXIJppdF7Qme1c9wOYbAWs2rgH3TvcF9Zd7vokc9ruw%2FE3LAVJKaRJazpIVyQLVfFH%2F0xHYx6f8k%3D
bizType=
payerIdNumber=321281000000003913
payerName=张三
海关接口参数填写说明
请参考具体文件。 下载地址