NetPayClient用户手册(3)

2019-03-28 08:54

http://www.ChinaPay.com NetPayClient用户手册

参数说明:

String SignMsg 用于要签名的字符串 返回值:

String CheckValue[256]即NetPayClient根据上述输入参数生成的商户数字签名,长度为256字节的 字符串。

注:该方法在类chinapay. SecureLink中。

? 对一段字符串的签名验证函数verifyAuthToken

方法说明:

public boolean verifyAuthToken (String PlainData, String CheckValue) 作用:

验证目标字符串的数字签名是否正确。 参数说明:

String PlainData 用于数字签名的字符串。

String CheckValue 校验值,要验证的字符串的数字签名,长度为256字节的字符串。 返回值:

true 表示验证通过成功;否则表示失败。 注:该方法在类chinapay. SecureLink中。

3.5.3.1 使用示例代码

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

? 签名示例代码

//初始化key文件:

chinapay.PrivateKey key=new chinapay.PrivateKey(); chinapay.SecureLink t; boolean flag;

String MerId, OrdId, TransAmt, CuryId, TransDate, TransType,ChkValue; String plainData, ChkValue2 ;

flag=key.buildKey(MerId,0,\ if (flag==false) {

System.out.println(\ return; }

t=new chinapay.SecureLink (key); // 对订单的签名

ChkValue= t.signOrder(MerId, OrdId, TransAmt, CuryId, TransDate, TransType) ; // 对一段字符串的签名 plainData = \ChkValue2 = t.sign(plainData) ;

第 11 页 共 27 页

http://www.ChinaPay.com NetPayClient用户手册

? 验证签名示例代码

chinapay.PrivateKey key=new chinapay.PrivateKey(); chinapay.SecureLink t; boolean flag; boolean flag1;

String MerId, OrdId, TransAmt, CuryId, TransDate, TransType,ChkValue; String plainData, ChkValue2

flag=key.buildKey(\ if (flag==false) {

msg=\ return; }

t=new chinapay.SecureLink (key);

flag1=t.verifyTransResponse(MerId,OrdId, TransAmt, CuryId, TransDate, TransType, OrderStatus, ChkValue); // ChkValue为ChinaPay应答传回的域段

if(flag1!=0) { }

//签名验证错误处理

// 对一段字符串的签名验证 plainData = \

flag1 = t. verifyAuthToken (plainData, ChkValue2) ; // ChkValue2为ChinaPay应答传回的域段 if(flag1) {

//签名验证错误处理 }

3.5.3. NetPayClient for Win32使用说明

3.5.3.2 核心文件清单 名 称 ChinaPay.dll netpay.dll 安装后所在的路径 安装时自选(如c:\\netpay) 与Chinapay.dll同一个目录下 也可放在在windows系统路径下的system32目录下(c:\\windows\\system for win95,98,etc) 安装时自选(如c:\\netpay) 可拷贝至windows路径下,如:c:\\winnt 第 12 页 共 27 页

用 途 采用COM方式对netpay.dll的方法封装,需要用regsvr32注册 提供定单签名及验证ChinaPay签名的函数 netpay.lib MerPrk.key 程序调用netpay.dll函数编译时须连接此文件 商户签名私钥 http://www.ChinaPay.com NetPayClient用户手册

for NT或c:\\windows for win95,98 也可以放置到任意路径下,但是需要调用方法指定文件位置和名称 PgPubk.key 可拷贝至windows路径下c:\\winnt for NT或c:\\windows for win95,98 也可以放置到任意路径下,但是需要调用方法指定文件位置和名称 ChinaPay签名公钥 ? 安装程序

将netpay for NT.zip解开后运行setup.exe.,安装程序会将指定文件复制到指定目录下。

? 手动安装

如果安装程序运行后出错 (可能是由于系统环境异常导致),可采用手工安装的方法,具体步骤如下:

将核心文件拷贝到相应的目录下;

注册ChinaPay.dll (在命令行里键入regsvr32 [gensign的路径],此控件需要VC环境。建议是用Dependency Walker看一下系统是否包含有所需的DLL) ;

3.5.3.3 方法说明

? 设置私钥路径setMerKeyFile

方法说明:

void setMerKeyFile (String KeyFile) 作用:

设置商户私钥所在的位置。 参数说明:

String KeyFile 秘钥的文件路径(包含文件名称)。例如:\MerPrk.key”

? 取消设置私钥路径unsetMerKeyFile

void unsetMerKeyFile () 作用:

取消原先商户私钥所在的位置。恢复默认路径的秘钥文件位置。 参数说明: 无

? 设置ChinaPay公钥路径setPubKeyFile

方法说明:

void setPubKeyFile (String KeyFile) 作用:

设置ChinaPay公钥所在的位置。 参数说明:

String KeyFile ChinaPay公钥的文件路径(包含文件名称)。例如:\”

第 13 页 共 27 页

http://www.ChinaPay.com NetPayClient用户手册

? 取消设置公钥路径unsetPubKeyFile

void unsetPubKeyFile () 作用:

取消原先调用setPubKeyFile设置的ChinaPay公钥所在的位置。恢复默认路径的公钥文件位置。 参数说明: 无

? 订单签名函数sign

方法说明:

public String sign (String MerId, String OrdId, String TransAmt, String CuryId, String TransDate, String TransType)

参数说明:

String MerId 商户号,长度为15个字节的数字串,由ChinaPay或清算银行分配。

String OrdId 订单号,长度为16个字节的数字串,由商户系统生成,失败的订单号允许重复支付。 String TransAmt 交易金额,长度为12个字节的数字串,例如:数字串\表示12.34元。 String CuryId

货币代码, 长度为3个字节的数字串,目前只支持人民币,取值为\。

String TransDate 交易日期,长度为8个字节的数字串,表示格式为:YYYYMMDD。

String TransType 交易类型,长度为4个字节的数字串,取值范围为:\和\, 其中\表示消费交易,\表示退货交易。

返回值:

String CheckValue[256] 即NetPayClient根据上述输入参数生成的商户数字签名,长度为256字节的字符串。

注:如果不采用COM方式调用,而采用LoadLibrary装载netpay.dll的调用时方法名称为需要通过Dependency Walker来查看对应名称。

? 验证交易应答函数check

方法说明:

public boolean check(String MerId, String OrdId, String TransAmt, String CuryId, String TransDate, String TransType, String OrderStatus, String CheckValue)

参数说明: String MerId String OrdId String CuryId

商户号,长度为15个字节的数字串,由ChinaPay分配。

订单号,长度为16个字节的数字串,由商户系统生成,失败的订单号允许重复支付。 货币代码, 长度为3个字节的数字串,目前只支持人民币,取值为\。

String TransAmt 交易金额,长度为12个字节的数字串,例如:数字串\表示12.34元。 String TransDate 交易日期,长度为8个字节的数字串,表示格式为: YYYYMMDD。

String TransType 交易类型,长度为4个字节的数字串,取值范围为:\和\, 其中\表示消费交易,\表示退货交易。

String OrderStatus 交易状态,长度为4个字节的数字串。详见交易状态码说明。

String CheckValue 校验值,即ChinaPay对交易应答的数字签名,长度为256字节的字符串。 返回值:

true 表示成功,即该交易应答为ChinaPay所发送,商户根据“交易状态”进行后续处理;否则表示失败,即无效应答,商户可忽略该应答。

第 14 页 共 27 页

http://www.ChinaPay.com NetPayClient用户手册

注:

如果采用COM方式调用,方法返回值为字符串形式的“0”表示验签成功。

如果不采用COM方式调用,而采用LoadLibrary装载netpay.dll的调用时方法名称为需要通过Dependency Walker来查看对应名称。方法的返回值为true表示验签成功。

? 对一段字符串的签名函数signData

方法说明:

public String signData (String MerId, String SignMsg) 参数说明:

String MerId 商户号,长度为15个字节的数字串,由ChinaPay分配。 String SignMsg 用于要签名的字符串 返回值:

String CheckValue[256]即NetPayClient根据上述输入参数生成的商户数字签名,长度为256字节的 字符串。

注:如果不采用COM方式调用,而采用LoadLibrary装载netpay.dll的调用时方法名称为需要通过Dependency Walker来查看对应名称。

? 对一段字符串的签名验证函数checkData

方法说明:

public boolean checkData (String PlainData, String CheckValue) 参数说明:

String PlainData 用于数字签名的字符串。

String CheckValue 校验值,要验证的字符串的数字签名,长度为256字节的字符串。 返回值:

true 表示验证通过成功;否则表示失败。 注:

如果采用COM方式调用,方法返回值为字符串形式的“0”表示验签成功。

如果不采用COM方式调用,而采用LoadLibrary装载netpay.dll的调用时方法名称为需要通过Dependency Walker来查看对应名称。方法的返回值为true表示验签成功。

3.5.3.4 使用示例代码

以C#为例说明调用方法:

首先将Com类型信息转换为.NET元数据

tlbimp ChinaPay.dll /out: ChinaPay_tsl.dll (tlbimp 为vs.net提供的工具)

其次项目工程中,在project->add reference里,选择com,将ChinaPay_tsl.dll引入。

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

? 签名示例代码

using System; using ChinaPay_tsl;

namespace ConsoleApplication1

第 15 页 共 27 页


NetPayClient用户手册(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福建华泰集团2012年度节能目标考核自查报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: