NetPayClient用户手册(4)

2019-03-28 08:54

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

{

class Class1 {

[STAThread]

public static void Main() { //签名

NetPayClientClass a = new NetPayClientClass(); //设置密钥文件地址

a.setMerKeyFile(\ MerPrK.key\ // 如果不调用此方法,则按照默认目录处理 String ChkValue; String MerId; //商户号 //对订单的签名

ChkValue= a.sign(MerId,\ // 对一段字符串的签名 String ChkValue2;

String plainData = \ ChkValue2= a.signData(MerId,plainData); } } }

? 验证签名示例代码

using System; using ChinaPay_tsl;

namespace ConsoleApplication1 {

class Class1 {

[STAThread]

public static void Main() {

//验证签名

NetPayClientClass a = new NetPayClientClass(); //设置密钥文件地址

a.setPubKeyFile(\ // 如果不调用此方法,则按照默认目录处理 String ChkValue; String MerId; //商户号 //对订单的签名 string

flag

=

a.check(MerId,\ ChkValue); // ChkValue 为ChinaPay返回给商户的域段内容

第 16 页 共 27 页

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

// 对一段字符串的签名 String ChkValue2;

String plainData = \ChkValue2= a.signData(MerId,plainData); } }

}

3.5.4. NetPayClient for C使用说明

3.5.4.1. 核心文件清单 名 称 netpayclient.h libnpc.so / libnpc.a 所在的路径 用户自己决定放置位置 用户自己决定放置位置 用 途 用于C等开发语言的引用头文件 签名数据和验证签名的主体方法库(根据自己情况申请.so还是.a) MerPrk.key 设置NPCDIR环境变量指定文件位商户签名私钥 置,但是不能更改文件名 也可以不指定NPCDIR环境变量,但是需要调用方法指定文件位置和名称 设置NPCDIR环境变量指定文件位ChinaPay签名公钥 置,但是不能更改文件名 也可以不指定NPCDIR环境变量,但是需要调用方法指定文件位置和名称 PgPubk.key 3.5.4.2. 方法说明

? 设置私钥路径setMerKeyFile

方法说明:

void setMerKeyFile (char keyFile[256]) 作用:

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

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

? 取消设置私钥路径unsetMerKeyFile

void unsetMerKeyFile () 作用:

取消原先商户私钥所在的位置。恢复默认路径的秘钥文件位置。

第 17 页 共 27 页

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

参数说明: 无

? 设置商户公钥路径setPubKeyFile

方法说明:

void setPubKeyFile (char keyFile[256]) 作用:

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

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

? 取消设置公钥路径unsetPubKeyFile

void unsetPubKeyFile () 作用:

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

? 订单签名函数signOrder 函数说明:

int signOrder(char MerId[15], char OrdId[16], char TransAmt[12], char CuryId[3], char TransDate[8], char TransType[4], char CheckValue[256])

作用:

对传入的参数进行数字签名。 参数说明: char MerId[15] char OrdId[16] 支付。

char TransAmt[12] 元。

char CuryId[3] char TransDate[8] char TransType[4]

货币代码, 长度为3个字节的数字串,目前只支持人民币,取值为\。 交易日期,长度为8个字节的数字串,表示格式为: YYYYMMDD。 交易类型,长度为4个字节的数字串,取值范围为:\和\, 其中\交易金额,长度为12个字节的数字串,例如:数字串\表示12.34商户号,长度为15个字节的数字串,由ChinaPay分配。

订单号,长度为16个字节的数字串,由商户系统生成,失败的订单号允许重复

表示消费交易,\表示退货交易。

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

返回值:

0表示签名成功,否则表示失败。

? 验证交易应答函数verifyTransRespons

方法说明:

int verifyTransResponse(char MerId[15], char OrdId[16], char TransAmt[12], char CuryId[3], char TransDate[8], char TransType[4], char OrderStatus[4], char CheckValue[256])

第 18 页 共 27 页

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

作用:

验证传入参数的数字签名是否正确。 参数说明:

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

char OrdId[16] 订单号,长度为16个字节的数字串,由商户系统生成,失败的订单号允许重复支付。 char TransAmt[12] 交易金额,长度为12个字节的数字串,例如:数字串\表示12.34元。 char CuryId[3] 货币代码, 长度为3个字节的数字串,目前只支持人民币,取值为\。 char TransDate[8] char TransType[4]

交易日期,长度为8个字节的数字串,表示格式为: YYYYMMDD。 交易类型,长度为4个字节的数字串,取值范围为:\和\, 其中\

表示消费交易,\表示退货交易。

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

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

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

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

方法说明:

int signData (char MerId[15],char *SignMsg,char ChkValue[256]) 作用:

对传入的参数字符串进行数字签名。 参数说明:

char MerId[15] 商户号,长度为15个字节的数字串,由ChinaPay分配。 char *SignMsg 用于要签名的字符串

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

返回值:

0 表时签名成功,其他为对应错误代码

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

方法说明:

int verifySignData (char * PlainData, char CheckValue[256]) 作用:

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

char* PlainData 用于数字签名的字符串。

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

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

第 19 页 共 27 页

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

3.5.3.5 使用示例代码

? 签名示例代码

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

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

char MerId[16]; char OrdId[17]; char TransAmt[13]; char CuryId[4]; char TransDate[9]; char TransType[5];

setMerKeyFile(\ //如果不设置则按照NPCDIR环境变量取文件

// 对订单的签名

flag =signOrder(MerId, OrdId, TransAmt, CuryId, TransDate, TransType, ChkValue); if(flag != 0) { }

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

flag = signData (MerId ,plainData, ChkValue); // ChkValue为该字符串的签名 if(flag != 0) { } }

//签名失败 //签名失败 char ChkValue[257]; int flag;

? 验证签名示例代码

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

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

第 20 页 共 27 页


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

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

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

马上注册会员

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