http://www.ChinaPay.com Chinapay新一代商户接入手册
无 ?
获取加密后的密码:getEncPin 方法说明:
public string getEncPin() 作用:
获取加密后的密码字符串。 参数说明: 无 返回值:
加密后的密码字符串。 ?
获取加密后的密文字符串:getEncValue 方法说明:
public string getEncValue() 作用:
获取加密后的密文字符串。 参数说明: 无 返回值:
加密后的密文字符串。 ?
获取商户签名、验签、加密及解密的处理结果的方法:getErrCode 方法说明:
public string getErrCode() 作用:
获取商户签名、验签、加密及解密的处理结果。 参数说明: 无 返回值:
00表示处理成功,其他表示处理失败。 ?
响应码描述信息:getErrMsg 方法说明:
Public string getErrMsg() 作用:
获取对响应码的中文描述。 参数说明: 无 返回值:
响应码的中文描述。
3.4.3.3 使用示例代码
(以下代码未经测试,仅供参考)
?
签名示例代码
第 21 页 共 35 页
http://www.ChinaPay.com Chinapay新一代商户接入手册
Hashtable myMap = new Hashtable(); myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\
myMap.Add(\
myMap.Add(\ myMap.Add(\
\
myMap.Add(\
myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\
myMap.Add(\测试-商品信息\ myMap.Add(\测试-商户保留域\ myMap.Add(\
\moteputr\\\
SecssUtil obj = new SecssUtil();
obj.init(string securityPropFile); //初始化安全控件:
obj.sign(myMap);
String chkValue = obj.getSign(); if(\
Console.writeLine(\签名过程发生错误,错误信息为-->\ }
String signature = obj.getSign();
Console.writeLine(\ ?
验证签名示例代码
Hashtable myMap = new Hashtable();
myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\
第 22 页 共 35 页
return;
http://www.ChinaPay.com Chinapay新一代商户接入手册
myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\
myMap.Add(\
myMap.Add(\ myMap.Add(\
\
myMap.Add(\
myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\ myMap.Add(\
myMap.Add(\测试-商品信息\ myMap.Add(\测试-商户保留域\ myMap.Add(\
\moteputr\\\
myMap.Add(\
SecssUtil obj = new SecssUtil();
obj.init(string securityPropFile); //初始化安全控件: obj.verify(myMap); if(\
Console.writeLine(\验签过程发生错误,错误信息为-->\ }
Console.writeLine(\验签通过。\?
敏感数据加密示例代码 string
securityPropFile=\erties\
string plainData=\SecssUtil obj = new SecssUtil();
obj.init(securityPropFile); //初始化安全控件: obj.encryptData (plainData); if(\
Console.writeLine(\加密过程发生错误,错误信息为\ }
第 23 页 共 35 页
return; return;
http://www.ChinaPay.com Chinapay新一代商户接入手册
Console.writeLine(\加密后的密文为:\
?
密码加密示例代码 String
securityPropFile=\erties\
String card=\String pin=\
SecssUtil obj = new SecssUtil();
obj.init(securityPropFile); //初始化安全控件: obj.encryptPin(pin, card);
if(\
Console.writeLine(\密码加密过程发生错误,错误信息为\ }
Console.writeLine(\加密后的PIN密文为:\3.4.4
NetPayClient for C使用说明 return;
3.4.4.1 核心文件清单
名 称 SecssUtil.h libsecss.a或.so Mer.pfx 放置的路径 根据项目工程的需要放置对应路径下 根据项目工程的需要放置对应路径下 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 用 途 用于C语言开发的应用头文件 签名数据和签证签名的主体方法库 商户签名证书(控台申请) cp.cer 可以放置到任意路径下,但是需要调用方法指定文件位置和名称 ChinaPay签名证书 3.4.4.2 方法说明
? 数据构造函数: build_data
方法说明:
bool build_data(KEY_VALUE_PAIR* from, size_t flen, char* to, size_t* tlen); 作用:
输入键值对的结构体数组生成排序后的字符串 参数说明:
from:输入键值对结构体数组 flen:输入的数组长度 to:用于存放输出字符串的地址 tlen:输出的字符串长度 返回值:
第 24 页 共 35 页
http://www.ChinaPay.com Chinapay新一代商户接入手册
1:成功 0:失败
?
数据签名函数: sign 方法说明:
bool sign(const char* filename, const char* password,
const unsigned char* unSignData, size_t uslen, unsigned char* signData, size_t* slen);
作用:
对传入的字符串进行数字签名 参数说明:
filename:秘钥文件路径 password:秘钥文件密码 unSignData:待签名字符串 uslen:代签名字符串长度
signData:存放签名结果的缓存地址
slen:存放签名结果的缓存长度,输入长度不可太短,否则函数返回失败。函数返回时此参数为实际签名结果的长度。
返回值: 1:成功 0:失败
?
数据签名验证函数: verify
size_t uslen, const unsigned char* signData, size_t slen);
bool verify(const char* filename, const unsigned char* unSignData, 作用:
验证目标字符串的签名是否正确 参数说明:
filename:秘钥文件路径 unSignData:源字符串地址 uslen:源字符串长度 signData:签名字符串地址 slen:签名字符串长度 返回值: 1:成功 0:失败
?
文件签名验证函数: verifyFile
bool verifyFile(const char* certpath, const char* filepath); 作用:
验证文件的签名是否正确 参数说明:
certpath:秘钥文件路径
第 25 页 共 35 页