新一代商户接入手册V2.7

更新时间:2024-04-26 14:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

新一代商户接入用户手册

(Version: 2.7)

修订历史记录

日期 20151014 20151021 20151118 20160105 20160118 20160214 20160301 20160506 版本 V2.0 V2.1 V2.2 V2.3 V2.4 V2.5 V2.6 V2.7 说明 修改应答数据签名验签的说明 增加插件包超链接及合并插件 更新.net插件,删除一条hosts配置 更新C语言部分及其他问题 更新文件验签部分示例代码及结算对账文件名 统一security.properties的描述,增加RiskData 更改运营中心电话 修改附录A 上海银联电子支付服务有限公司

地址:上海浦东新区东方路800号 宝安大厦29楼-30楼 (200122)

Tel: (86-021)60872088 Fax: (86-021)60872000 Website: http://www.ChinaPay.com ?Copyright 2010 ChinaPay e-Payment Service Co.,Ltd. All rights reserved

作者 初伟 初伟 初伟 初伟 初伟 初伟 初伟 初伟 http://www.ChinaPay.com Chinapay新一代商户接入手册

目录

1 ChinaPay简介.......................................................................................................................... 4 2 前言........................................................................................................................................... 4

2.1 目的 ........................................................................................................................... 4 3 总述........................................................................................................................................... 4

3.1 使用对象 ................................................................................................................... 4 3.2 运行及开发环境 ....................................................................................................... 5 3.3 术语 ........................................................................................................................... 5 3.4 NetPayClient的使用 .............................................................................................. 6

3.4.1 NetPayClient for Java 使用说明 ........................................................... 6 3.4.2 NetPayClient for PHP使用说明 ............................................................ 12 3.4.3 NetPayClient for .NET使用说明 .......................................................... 18 3.4.4 NetPayClient for C使用说明 ................................................................ 24

4 交易流程说明 ......................................................................................................................... 29

4.1 消费类交易流程 ..................................................................................................... 29 4.2 后续类交易流程 ..................................................................................................... 30 4.3 查询交易流程 ......................................................................................................... 31 4.4 对账处理流程 ......................................................................................................... 31 4.5 结算处理流程 ......................................................................................................... 31 5 数据类型定义 ......................................................................................................................... 31 6 消费类交易接口 ..................................................................................................................... 32

6.1 接入地址 ................................................................................................................. 32 6.2 请求报文 ................................................................................................................. 33 6.3 应答报文 ................................................................................................................. 35 7 后续类交易接口 ..................................................................................................................... 37

7.1 接入地址 ................................................................................................................. 37 7.2 请求报文 ................................................................................................................. 38 7.3 同步响应 ................................................................................................................. 40 7.4 应答报文 ................................................................................................................. 40 8 交易查询接口 ......................................................................................................................... 41

8.1 接入地址 ................................................................................................................. 41 8.2 请求报文 ................................................................................................................. 41 8.3 应答报文 ................................................................................................................. 42 9 对账接口 ................................................................................................................................. 43

9.1 概述 ......................................................................................................................... 43 9.2 通知商户的地址规范 ............................................................................................. 43

9.2.1 https方式 .................................................................................................. 43 9.2.2 ftp方式 ...................................................................................................... 44 9.3 对账文件名规则 ..................................................................................................... 44 9.4 商户对账文件格式(版本号:20150813) ......................................................... 44 10 网银支付结算接口 ......................................................................................................... 46

10.1 概述 ......................................................................................................................... 46

第 2 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

10.2 通知商户的地址规范 ............................................................................................. 46

10.2.1 https方式 .................................................................................................. 46 10.2.2 ftp方式 ...................................................................................................... 46 10.3 结算文件名规则 ..................................................................................................... 47 10.4 商户结算文件格式(版本号:20150813) ......................................................... 47

附录A 常见接入问题及解答 ........................................................................................ 48 附录B 应答码说明 ........................................................................................................ 49 附录C 支付机构代码 .................................................................................................... 58 ChinaPay商户安全加密控件 ........................................................................................ 61 14.1 JAVA版 .................................................................................................................... 61 14.2 PHP版 ...................................................................................................................... 61 14.3 .NET版 .................................................................................................................... 62 14.4 C语言版 .................................................................................................................. 62

11 12 13 14

第 3 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

1 ChinaPay简介

CHINAPAY 致力于发展中国金融电子支付服务。

银联电子支付服务有限公司(ChinaPay)是中国银联控股的银行卡专业化服务公司,拥有面向全国的

统一支付平台,主要从事以互联网等新兴渠道为基础的网上支付、企业B2B账户支付、电话支付、网上跨行转账、网上基金交易、企业公对私资金代付、自助终端支付等银行卡网上支付及增值业务,是中国银联旗下的网络方面军。

ChinaPay依托中国银联全国统一的跨行信息交换网络,在人民银行及中国银联的业务指导和政策支持下,致力于银行卡受理环境的建设和银行卡业务的推广,将先进的支付科技与专业的金融服务紧密结合起来,通过业务创新形成多元化的支付服务体系,为广大持卡人和各类商户提供安全、方便、快捷的银行卡支付及资金结算服务。公司充分利用中国银联全国性的品牌、网络、市场等优势资源,整合银联体系的系统资源、银行资源、商户资源和品牌影响力,实现强强联合、资源共享和优势互补。

经过数年的开拓发展,ChinaPay拥有了雄厚的技术开发力量及丰富的业务拓展经验,为网上购物、金融、民航、旅游、彩票、移动通讯等行业领域提供了先进的支付系统解决方案,并积累了丰富的工程项目实施经验。

2 前言

ChinaPay商户支付接口接入为ChinaPay商户会员提供完善的网上支付解决方案,让商户更快捷、方

便和安心的开展网上交易。目前ChinaPay商户支付接口接入提供如下功能:

? ? ?

商户消费交易的银行支付 商户针对成功消费交易的退款 商户对已有交易(消费)查询

2.1 目的

本手册的主要目的是帮助ChinaPay商户会员使用我们提供的支付服务接口方式。 3

总述

3.1 使用对象

本手册的使用对象为ChinaPay商户会员的网上应用开发人员、维护人员和管理人员,他们应具有如下之一或者几项基本知识:

熟悉Microsoft Windows/NT、Windows9x、Windows 2000、HP-UX、AIX、SUN Solaris、Linux、BSD等操作系统;

熟悉上述系统上的网站设置和网页制作方法;

熟悉标准CGI(Common Gateway Interface)或ASP(Active Server Pages)或ISAPI的开发方法或PHP或JAVA;

了解一般信息安全的基本概念。

第 4 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

3.2 运行及开发环境

商户可根据自己的实际情况,选用合适的开发平台和运行平台。ChinaPay将提供对应的NetPayClient版本。目前ChinaPay的NetPayClient有如下几种:

? ? ? ?

NetPayClient for Java (以JAR的方式提供) NetPayClient for Win32 (以DLL方式提供) NetPayClient for (以.class.php方式提供) NetPayClient for C (以.so或.a的方式提供)

3.3 术语

电子商务 Electronic Commerce是指通过信息网络以电子数据信息流通的方式在全世界范围内进行并完成的各种商务活动、交易活动、金融活动和相关的综合服务活动。

网络贸易 指在网络平台基础上直接进行在线贸易(Trade Online),利用数字化技术将企业、海关、运输、金融、商检和税务等有关部门有机连接起来,实现从浏览、洽谈、签约、交货到付款等全部或部分业务自动化处理。网络贸易由信息共享、订购、支付、执行、服务与支持5个部分组成,每个部分在网络贸易中都各自承担了不同的任务。

B2C(Business to Consumer) 指企业与消费者之间的电子商务。这是消费者利用因特网直接参与经济活动的形式,类同于商业电子化的零售商务。目前,在因特网上有许许多多各种类型的虚拟商店和虚拟企业,提供各种与商品销售有关的服务。

B2B(Business to Business) 指企业与企业间的电子商务。企业可以使用因特网或其它网络对每笔交易寻找最佳合作伙伴,完成从订购到结算的全部交易行为,包括向供应商订货、签约、接受发票和使用电子资金转移、信用证、银行托收等方式进行付款,以及在商贸过程中发生的其它问题,如索赔、商品发送管理和运输跟踪等。

商户 具有电子商务功能的商店和企业。

银行卡 商业银行所发行的储蓄卡、信用卡、储值卡、企业购物卡、购物联名卡、虚拟电子卡等支付工具。

持卡人 银行卡的拥有者。

网上支付密码 数字串。发卡行用于鉴别网上持卡人身份,具体产生方法、使用范围和管理规范见各发卡行\业务规范\。

发卡行 具有发行银行卡功能的商业银行。

开户行 指持卡人卡账户或企业资金账户所在的商业银行。

SSL(Secure Socket Layer) 是一种基于网络传输层的安全网络传输协议,实现客户端与服务器端间的数据安全传递。

第 5 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

3.4 NetPayClient的使用

说明

NetPayClient实现消费者、商户和银行间的网上安全支付。提供如下功能: ? ? ? ?

商户对订单关键信息进行数字签名 商户验证ChinaPay发送的交易应答 商户对一段字符串的签名 商户对一段字符串的签名验证

各语言NetPayClient压缩包见14章。 3.4.1

NetPayClient for Java 使用说明

3.4.1.1 核心文件清单

名 称 chinapaysecure.jar Chinapayfilesecure.jar Mer.pfx 放置的路径 根据项目工程的需要放置对应路径下 用 途 用于提供商户签名、验签、加密、解密方法调用 根据项目工程的需要放置对应路径下 用于提供商户验签结算和对账文件 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 商户签名证书(控台申请) cp.cer 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 ChinaPay签名证书 3.4.1.2 方法说明

类名 方法名 用 途 初始化商户签名、验签配置信息 用于对商户报文进行签名 获取商户签名值 对交易过程中的敏感数据进行加密 对密码进行加密 获取加密后的密码字符串 获取加密后的密文字符串 验证chinapay返回的应答数据 获取商户签名、验签、加密及解密的处理结果 com.chinapay.secss.SecssUtil init sign getSign encryptData encryptPin getEncPin getEncValue verify getErrCode init SecssFileService verifyFile getErrCode 初始化商户签名、验签配置信息 文件验签 获取商户签名、验签、加密及解密的处理结果 第 6 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

?

初始化安全控件方法:init

方法说明:

public boolean init() 作用:

初始化商户签名、验签配置信息。

使用此方法需要将security.properties放在类路径下,并配置如下: #交易证书路径

sign.file=D:/cert_cp/000000000000001.pfx #交易证书密码

sign.file.password=XXXXXX #交易证书的密钥容器格式 sign.cert.type=PKCS12

#报文中不参与签名的字段名称,多个字段用逗号进行分隔 sign.invalid.fields=Signature,CertId #验签证书路径

verify.file=D:/cert_cp/cp_test.cer #签名值字段名称

signature.field=Signature 参数说明:

security.properties文件中,商户只需要修改sign.file、sign.file.password、verify.file三项。 返回值:

true :表示正确初始化证书文件,并且可以调用签名方法签名或者签名验证方法验证签名; false:表示初始化证书文件失败,不可以使用签名方法和签名验证方法。 注:该方法在类com.chinapay.secss.SecssUtil中。

方法说明:

public boolean init(Properties pros) 作用:

初始化商户签名、验签配置信息。 参数说明:

Properties pros 属性配置文件对象,用于加载商户自定义的属性配置文件,需要在该文件中配置商户签名证书文件绝对路径、签名文件密码、密钥容器格式、验证签名证书文件绝对路径、签名值和证书id、签名值字段名称等。

返回值:

true :表示正确初始化证书文件,并且可以调用签名方法签名或者签名验证方法验证签名; false:表示初始化证书文件失败,不可以使用签名方法和签名验证方法。 注:该方法在类com.chinapay.secss.SecssUtil中。 ?

订单签名方法:sign 方法说明:

public void sign(Map map) 作用:

用于对商户报文进行签名。

第 7 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

参数说明:

Map map 为商户交易数据。 返回值: 无

注:该方法在类com.chinapay.secss.SecssUtil中。 ?

获取签名结果字符串方法:getSign 方法说明:

public String getSign() 作用:

获取商户签名后生成的字符串。 参数说明: 无 返回值:

商户签名结果字符串。

注:该方法在类com.chinapay.secss.SecssUtil中。 ?

敏感数据加密方法:encryptData 方法说明:

public void encryptData(String data) 作用:

对交易过程中的敏感数据进行加密。 参数说明:

String data 待加密的明文字符串 返回值: 无 ?

密码加密方法:encryptPin 方法说明:

public void encryptPin(String pin,String card) 作用:

对密码进行加密。 参数说明:

String pin 银行卡密码 String card 卡号 返回值: 无 ?

获取加密后的密码:getEncPin 方法说明:

public String getEncPin() 作用:

获取加密后的密码字符串。 参数说明: 无 返回值:

第 8 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

加密后的密码字符串。 ?

获取加密后的密文字符串:getEncValue 方法说明:

public String getEncValue() 作用:

获取加密后的密文字符串。 参数说明: 无 返回值:

加密后的密文字符串。 ?

获取商户签名、验签、加密及解密的处理结果的方法:getErrCode 方法说明:

public String getErrCode() 作用:

获取商户签名、验签、加密及解密的处理结果。 参数说明: 无 返回值:

00表示处理成功,其他表示处理失败。

注:该方法在类com.chinapay.secss.SecssUtil中。

第 9 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

?

验证交易应答方法:verify

方法说明:

public void verify(Map map) 作用:

验证chinapay返回的应答数据。 参数说明:

Map map 返回商户报文中的所有参数。 返回值: 无

注:该方法在类com.chinapay.secss.SecssUtil中。 ?

文件验签方法:verifyFile 方法说明:

public void verifyFile(String path) 作用:

验证chinapay返回的文件签名。 参数说明: 文件路径。 返回值: 无 ?

注:该方法在类com.chinapay.secss.SecssUtil中。

3.4.1.3 使用示例代码

(以下代码未经测试,仅供参考)

?

签名示例代码 //初始化安全控件:

public static void main(String[] args) {

Map myMap = new HashMap(); //参与签名的字段和值

myMap.put(\myMap.put(\??

SecssUtil secssUtil = new SecssUtil(); //从默认配置文件初始化安全控件 secssUtil.init();

System.out.println(\未知错误测试-->\secssUtil.sign(myMap);

if(!\ }

String sign = secssUtil.getSign(); System.out.println(\

第 10 页 共 35 页

System.out.println(\签名过程发生错误,错误信息为-->\return;

http://www.ChinaPay.com Chinapay新一代商户接入手册

} ?

验证签名示例代码

Map myMap = new HashMap(); String signature = \??\//签名串字符串

myMap.put(\//参与签名的字段和值

myMap.put(\myMap.put(\??

secssUtil.verify(myMap);

if(!\

}

System.out.println(\验签通过。\} ?

验签文件示例代码

public static void main(String[] args) { try {

SecssFileService secssFileService = new SecssFileService(); secssFileService.init();

File f = new File(\ secssFileService.verifyFile(f.getPath());

System.out.println(\验签结果:\

if(!\

System.out.println(\验签过程发生错误,错误信息为-->\ return;

System.out.println(\验签过程发生错误,错误信息为-->\return;

public static void main(String[] args) {

secssFileService.getErrMsg());

}

} catch (Exception e) { e.printStackTrace(); } } ?

敏感信息加密示例代码

//敏感信息加密,需要先将加密的敏感信息转成json格式,base64加密处理 Map cardInfoMap = new HashMap(); cardInfoMap.put(\cardInfoMap.put(\cardInfoMap.put(\if(!cardInfoMap.isEmpty()){

第 11 页 共 35 页

public static void main(String[] args) {

http://www.ChinaPay.com Chinapay新一代商户接入手册

SecssUtil secssUtil = new SecssUtil(); secssUtil.init();

secssUtil.encryptData(Base64.encodeBase64String(new

ObjectMapper().writeValueAsString(cardInfoMap).getBytes()));

if(!\ }

System.out.println(\敏感信息加密成功,敏感信息机密结果[\} ?

密码加密示例代码

Map cardInfoMap = new HashMap(); String card = \String pin = \

SecssUtil secssUtil = new SecssUtil(); secssUtil.init();

secssUtil.encryptPin(pin, card);

if(!\ } 3.4.2

NetPayClient for PHP使用说明 }

System.out.println(\密码加密结果[\

System.out.println(\密码加密出错,错误信息为\return;

public static void main(String[] args) {

System.out.println(\敏感信息加密发生错误,错误信息为return;

\

3.4.2.1 核心文件清单

名 称 SecssUtil.class.php Mer.pfx 放置的路径 根据项目工程的需要放置对应路径下 支持PHP5.4.8及以上版本 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 用 途 用于提供商户签名、验签、加密、解密、文件验签等方法调用 商户签名证书(控台申请) cp.cer 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 ChinaPay签名证书 security.properties 安全配置文件,根据项目工程的需要放置对应路径下 指定签名验签证书文件存放路径等 第 12 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

3.4.2.2 方法说明

类名 SecssUtil 方法名 init sign getSign verify verifyFile encryptData encryptPin getEncPin getEncValue getErrCode getErrMsg 用途 用于创建证书对象,初始化安全加密控件并初始化公私钥信息 用于对商户报文进行签名 获取商户签名后生成的字符串 验证ChinaPay返回的应答数据 验证ChinaPay返回的结算和对账文件签名 对交易过程中的敏感数据进行加密 对密码进行加密 获取加密后的密码字符串 获取加密后的密文字符串 获取商户签名、验签、加密及解密的处理结果 获取对响应码的中文描述 ?

初始化安全控件方法:init 方法说明:

public function init($securityPropFile) 作用:

用于创建证书对象,初始化安全加密控件并初始化公私钥信息。

使用此方法需要将security.properties放在PHP项目路径下,并配置如下: #交易证书路径

sign.file=D:/cert_cp/000000000000001.pfx #交易证书密码

sign.file.password=XXXXXX #交易证书的密钥容器格式 sign.cert.type=PKCS12

#报文中不参与签名的字段名称,多个字段用逗号进行分隔 sign.invalid.fields=Signature,CertId #验签证书路径

verify.file=D:/cert_cp/cp_test.cer #签名值字段名称

signature.field=Signature 参数说明:

securityPropFile:security.properties文件全路径

security.properties文件中,商户只需要修改sign.file、sign.file.password、verify.file三项。 返回值:

true :表示正确初始化证书文件,并且可以调用签名方法签名或者签名验证方法验证签名; false:表示初始化证书文件失败,不可以使用签名方法和签名验证方法。 注:该方法在类SecssUtil中。 ?

订单签名方法:sign

第 13 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

方法说明:

public function sign($paramArray) 作用:

用于对商户报文进行签名。 参数说明:

$paramArray 为数组形式的商户交易数据。数组格式如: array(\MerOrderNo \

返回值: 无 ?

获取签名结果字符串方法:getSign 方法说明:

public function getSign() 作用:

获取商户签名后生成的字符串。 参数说明: 无 返回值:

商户签名结果字符串。

注:该方法在类SecssUtil中。 ?

验证交易应答方法:verify 方法说明:

public function verify($paramArray) 作用:

验证chinapay返回的应答数据。 参数说明:

$paramArray 返回商户报文中的所有参数。 返回值: 无

注:该方法在类SecssUtil中。 ?

验证文件方法:verifyFile 方法说明:

public function verifyFile($file) 作用:

验证结算和对账文件签名。 参数说明: $file文件路径 返回值: 无

注:该方法在类SecssUtil中。 ?

敏感数据加密方法:encryptData 方法说明:

public function encryptData($data) 作用:

第 14 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

对交易过程中的敏感数据进行加密。 参数说明:

$data 待加密的明文字符串 返回值: 无

注:该方法在类SecssUtil中。 ?

密码加密方法:encryptPin 方法说明:

public function encryptPin($pin, $card) 作用:

对密码进行加密。 参数说明: $pin 银行卡密码 $card 卡号 返回值: 无

注:该方法在类SecssUtil中。 ?

获取加密后的密码:getEncPin 方法说明:

public function getEncPin() 作用:

获取加密后的密码字符串。 参数说明: 无 返回值:

加密后的密码字符串。

注:该方法在类SecssUtil中。 ?

获取加密后的密文字符串:getEncValue 方法说明:

public function getEncValue() 作用:

获取加密后的密文字符串。 参数说明: 无 返回值:

加密后的密文字符串。

注:该方法在类SecssUtil中。 ?

获取商户签名、验签、加密及解密的处理结果的方法:getErrCode 方法说明:

public function getErrCode() 作用:

获取商户签名、验签、加密及解密的处理结果。 参数说明:

第 15 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

无 返回值:

00表示处理成功,其他表示处理失败。 注:该方法在类SecssUtil中。 ?

响应码描述信息:getErrMsg 方法说明:

public function getErrMsg() 作用:

获取对响应码的中文描述。 参数说明: 无 返回值:

响应码的中文描述。

注:该方法在类SecssUtil中。

3.4.2.3 使用示例代码

(以下代码未经测试,仅供参考)

?

签名示例代码

require 'SecssUtil.class.php';

$securityPropFile=\perties\

$paramArray=array(

\\\

\测试-商品信息\\\ AccessType\

\ MerBgUrl\\ MerPageUrl\\

$secssUtil = new SecssUtil();

$secssUtil->init($securityPropFile); //初始化安全控件: $secssUtil->sign($paramArray); if(\

echo\签名过程发生错误,错误信息为-->\ }

$signature==$secssUtil->getSign(); echo \签名数据为:\ ?

验证签名示例代码

第 16 页 共 35 页

return;

http://www.ChinaPay.com Chinapay新一代商户接入手册

require 'SecssUtil.class.php';

$securityPropFile=\perties\

$paramArray=array(

\\\

\测试-商品信息\\\ AccessType\

\ MerBgUrl\\\\???\);

$secssUtil = new SecssUtil();

$secssUtil->init($securityPropFile); //初始化安全控件: $secssUtil->verify($paramArray); if(\

echo\验签过程发生错误,错误信息为-->\ }

echo \验签通过。\?

敏感数据加密示例代码 require 'SecssUtil.class.php';

$securityPropFile=\perties\

$plainData=\$secssUtil = new SecssUtil();

$secssUtil->init($securityPropFile); //初始化安全控件: $secssUtil->encryptData ($plainData); if(\

echo\加密过程发生错误,错误信息为-->\ }

echo \加密后的密文为:\

?

密码加密示例代码

require 'SecssUtil.class.php';

$securityPropFile=\perties\

$card=\$pin=\

第 17 页 共 35 页

return; return;

http://www.ChinaPay.com Chinapay新一代商户接入手册

$secssUtil = new SecssUtil();

$secssUtil->init($securityPropFile); //初始化安全控件: $secssUtil->encryptPin($pin, $card); if(\

echo\密码加密过程发生错误,错误信息为-->\ }

echo \加密后的PIN密文为:\?

文件验签示例代码

require ' SecssUtil.class.php';

$securityPropFile=\perties\

$secssUtil = new SecssUtil(); $secssUtil->init($securityPropFile);

$file=\测试文件.txt\echo \$secssUtil->verifyFile($file); if(\

echo \文件验签成功,errcode=[\}else{

echo \文件验签失败,errcode=[\}

echo \3.4.3

NetPayClient for .NET使用说明 return;

3.4.3.1 核心文件清单

名 称 chinapaysecure.dll BouncyCastle.CryptoExt.dll Mer.pfx 放置的路径 根据项目工程的需要放置对应路径下 用 途 用于提供商户签名、验签、加密、解密等方法调用 根据项目工程的需要放置对应路径下 用于提供商户签名、验签、加密、解密等方法调用 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 商户签名证书(控台申请) cp.cer 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 ChinaPay签名证书 security.properties 安全配置文件,根据项目工程的需要放置对应路径下 指定签名验签证书文件存放路径等 第 18 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

3.4.3.2 方法说明

方法名 init sign getSign verify encryptData encryptPin getEncPin getEncValue getErrCode getErrMsg 用途 用于创建证书对象,初始化安全加密控件并初始化公私钥信息 用于对商户报文进行签名 获取商户签名后生成的字符串 验证chinapay返回的应答数据 对交易过程中的敏感数据进行加密 对密码进行加密 获取加密后的密码字符串 获取加密后的密文字符串 获取商户签名、验签、加密及解密的处理结果 获取对响应码的中文描述 ?

初始化安全控件方法:init 方法说明:

public void init(string securityPropFile) 作用:

用于创建证书对象,初始化安全加密控件并初始化公私钥信息。

使用此方法需要将security.properties放在.NET项目路径下,并配置如下: #交易证书路径

sign.file=D:/cert_cp/000000000000001.pfx #交易证书密码

sign.file.password=XXXXXX #交易证书的密钥容器格式 sign.cert.type=PKCS12

#报文中不参与签名的字段名称,多个字段用逗号进行分隔 sign.invalid.fields=Signature,CertId #验签证书路径

verify.file=D:/cert_cp/cp_test.cer #签名值字段名称

signature.field=Signature 参数说明:

securityPropFile:security.properties文件全路径

security.properties文件中,商户只需要修改sign.file、sign.file.password、verify.file三项。 返回值:

true :表示正确初始化证书文件,并且可以调用签名方法签名或者签名验证方法验证签名; false:表示初始化证书文件失败,不可以使用签名方法和签名验证方法。 ?

订单签名方法:sign 方法说明:

public void sign((Hashtable srcMsg)

第 19 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

作用:

用于对商户报文进行签名。 参数说明:

Hashtable srcMsg为商户交易数据。 返回值: 无 ?

获取签名结果字符串方法:getSign 方法说明:

public string getSign() 作用:

获取商户签名后生成的字符串。 参数说明: 无 返回值:

商户签名结果字符串。 ?

验证交易应答方法:verify 方法说明:

public void verify(Hashtable srcMsg) 作用:

验证chinapay返回的应答数据。 参数说明:

srcMsg返回商户报文中的所有参数。 返回值: 无 ?

敏感数据加密方法:encryptData 方法说明:

public void encryptData(string encContent) 作用:

对交易过程中的敏感数据进行加密。 参数说明:

encContent 待加密的明文字符串 返回值: 无 ?

密码加密方法:encryptPin 方法说明:

public void encryptPin(string aPin, string aCardNO) 作用:

对密码进行加密。 参数说明: aPin银行卡密码 aCardNO卡号 返回值:

第 20 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

filepath:交易证书路径 返回值: 1:成功 0:失败

?

数据加密函数: encrypt

unsigned char* to, size_t* tlen);

bool encrypt(const char* filename, unsigned char* from, size_t flen, 作用: 对数据进行加密 参数说明:

filename:秘钥文件路径 from:待加密字符串 flen:待加密字符串长度 to:存放密文的缓存地址

tlen:存放密文的缓存长度,输入长度不可太短,否则函数返回失败。函数返回时此参数为实际密文的长度。

返回值: 1:成功 0:失败

?

数据解密函数: decrypt

size_t flen, unsigned char* to, size_t* tlen);

bool decrypt(const char* filename, const char* password, unsigned char* from, 作用: 对密文进行解密 参数说明:

filename:秘钥文件路径 password:秘钥文件密码 from:密文字符串 flen:密文字符串长度

to:存放解密后字符串的缓存长度,输入长度不可太短,否则函数返回失败。函数返回是次参数为实际解密后的字符串的长度。

返回值: 1:成功 0:失败

3.4.4.3 使用示例代码

#include \#define KEY_LEN 6 #define MEM_LEN 1024 * 4

第 26 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

int main(int argc, char* argv[]) {

if (sign(pfxfile, passwd, buff, buff_len, sign_buf, &sign_len)) {

printf((char*) sign_buf);

第 27 页 共 35 页

printf(\数据签名==========\\n\size_t sign_len = MEM_LEN;

unsigned char sign_buf[MEM_LEN]; // 签名字符串 memset(sign_buf, 0, sign_len);

if (build_data(p, KEY_LEN, (char*) buff, &buff_len)) { }

printf((char*) buff);

printf(\字串长度==========\\n\printf(\printf(\失败\return 0;

printf(\构造字符串==========\\n%unsigned char buff[MEM_LEN]; // 签名原文 size_t buff_len = MEM_LEN; memset(buff, 0, buff_len); KEY_VALUE_PAIR p[KEY_LEN]; p[0].key = \

//商 户 号

p[0].value = \p[1].key = \订 单 号 p[1].value = \p[2].key = \商户日期 p[2].value = \

p[3].key = \商户时间 p[3].value = \

p[4].key = \订单金额 p[4].value = \

p[5].key = \交易类型 p[5].value = \

const char* pfxfile = \const char* passwd = \

const char* cerfile = \

const char* filepath = \

} else {

http://www.ChinaPay.com Chinapay新一代商户接入手册

}

第 28 页 共 35 页

return 0; printf(\

if (decrypt(pfxfile, passwd, enc_buf, enc_len, dec_buf, &dec_len)) { }

printf((char*) dec_buf); printf(\失败\} else {

if (encrypt(cerfile, buff, buff_len, enc_buf, &enc_len)) { }

printf(\解密==========\\n\size_t dec_len = MEM_LEN; unsigned char dec_buf[MEM_LEN]; memset(dec_buf, 0, dec_len);

printf((char*) enc_buf); printf(\失败\} else {

printf(\加密==========\\n\size_t enc_len = MEM_LEN; unsigned char enc_buf[MEM_LEN]; memset(enc_buf, 0, enc_len);

printf(\文件验签==========\\n\if (verifyFile(cerfile, filepath)) { }

printf(\成功\printf(\失败\} else {

printf(\数据验签==========\\n\

if (verify(cerfile, buff, buff_len, sign_buf, sign_len)) { }

printf(\成功\printf(\失败\} else { } else { }

printf(\失败\

http://www.ChinaPay.com Chinapay新一代商户接入手册

4

交易流程说明

4.1 消费类交易流程

个人网银消费

持卡人从商户网站中生成订单信息,通过支付交易平台进行支付的过程,其交易流程包括订单确认、支付处理、支付完成三个部分,具体流程说明如下: 【流程一】订单确认

1. 持卡人浏览商户网站,选择支付项目,生成订单信息。 2. 持卡人确认订单信息,开始支付。 【流程二】支付处理

3. 持卡人确认支付信息,商户网站开始向支付交易平台申请支付,支付交易平台验证商户身份合法性和订单报文的完整性。

4. 支付交易平台向持卡人显示支付机构选择界面,持卡人选择支付机构。

5. 持卡人在所选择支付机构支付页面上,输入用户帐号、密码及其他安全验证信息。 6. 持卡人的安全认证信息得到确认后,进行支付。 【流程三】支付完成

7. 支付机构向支付交易平台返回支付结果。

8. 支付交易平台向持卡人显示支付结果,同时通知商户网站支付结果。 9. 商户网站向持卡人显示商户交易结果。 10.支付操作完成。

企业网银消费

持卡人从商户网站中生成订单信息,通过公共支付交易平台进行支付的过程,其交易流程包括订单确认、支付处理、支付完成三个部分,具体流程说明如下: 【流程一】订单确认

1. 持卡人浏览商户网站,选择支付项目,生成订单信息。 2. 持卡人确认订单信息,开始支付。 【流程二】订单处理

3. 持卡人确认支付信息,商户网站开始向支付交易平台申请支付,支付交易平台验证商户身份合法性和订单报文的完整性。

4. 支付交易平台向持卡人显示支付机构选择界面,持卡人选择支付机构,并提交订单。 5. 持卡人在支付交易平台输入其在对应的支付信息(如:卖方企业客户号、下单员名称)。 6. 持卡人的安全认证信息得到确认后,登录对应支付机构的企业网银账户,确认订单信息,并支付。 【流程三】支付完成

7. 支付机构向支付交易平台返回支付结果。

8. 支付机构向持卡人显示支付结果,同时通知商户网站支付结果。 9. 商户网站向持卡人显示商户交易结果。 10.支付操作完成。 认证支付

持卡人从商户网站中生成订单信息,通过公共支付交易平台进行支付的过程,其交易流程包括订单确

第 29 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

认、支付处理、支付完成三个部分,具体流程说明如下: 【流程一】订单确认

1. 持卡人浏览商户网站,选择支付项目,生成订单信息。 2. 持卡人确认订单信息,开始支付。 【流程二】订单处理

3. 持卡人确认支付信息,商户网站开始向支付交易平台申请支付,支付交易平台验证商户身份合法性和订单报文的完整性。

4. 支付交易平台显示收集支付要素页面信息。

5. 若持卡人未开通UPOP2.0认证支付,需要先开通UPOP2.0认证支付。

6. 持卡人已开通UPOP2.0认证支付,持卡人在支付页面输入卡号信息、短信验证码信息,完成支付。 【流程三】支付完成

7. 支付交易平台向持卡人显示支付结果,同时通知商户网站支付结果。 8. 商户网站向持卡人显示商户交易结果。 9. 支付操作完成。 快捷支付

持卡人从商户网站中生成订单信息,通过公共支付交易平台进行支付的过程,其交易流程包括订单确认、支付处理、支付完成三个部分,具体流程说明如下: 【流程一】订单确认

1. 持卡人浏览商户网站,选择支付项目,生成订单信息。 2. 持卡人确认订单信息,开始支付。 【流程二】订单处理

3. 持卡人确认支付信息,商户网站开始向支付交易平台申请支付,支付交易平台验证商户身份合法性和订单报文的完整性。

4. 持卡人在支付交易平台选择快捷支付。

5. 持卡人输入已注册的账号、支付密码完成快捷支付操作,若未注册快捷支付账户,则需要注册快捷支付账号。

6. 持卡人选择已绑定的快捷支付银行卡,输入短信验证码,完成支付,若未绑定快捷支付银行卡则先绑定快捷支付银行卡。 【流程三】支付完成

7. 支付交易平台向持卡人显示支付结果,同时通知商户网站支付结果。 8. 商户网站向持卡人显示商户交易结果。 9. 支付操作完成。 4.2 后续类交易流程 退款流程:

在支付交易完成之后,商户根据支付交易的结果生成交易退款订单,通过ChinaPay系统进行退款操作,其退款处理流程包括退款确认、退款应答、退款处理、退款完成四个环节,具体流程说明如下: 【流程一】退款确认

1. 商户根据支付交易完成情况,选择退款项目,生成退款订单或者退款账单信息。 2. 商户确认退款信息,开始发起退款交易。 【流程二】退款应答

3. 商户确认退款交易数据,以ChinaPay规范的数据格式向ChinaPay申请退款,ChinaPay证商户合

第 30 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

法性。

4. ChinaPay接受到退款订单后,即时地会返回给商户“退款接收成功”的应答。 【流程三】退款处理

5. ChinaPay与银行之间完成退款操作,其中会有人工干预操作过程,最终会产生退款结果信息。 6. 退款成功/失败应答会在退款处理后通过商户在提交退款信息时所填写的ReturnURL通知给商户。 7. 商户可以在控台上查看退款的进度及退款结果信息。 【流程四】退款完成

8. 退款操作完成。 4.3 查询交易流程

商户根据支付交易明细信息,组合符合ChinaPay规范的查询订单信息,通过ChinaPay系统进行交易明细查询操作,其查询处理流程包括查询确认、查询处理、查询完成三个部分,具体流程说明如下: 【流程一】查询确认

1. 商户形成查询订单信息。

2. 商户确认查询订单信息,该订单信息要符合ChinaPay的规范要求。 【流程二】查询处理

3. 商户确认查询订单后,以ChinaPay规范的数据格式向ChinaPay申请交易明细查询,ChinaPay验证商户合法性。

4. ChinaPay 按照商户信息及提交的查询订单信息进行交易明细查询处理。 【流程三】查询完成

5. ChinaPay服务器端程序在处理完交易明细查询请求之后即时地会返回给商户“查询结果”的应答。

6. 交易明细查询完成 。 4.4 对账处理流程

ChinaPay平台在每日对账完成后,会生成每个商户的对账文件,然后后台通知商户对账文件已经生成,文件的存放地址会在通知的URL地址中传递给商户。商户根据获得的对账文件地址,到该地址上去下载对账文件。

4.5 结算处理流程

ChinaPay平台在每日对账完成后,会生成每个商户的对账文件,然后后台通知商户对账文件已经生成,文件的存放地址会在通知的URL地址中传递给商户。商户根据获得的对账文件地址,到该地址上去下载对账文件。

5 数据类型定义

Ax

x字节定长的字母字符

x字节定长的字母或数字字符

x字节定长的字母、数字或特殊符号字符

第 31 页 共 35 页

Ax..y 长度为x-y字节的变长字母字符 ANx

ANx..y 长度为x-y字节的变长字母或数字字符 ANSx

http://www.ChinaPay.com Chinapay新一代商户接入手册

ANSx..y ASx Nx

长度为x-y字节的变长字母、数字或特殊符号字符 x字节定长的字母或特殊符号字符

x字节定长的整型数值,若表示金额,则以分为单位 x字节定长的数字符或特殊字符 x字节定长的特殊符号字符 秒 日 时 月 分

年(2字节) 年(4字节)

ASx..y 长度为x-y字节的变长字母或特殊符号字符

Nx..y 长度为x-y字节的整型数值,若表示金额,则以分为单位 NSx Sx ss DD hh MM mm YY

特殊符号说明:特殊符号仅限“{”、“}”、“[”、”]”、单引号、双引号、等号、逗号、冒号。

NSx..y 长度为x-y字节的数字字符或特殊字符 Sx..y 长度为x-y字节的变长特殊符号字符

YYYY

6 消费类交易接口

6.1 接入地址

ChinaPay的网上支付服务采用WEB服务的方式允许商户接入,接收交易数据的地址为: ?

测试环境请求地址: 1.

前台交易URL:

http://newpayment-test.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0 2. /0

说明:测试环境需要配置hosts,见附录A ?

生产环境请求地址: 1.

前台交易URL: 后台交易URL:

http://newpayment-test.chinapay.com/CTITS/service/rest/forward/sta/000000000017/0/0/0/0

https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0 2.

后台交易URL:

https://payment.chinapay.com/CTITS/service/rest/forward/sta/000000000017/0/0/0/0/0 说明:

走前台地址的交易:0001个人网银支付、0002企业网银支付、0004快捷支付、0005账单支付、0006认证支付、0007分期付款、0201预授权交易。

走后台地址的交易:0003授信交易。

第 32 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

6.2 请求报文

商户向ChinaPay的支付接入地址提交订单信息,表单采用“post”方式提交,提交页面中表单(FORM)的应该包括如下(注意各字段的大小写,编码方式统一用UTF-8): 字段中文描述 版本号 接入类型 收单机构号 商户号 字 段 Version AccessType AcqCode MerId 是否必填 Y N N Y 长度 AN8 N1 N15 N15 AN1..32 N8 N6 N1..20 备注 固定值:20140728 0:商户身份接入(默认) 1:机构身份接入 ChinaPay分配 由ChinaPay分配的15位定长数字,用于确认商户身份 必填,变长 32位,同一商户同一交易日期内不可重复 商户提交交易的日期,例如交易日期为2015年1月2日,则值为20150102 商户提交交易的时间,例如交易时间10点11分22秒,则值为101122 单位:分 前台页面方式提交交易:商户可以不填此域,ChinaPay会根据商户交易配置在持卡人页面显示商户开通的交易类型,由持卡人选择商户已开通的交易类型完成支付 后台方式提交交易或支付机构号域有值,此域必填 交易类型 TranType N N4 此接口TranType填值范围: 0001个人网银支付 0002企业网银支付 0003授信交易 0004快捷支付 0005账单支付 0006认证支付 0007分期付款 0201预授权交易 业务类型 交易币种 BusiType CurryNo Y N N4 A3 固定值:0001 默认为人民币:CNY 不分账不填写此域; 分账类型 SplitType N N4 如需要分账,填写格式如下: 0001:实时分账 0002:延时分账 分账方式 SplitMethod N N1 订单分账方式 0:按金额分账 商户订单号 MerOrderNo Y 商户交易日期 TranDate Y 商户交易时间 订单金额 TranTime OrderAmt Y Y 第 33 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

1:按比例分账 商户订单分账信息 支付机构号 商户前台通知地址 分账数据,使用规则: MerSplitMsg N ANS0..512 AN15 ANS0..256 商户号^金额或比例;商户号^金额或比例 BankInstNo MerPageUrl N N 取值参见附录C 页面接受应答地址,用于引导使用者支付后返回商户网站页面 商户后台交易应答接收地址,ChinaPay商户后台通知地址 MerBgUrl Y ANS0..256 会根据后台商户响应来判定是否重新发送后台应答流水,以确保后台应答的接收 商品信息 商户私有域 CommodityMsg MerResv N N ANS0..128 用来描述购买商品的信息,ChinaPay原样返回 ANS0..1024 商户自定义,ChinaPay原样返回 交易扩展域,JSON格式填写,如:{\BusiId \P2\。商户自定义使用,商户可根据商户自定义业务字段BusiId来填写P1到P10参数, 系统会存储P1到P10参数数据,可供商户查询使用。 BusiId业务编号ANS0..8 商户根据自身业务情况,由CP分配业务编号,供商户使用,此域可和P1至P10配合使用,可以使P1至P10代表不同的业务含义 P1-P10业务参数ANS0..512 商户自定义使用 商户页面收集卡号的交易必填(如:0003授信交易、0006认证支付、0007分期付款、0008后台消费、0201预授权交易),JSON格式填写,如:{\CertType \ CertNo \CVV2\CardNo \ ANS0..1024 Password \,根据不同交易类型填写不同的卡信息,填写后进行BASE64编码,编码后采用RSA加密。包含字段:CertType、CertNo、CVV2、CardNo、Password、CardValidityPeriod 单位:分钟,以ChinaPay接收交易的N6 时间为准,超过此时间段后用户支付成功的交易,不通知商户,系统自动退款 交易扩展域 TranReserved N ANS0..1024 有卡交易信息域 CardTranData N 支付超时时间 PayTimeOut N 防钓鱼时间戳 TimeStamp N ANS0..20 商户系统时间毫秒数,如商户开户时开通了时间戳防钓鱼校验,ChinaPay系统第 34 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

配置商户系统时间和商户系统时间的时间差(以分钟为单位),如时间超过系统配置的间隔,则会进行防钓鱼提示或拦截交易 客户浏览器端IP,如商户开通校验IP防钓鱼客户浏览器IP 防钓鱼验证,可填写此域做防钓鱼使RemoteAddr N ANS0..128 用。ChinaPay会获取持卡人访问IP和该字段进行比较,如果不一致,则会进行防钓鱼提示或拦截交易 Json格式,填写后进行BASE64编码,编码后采用RSA加密,加密后采用BASE64编码进行传输 MerUserId:商户端用户ID MerRegTime:商户端用户注册时间 MerRegEmail:商户端用户注册邮箱 MerRegMobileNo:商户端用户注册手机风控数据 RiskData N ANS0..1024 号 HDSerialNo:支付时使用的PC 硬盘序列号 Mac: 支付时使用的PC mac地址 IMEI: 支付时使用的手机串号IMEI Coordinate:支付时经纬度信息 BSSerialNo:支付时手机所在基站序列号 SmsFeture:短信验证码输入操作特征 签名 说明: ? ?

BankInstNo为可选项,表示 “支付机构号”,如填写BankInstNo(支付机构号),则消费者将直接进入支付页面,否则进入支付机构选择页面。 请求数据的签名验证

商户发送给ChinaPay的交易数据均需要进行数字签名。对于版本号为20140728的签名数据使用客户端chinapaysecure或SecssUtil进行签名、验签。 6.3 应答报文

当消费支付交易完成时,ChinaPay会将交易应答信息发送给商户,应答的数据域段包括如下内容:(以页面Form数据为例,注意大小写,编码方式统一用UTF-8,后台应答数据的发送的域段名和下面的一致) 字段中文描述 版本号 接入类型 收单机构号 字 段 Version AccessType AcqCode 是否必填 长度 Y N N AN8 N1 N15 备注 固定值:20140728 0:商户身份接入(默认) 1:机构身份接入 ChinaPay分配 Signature Y 商户报文签名信息,报文中的所有字段都参与签名(Signature除外) 第 35 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

商户号 MerId Y N15 AN1..32 N8 N6 N1..20 由ChinaPay分配的15位定长数字,用于确认商户身份 必填,变长 32位,同一商户同一交易日期内不可重复 商户提交交易的日期,例如交易日期为2015年1月2日,则值为20150102 商户提交交易的时间,例如交易时间10点11分22秒,则值为101122 单位:分 此接口TranType填值范围: 0001个人网银支付 0002企业网银支付 0003授信交易 交易类型 TranType Y N4 0004快捷支付 0005账单支付 0006认证支付 0007分期付款 0201预授权交易 业务类型 交易币种 BusiType CurryNo Y N N4 A3 AN4 N4 N1 ANS0..512 AN16 AN8 N8 N8 N6 N1..20 AN15 ANS0..128 固定值:0001 默认为人民币:CNY 0000为支付成功状态,0001为未支付,订单支付状态 OrderStatus Y 其它为失败状态,响应码列表参见附录B 分账类型 分账方式 商户订单分账信息 收单流水号 收单日期 渠道流水号 渠道日期 渠道时间 支付账单号 支付机构号 商品信息 商户私有域 交易扩展域 SplitType SplitMethod N N 原样返回交易请求数据 原样返回交易请求数据 分账数据,使用规则: MerSplitMsg N 商户号^金额或比例;商户号^金额或比例 AcqSeqId AcqDate ChannelSeqId ChannelDate ChannelTime PayBillNo BankInstNo CommodityMsg MerResv TranReserved N N N N N N N Y N N ChinaPay收单系统交易受理流水号 ChinaPay系统收单交易受理日期,格式:YYYYMMDD 支付渠道返回给ChinaPay的订单号 支付渠道返回给ChinaPay的交易日期 支付渠道返回给ChinaPay的交易时间 交易类型为账单支付时,下单时返回给商户的账单号 取值参见附录C 用来描述购买商品的信息,ChinaPay原样返回 商户订单号 MerOrderNo Y 商户交易日期 TranDate Y 商户交易时间 订单金额 TranTime OrderAmt Y Y ANS0..1024 商户自定义,ChinaPay原样返回 ANS0..1024 交易扩展域,JSON格式填写,商户交易请求内容原样返回 第 36 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

有卡交易必填,JSON格式,根据不同交有卡交易信息域 CardTranData N ANS0..1024 易类型填写不同的卡信息;填写后采用RSA加密 单位:分钟,以ChinaPay接收交易的支付超时时间 PayTimeOut N N6 时间为准,超过此时间段后用户支付成功的交易,不通知商户,系统自动退款 商户系统时间毫秒数,如商户开户时开通了时间戳防钓鱼校验,ChinaPay系统防钓鱼时间戳 TimeStamp N ANS0..20 配置商户系统时间和商户系统时间的时间差(以分钟为单位),如时间超过系统配置的间隔,则会进行防钓鱼提示或拦截交易 客户浏览器端IP,如商户开通校验IP防钓鱼客户浏览器IP 防钓鱼验证,可填写此域做防钓鱼使RemoteAddr N ANS0..128 用。ChinaPay会获取持卡人访问IP和该字段进行比较,如果不一致,则会进行防钓鱼提示或拦截交易 订单完成日期 CompleteDate N N8 N6 YYYYMMDD,支付完成后,ChinaPay返回支付完成日期 hhmmss,支付完成后,ChinaPay返回支付完成时间 商户报文签名信息,报文中的所有字段都参与签名(Signature除外) 订单完成时间 CompleteTime N 签名 说明: ?

Signature Y 应答数据的签名验证

支付交易完成后,支付应答会分前台页面跳转和后台Http通知方式返回给商户,商户需要对ChinaPay

返回报文签名进行验签,以确定此报文是由ChinaPay发出。

注:

后台返回字段需要通过urldecode进行解码后还原原始报文,前台返回报文无需此操作。 JAVA解码方法:URLDecoder.decode(value, \PHP解码方法:urldecode(value)

.NET解码方法:HttpUtility.UrlDecode(value,\

7 后续类交易接口

后续类交易主要是指对已发生的交易,做后续的相关的交易处理;包括:退款、退款撤销、退款重汇、消费撤销、预授权撤销、预授权完成撤销、预授权完成、通知分账。退款的相关操作也可以在企业门户系统中进行操作,但是商户只能选择一种方式进行操作。 7.1 接入地址

ChinaPay的网上支付服务采用WEB服务的方式允许商户接入,其中: ?

0401退款、0402退款撤销、0409退款重汇、9908通知分账的交易接收地址如下:

第 37 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

?

测试环境请求地址:

http://newpayment-test.chinapay.com/CTITS/service/rest/forward/syn/000000000065/0/0/0/0/0 ?

生产环境请求地址:

https://payment.chinapay.com/CTITS/service/rest/forward/syn/000000000065/0/0/0/0/0 ? ?

0403消费撤销、0203预授权撤销、0204预授权完成撤销、0202预授权完成的交易接收地址如下:

测试环境请求地址:

http://newpayment-test.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0

? 生产环境请求地址:

https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0

7.2 请求报文

商户向ChinaPay的交易平台提交订单,表单采用“post”方式提交,提交页面中表单(FORM)的应该包括如下(注意各字段的大小写,编码方式统一用UTF-8): 字段中文描述 版本号 接入类型 收单机构号 商户号 商户订单号 商户交易日期 字 段 Version AccessType AcqCode MerId MerOrderNo TranDate 是否必填 长度 Y N N Y Y Y AN8 N1 N15 N15 AN1..32 N8 N6 AN1..32 N8 备注 固定值:20140728 0:商户身份接入(默认) 1:机构身份接入 ChinaPay分配 由ChinaPay分配的15位定长数字,用于确认商户身份 退款订单号 商户提交交易的日期,例如交易日期为2015年1月2日,则值为20150102 商户提交交易的时间,例如交易时间10点11分22秒,则值为101122 原始交易订单号 商户原始支付交易日期 单位:分 当TranType=0401退款交易时 退款金额 RefundAmt N N1..20 RefundAmt必填 当TranType为其他值时,交易时不能传RefundAmt 单位:分 当TranType=0202或9908时,OrderAmt订单金额 OrderAmt N N1..20 必填 当TranType为其他值,交易时不能传OrderAmt 交易类型 TranType Y N4 第 38 页 共 35 页

此接口TranType填值范围: 商户交易时间 商户交易订单号 原始商户交易日期 TranTime OriOrderNo OriTranDate Y Y Y

http://www.ChinaPay.com Chinapay新一代商户接入手册

0403消费撤销 0401退款交易 0202预授权完成 0203预授权撤销 0204预授权完成撤销 0402 退款撤销 0409 退款重汇 9908 通知分账 业务类型 BusiType Y N4 固定值:0001 商户后台交易应答接收地址,ChinaPay商户后台通知地址 MerBgUrl N ANS0..256 会根据后台商户响应来判定是否重新发送后台应答流水,以确保后台应答的接收 交易币种 CurryNo N A3 默认为人民币:CNY 不分账不填写此域; 如需要分账,填写格式如下: 分账类型 SplitType N N4 0001:实时分账 0002:延时分账 分账交易退款,此字段传0001 订单分账方式 分账方式 SplitMethod N N1 0:按金额分账 1:按比例分账 商户订单分账信息 商户私有域 分账数据,使用规则: MerSplitMsg N ANS0..512 商户号^金额或比例;商户号^金额或比例 MerResv N ANS0..1024 商户自定义,ChinaPay原样返回 交易扩展域,JSON格式填写,如:{\BusiId \P2\。商户自定义使用,商户可根据商户自定义业务字段BusiId来填写P1到P10参数, 系统会存储P1到P10参数数据,可供商户交易扩展域 TranReserved N ANS0..1024 查询使用。 BusiId业务编号ANS0..8 商户根据自身业务情况,由CP分配业务编号,供商户使用,此域可和P1至P10配合使用,可以使P1至P10代表不同的业务含义 P1-P10业务参数ANS0..512 商户自定义使用 签名 说明:

第 39 页 共 35 页

Signature Y 商户报文签名信息,报文中的所有字段都参与签名(Signature除外)

http://www.ChinaPay.com Chinapay新一代商户接入手册

?

交易数据的数字签名

商户发送给ChinaPay的交易数据均需要进行数字签名。对于版本号为20140728的签名数据使用客户端chinapaysecure或SecssUtil进行签名、验签。 7.3 同步响应

对于0401退款、0402退款撤销、0409退款重汇、9908通知分账的交易,当ChinaPay交易平台接收商户提交的订单后,会返回商户同步处理结果。包括如下(响应数据以key=value形式,用”&”符号分隔): 字段中文描述 字 段 是否必填 长度 备注 0000:成功 响应码 respCode Y AN4 1003:商户已审核 其他为失败。 响应码描述 签名 说明: ?

交易数据的数字签名

ChinaPay返回给商户同步应答时,会对响应码、响应码描述进行签名,商户需要进行验签。 7.4 应答报文

当ChinaPay交易平台处理完成时,ChinaPay会将订单信息发送给商户,应答的数据域段包括如下内容:(以页面Form数据为例,注意大小写,编码方式统一用UTF-8,后台应答数据的发送的域段名和下面的一致) 字段中文描述 版本号 接入类型 收单机构号 商户号 商户订单号 商户交易日期 商户交易时间 商户交易订单号 原始商户交易日期 退款金额 字 段 Version AccessType AcqCode MerId MerOrderNo TranDate TranTime OriOrderNo OriTranDate 是否必填 长度 Y N N Y N Y Y Y Y AN8 N1 N15 N15 AN1..32 N8 N6 AN1..32 N8 N1..20 N1..20 N4 N4 A3 第 40 页 共 35 页

备注 固定值:20140728 0:商户身份接入(默认) 1:机构身份接入 ChinaPay分配 由ChinaPay分配的15位定长数字,用于确认商户身份 退款订单号 年月日 时分秒 原始交易订单号 商户原始支付交易日期 单位:分 当TranType=0401退款交易时返回 单位:分 当TranType=0202预授权完成时返回 0401 0001 默认为人民币:CNY respMsg Signature Y Y ANS0..128 响应码描述 商户报文签名信息,respCode+respMsg的签名 RefundAmt N 订单金额 交易类型 业务类型 交易币种 OrderAmt TranType BusiType CurryNo N Y Y N

http://www.ChinaPay.com Chinapay新一代商户接入手册

订单状态 分账类型 分账方式 商户订单分账信息 收单流水号 收单日期 商户私有域 交易扩展域 订单完成日期 订单完成时间 签名 说明: ?

应答数据的签名验证

支付交易完成后,支付应答会分前台页面跳转和后台Http通知方式返回给商户,商户需要对ChinaPay返回报文签名进行验签,以确定此报文是由ChinaPay发出。

注:

后台返回字段需要通过urldecode进行解码后还原原始报文,前台返回报文无需此操作。 JAVA解码方法:URLDecoder.decode(value, \PHP解码方法:urldecode(value)

.NET解码方法:HttpUtility.UrlDecode(value,\

OrderStatus SplitType SplitMethod MerSplitMsg AcqSeqId AcqDate MerResv TranReserved CompleteDate CompleteTime Signature Y N N N N N N N N N Y AN4 N4 N1 ANS0..512 AN16 AN8 0000为成功,详见附录B 原样返回交易请求数据 原样返回交易请求数据 原样返回交易请求数据 ChinaPay收单系统交易受理流水号 YYYYMMDD ANS0..1024 商户自定义,ChinaPay原样返回 ANS0..1024 商户交易请求内容原样返回 N8 N6 YYYMMDD hhmmss 商户报文签名信息,报文中的所有字段都参与签名(Signature除外) 8 交易查询接口

8.1 接入地址

ChinaPay的网上支付服务采用WEB服务的方式允许商户接入,接收交易数据的地址为: 测试环境:

http://newpayment-test.chinapay.com/CTITS/service/rest/forward/syn/000000000060/0/0/0/0/0 生产环境:

https://payment.chinapay.com/CTITS/service/rest/forward/syn/000000000060/0/0/0/0/0 8.2 请求报文

商户向ChinaPay的支付接入地址提交订单信息,表单采用“post”方式提交,提交页面中表单(FORM)的应该包括如下(注意各字段的大小写,编码方式统一用UTF-8): 字段中文描述 版本号 商户号 商户订单号 商户交易日期 字 段 Version MerId MerOrderNo TranDate 是否必填 长度 Y Y Y Y AN8 N15 AN1..32 N8 第 41 页 共 35 页

备注 固定值:20140728 由ChinaPay分配的15位定长数字,用于确认商户身份 商户订单号 格式:yyyyMMdd

http://www.ChinaPay.com Chinapay新一代商户接入手册

商户交易时间 交易类型 业务类型 TranTime TranType BusiType N Y Y N6 N4 N4 格式:HHmmss 0502 固定值:0001 交易扩展域,JSON格式填写,如:{\BusiId \P2\。商户自定义使用,商户可根据商户自定义业务字段BusiId来填写P1到P10参数, 系统会存储P1到P10参数数据,可供商户交易扩展域 TranReserved N ANS0..1024 查询使用。 BusiId业务编号ANS0..8 商户根据自身业务情况,由CP分配业务编号,供商户使用,此域可和P1至P10配合使用,可以使P1至P10代表不同的业务含义 P1-P10业务参数ANS0..512 商户自定义使用 签名 说明: ?

交易数据的数字签名

商户发送给ChinaPay的交易数据均需要进行数字签名。对于版本号为20140728的签名数据使用客户端chinapaysecure或SecssUtil进行签名、验签。 8.3 应答报文

ChinaPay同步返回查询结果应答给商户,以下是否原始报文为“Y”的表示返回的报文数据为商户提交的原始报文数据,应答的数据域段包括如下内容:(应答数据格式为:k1=v1&?&kn=vn,key值注意大小写,编码方式统一用UTF-8),若查询失败,只返回应答码和应答信息。 字段中文描述 响应码 字 段 respCode 是否必填 Y 长度 AN4 ANS0..128 AN8 N1 N15 N15 备注 0000:查询成功 其他:查询失败 响应码描述 固定值:20140728 0:商户身份接入(默认) 1:机构身份接入 ChinaPay分配 由ChinaPay分配的15位定长数字,用于确认商户身份 Signature Y 商户报文签名信息,报文中的所有字段都参与签名(Signature除外) 响应码描述 版本号 接入类型 收单机构号 商户号 商户订单号 商户交易日期 商户私有域信息 respMsg Version AccessType AcqCode MerId MerOrderNo TranDate MerResv Y Y N N Y N Y N AN1..32 商户订单号 N8 ANS0..1YYYYMMDD ChinaPay原样返回 第 42 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

024 订单状态 订单金额 已退款金额 交易币种 分账类型 分账方式 OrderStatus OrderAmt RefundSumAmount CurryNo SplitType SplitMethod Y Y Y N N N N N N N N N Y AN4 N1..20 N1..20 A3 N4 N1 ANS0..512 AN16 AN8 ANS0..1024 N8 N6 0000表示支付成功,详见附录B 单位:分 单位:分 若未退款则为 0 默认为人民币:CNY 原样返回交易请求数据 原样返回交易请求数据 原样返回交易请求数据 ChinaPay收单系统交易受理流水号 YYYYMMDD 交易扩展域,JSON格式,BusiId和P1-P10组成的json字符串 YYYMMDD hhmmss 商户报文签名信息,报文中的所有字段都参与签名(Signature除外) 商户订单分账信息 MerSplitMsg 收单流水号 收单日期 交易扩展域 订单完成日期 订单完成时间 签名 说明:

AcqSeqId AcqDate TranReserved CompleteDate CompleteTime Signature respCode表示同步应答码,只有\才为处理成功,其他均为处理失败。 ?

应答数据的签名验证

支付交易完成后,支付应答会分前台页面跳转和后台Http通知方式返回给商户,商户需要对ChinaPay返回报文签名进行验签,以确定此报文是由ChinaPay发出。

9 交易对账接口

9.1 概述

对于已经提交给ChinaPay平台的交易,ChinaPay会在第二天生成商户对账文件,包括T-1日商户所有的交易(其中退款交易为商户已审核通过的退款明细),以供商户对账使用。对账文件生成后,ChinaPay后台通知商户下载或是通过FTP推送给商户。使用该接口,商户需要事先联系我司运营中心(95534-6;cp_operation@chinapay.com),进行接收地址/FTP地址的配置,配置完成后方可使用。 9.2 通知商户的地址规范

目前商户获取对账文件,有http通知及FTP推送两种方式,具体说明如下: 9.2.1

https方式

1)商户提供https地址(不能包含参数)

2)ChinaPay向商户提供的URL发送请求,请求中包含对账文件下载地址,其中:download为参数名称 序号 1 字段 download 含义 文件下载地示例 https://xxx.xxx.xxx/xxxx/000050000022826_20150627_2015062915500第 43 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

址 0_x_y.txt.zip 3)商户地址收到ChinaPay的通知请求后,需返回包含“ChinapayOK”,表示商户已收到通知。否则ChinaPay会反复通知5次后停止重发;商户如有需要,可联系ChinaPay运营中心,由人工重发通知。

4)ChinaPay保留三周的下载文件 9.2.2

ftp方式

1)商户提供ftp地址,路径、用户名及密码 2)ChinaPay向商户提供的ftp地址推送对账文件

3)ChinaPay向商户ftp推送对账文件失败后,ChinaPay会反复推送5次后停止推送;商户如有需要,可联系ChinaPay运营中心,由人工重新发送。

4)ChinaPay保留三周的下载文件 9.3 对账文件名规则

文件名格式:商户号_支付日期_生成文件时间戳(yyyyMMddHHmmss)_x_y.txt.zip 1. 商户号:长度15位 2. 支付成功日期:8位 3. 时间戳:yyyyMMddHHmmss

4. x是对账文件总个数,y是第几个文件,如果某一天的对账文件太大,ChinaPay会分开发送

例如: 000050000022826_20150627_20150629155000_2_1.txt.zip 9.4 商户对账文件格式(版本号:20150813)

?

商户对账文本提交数据内容

文件样例如下:

1. 每行各字段用竖线分隔 2. 首行为汇总信息,依次为: 字段 Version countPay countPayAmt countPaySuc countPaySucAmt countPayCancel countPayCancelAmt countPayCancelSuc countPayCancelAmtSuc countRefundSuc countRefundAmtSuc countRefundCancel countRefundCancelAmt countRefundCancelSuc 含义 对账文件版本号 支付总笔数 支付总金额 支付成功笔数 支付成功金额 支付撤销总笔数 支付撤销总金额 支付撤销成功笔数 支付撤销成功金额 退款总笔数 退款总金额 退款撤销总笔数 退款撤销总金额 退款撤销成功笔数 格式 8位 整数,如123 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 countRefundCancelAmtSuc 退款撤销成功金额 第 44 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

3. 第二行开始为明细,字段含义如下表所示: 序号 字段 1 2 3 4 5 6 7 8 TranDate AcqCode MerId TranReserved LiqDate MerOrderNo BankInstNo CurryNo TranType 含义 交易日期 收单机构号 商户号 交易扩展域 清算日期 商户订单号 支付机构号 币种 交易类型 示例 商户提交日期 固定000000000000014 json字符串,包含BusiId、P1-P10 备用,目前为空值 CNY 0001个人网银支付 0002企业网银支付 0003授信交易 0004快捷支付 9 0005账单支付 0006认证支付 0007分期付款 0202预授权完成交易 0401:退款 0402:退款撤销 10 11 12 13 BusiType OrderStatus 业务类型 订单状态 0000:成功 其他:非成功(具体含义参见附录B) ChannelRespCode 渠道应答码 CompleteDate 支付完成日期(年月日) YYYYMMDD -收单收到银行应答的日期 14 15 16 17 18 19 20 CompleteTime 支付完成时间(时分秒) HHSSMM -收单收到银行应答的时间 交易金额 ChinaPay流水号 ChinaPay日期 ChinaPay时间 原始支付商户日期 原始支付交易订单号 借贷标示 单位:分(20位) ChinaPay流水号 ChinaPay流水日期 ChinaPay时间 原商户订单支付日期 原商户订单号 0D:未知 01:借记卡 02:贷记卡 05:预付费 06:存折 OrderAmt AcqSeqId AcqDate AcqTime OriTranDate OriOrderNo DCMark 21 22 MerResv 商户保留域 文件最后一行为整个文件的签名串 文件示例:

第 45 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

20140701|120|20000|1|50|1|10|1|10 20140630|88020000|000050000022826|?? 20140630|88020000|000050000022826|?? Signature签名信息

如上,Signature为对整个文档签名得到的签名数据信息,换行符没有参与签名。 备注:

因为每行数据字段是用“|”隔开的。如果商户私有域数据里面含有“|”符号,这里将使用空格代替商户私有域中的“|”符号。假设商户私有域为”123|6666”替换为”123 6666” 其中签名验证是按照修改后的商户私有域数据来进行验签的。即”123 6666” 每个对账文件中交易笔数上限200万条,超过200万条的交易会另出一个对账文件。

?

交易数据的数字签名

商户接收到的ChinaPay对账文件,需要对其验证签名以确定是由ChinaPay发出的对账文件的合法性。

10 结算对账接口

10.1 概述

对于已经提交给ChinaPay平台的交易,ChinaPay会在到达商户结算周期时,产生商户的结算明细文件,供商户做资金核对、交易对账使用。结算文件生成后,ChinaPay后台通知商户下载或是通过FTP推送给商户。使用该接口,商户需要事先联系我司运营中心(95534-6;cp_operation@chinapay.com),进行接收地址/FTP地址的配置,配置完成后方可使用。 10.2 通知商户的地址规范

目前商户获取结算文件,有https通知及FTP推送两种方式,具体说明如下: 10.2.1 https方式

1)商户提供https地址(不能包含参数)

2)ChinaPay向商户提供的URL发送请求,请求中包含结算文件下载地址,其中:download为参数名称 序号 1 字段 download 含义 文件下载地址 示例 https://xxx.xxx.xxx/xxxx/000050000022826_20150627_20150629155000.txt.zip 3)商户地址收到ChinaPay的通知请求后,需返回包含“ChinapayOK”,表示商户已收到通知。否则ChinaPay会反复通知5次后停止重发;商户如有需要,可联系ChinaPay运营中心,由人工重发通知。

4)ChinaPay保留一周的下载文件 10.2.2

ftp方式

1)商户提供ftp地址,路径、用户名及密码 2)ChinaPay向商户提供的ftp地址推送结算文件

3)ChinaPay向商户ftp推送结算文件失败后,ChinaPay会反复推送5次后停止推送;商户如有需要,可联系ChinaPay运营中心,由人工重新发送。

第 46 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

4)ChinaPay保留一周的下载文件 10.3 结算文件名规则

结算文件名规则文件名格式:商户号_结算日期_生成文件时间戳(yyyyMMddHHmmss).txt.zip 1. 商户号:长度15位 2. 支付成功日期:8位 3. 时间戳:yyyyMMddHHmmss

例如: 000050000022826_20150627_20150629155000.txt.zip 10.4 商户结算文件格式(版本号:20150813)

?

文件样例如下:

1. 每行各字段用竖线分隔 2. 首行为汇总信息,依次为: 字段 Version liqDate PurCnt PurAmt FeeAmt RefCnt RefAmt RefCancelCnt RefCancelAmt ReverseCnt ReverseAmt LiqAmt 含义 结算文件版本号 结算日期 支付笔数 支付金额 手续费金额 退款笔数 退款金额 退款撤销笔数 退款撤销金额 冲正笔数 冲正金额 结算金额 格式 8位 YYYYMMDD 整数,如123 小数,如123.45 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 整数,如123 小数,如123.45 小数,如123.45 3. 第二行开始为明细,字段含义如下表所示: 序号 字段 1 2 3 4 5 6 7 8 9 10 11 TranDate AcqCode MerId 含义 交易日期 收单机构号 商户号 示例 固定000000000000014 json字符串,包含BusiId、P1-P10 YYYYMMDD CNY 0001:个人网银支付 0401:退款 OrderStatus 订单状态 0000:成功 TranReserved 交易扩展域 LiqDate MerOrderNo BankInstNo CurryNo TranType 清算日期 商户订单号 支付机构号 币种 交易类型 CompleteDate 支付成功日期(时分秒) YYYYMMDD 收到银行应答的日期 第 47 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

12 13 14 15 16 CompleteTime 支付完成时间(时分秒) HHSSMM 收到银行应答的时间 OrderAmt 订单金额 0D:未知 01:借记卡 17 02:贷记卡 05:预付费 06:存折 18 19 20 21 22 23 MerResv AcqDate AcqTime AcqSeqId OriTranDate OriOrderNo 商户私有域 ChinaPay日期 ChinaPay时间 ChinaPay流水号 原始支付商户日期 原始支付交易订单号 ChinaPay日期 ChinaPay时间 ChinaPay流水号 原商户订单支付日期 原商户订单号 RefundAmount 退款金额 FeeAmt LiqAmt DCMark 手续费 结算金额 借贷标示 最后一行为整个文件的签名信息 文件示例:

20140701|120|20000|20|1|50|1|10|1|10|19950 20140630|88020000|000050000022826|?? 20140630|88020000|000050000022826|?? ??

Signature签名信息

如上,Signature为对整个文档签名得到的签名数据信息,换行符没有参与签名。 备注:

因为每行数据字段是用“|”隔开的。如果商户私有域数据里面含有“|”符号,这里将使用空格代替商户私有域中的“|”符号。假设商户私有域为”123|6666”替换为”123 6666” 其中签名验证是按照修改后的商户私有域数据来进行验签的。即”123 6666”

?

交易数据的数字签名

商户接收到的ChinaPay对账文件,需要对其验证签名以确定是由ChinaPay发出的对账文件的合法性。

11 附录A 常见接入问题及解答

1、 开发过程中,商户签名报SecurityException异常

检查交易证书密码是否配置正确,并检查配置文件security.properties是否配置正确。 需要将security.properties放在类路径下,并配置如下: #交易证书路径

sign.file=D:/cert_cp/000000000000001.pfx

第 48 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

#交易证书密码

sign.file.password=123456 #交易证书的密钥容器格式 sign.cert.type=PKCS12

#报文中不参与签名的字段名称,多个字段用逗号进行分隔 sign.invalid.fields=Signature,CertId #验签证书路径

verify.file=D:/cert_cp/cp_test.cer #签名值字段名称

signature.field=Signature

2、 开发过程中,商户签名报“未初始化配置”异常

检查签名或验签之前是否调用SecssUtil.init();方法,如果未调用,则调用SecssUtil.init()方法初始化安全签名配置

3、 签名过程出现 Illegal key size错误

请检查下载的pfx证书是否正确,或者重新申请CFCA交易证书 4、 交易失败!错误信息:证书未配置

这个报错通常有两个原因,一是没有申请交易证书,二是交易地址提交错误,测试地址和正式地址搞错了。

5、 交易失败!错误信息:验签失败。

需要确认交易证书在Internet选项---内容---证书---颁发给的名字和在商户服务管理系统里面查到的交易证书的证书名称是一样的。证书确认没有问题,需要确认参加签名的字段和传过来的字段是一样的。

12 附录B 应答码说明

状态码 状态描述 0000 0001 0002 0003 0004 0005 0006 0007 0008 成功 初始状态 退款重汇失败 消费交易失败 交易已撤销 签约成功 签约失败 重复签约 退款交易成功 第 49 页 共 35 页

http://www.ChinaPay.com Chinapay新一代商户接入手册

0009 0010 0011 0012 0014 0024 0025 0026 0027 0029 0030 0031 0037 0038 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 2001 2002 2003 退款交易失败 退款重汇成功 交易撤销失败 交易撤销成功 数据接收成功 退款撤销成功 交易重复支付 预授权完成处理成功 预授权完成处理失败 预授权撤销成功 预授权撤销失败 退款撤销失败 预授权完成撤销成功 预授权完成撤销失败 快捷支付成功状态 商户审核不通过 商户已审核 交易退款中 交易撤销中 退款重汇中 退款撤销中 预授权完成处理中 预授权撤销中 重汇已申请 重汇审核通过 重汇审核不通过 重汇完成 预授权完成撤销中 交易发送成功 交易发送失败 初始发送状态 生成支付账单号成功 经办成功 签约处理中 差错已对账可退款 商户已申请 初始反向通知状态 反向成功状态 反向失败状态 报文解析失败 无效的令牌 卡已过期 第 50 页 共 35 页

本文来源:https://www.bwwdw.com/article/l63p.html

Top