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 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库新一代商户接入手册V2.7(6)在线全文阅读。
相关推荐: