银联电子支付报文说明
1 请求报文 2 Version 版本号 3 MerId 商户号 4 MerOrderNo 必填,变长 32位,同一商户同一交易日期内不可重复 5 TranDate 商户提交交易的日期,例如交易日期为2015年1月2日,则值为20150102 6 TranTime 商户提交交易的时间,例如交易时间10点11分22秒,则值为101122 7 OrderAmt 单位:分 8 BusiType 0001(注意:字符串类型) 9 MerPageUrl 0 商户前台页面接收交易结果的地址,用于引导使用者支付后返回商户网站页面 10 MerBgUrl 商户后台接收交易结果的地址 11 CommodityMsg 0 用来描述购买商品的信息,ChinaPay原样返回 12 MerResv 0 商户自定义,ChinaPay原样返回 13 14 Signature 商户报文签名信息,报文中的所有字段都参与签名(Signature除外) 15 16 应答报文 17 * MerId 商户号 18 * MerOrderNo 商户订单号 19 * TranDate 交易日期 年月日 20 * TranTime 交易时间 时分秒 21 * OrderAmt 订单金额 单位分 22 * OrderStatus 订单支付状态 0000为支付成功状态,0001为未支付,其它为失败状态 23 * MerResv 商户私有域 自定义原样返回 24 * TranReserved 交易扩展域 json格式 原样返回 25 * Signature 签名 26 27 1、开发过程中,商户签名报SecurityException异常 28 29 检查交易证书密码是否配置正确,并检查配置文件security.properties是否配置正确。 30 31 需要将security.properties放在类路径下,并配置如下: 32 33 #交易证书路径 34 35 sign.file=D:/cert_cp/000000000000001.pfx 36 37 #交易证书密码 38 39 sign.file.password=123456 40 41 #交易证书的密钥容器格式 42 43 sign.cert.type=PKCS12 44 45 #报文中不参与签名的字段名称,多个字段用逗号进行分隔 46 47 sign.invalid.fields=Signature,CertId 48 49 #验签证书路径 50 51 verify.file=D:/cert_cp/cp_test.cer 52 53 #签名值字段名称 54 55 signature.field=Signature 56 57 2、开发过程中,商户签名报“未初始化配置”异常 58 59 检查签名或验签之前是否调用SecssUtil.init();方法,如果未调用,则调用SecssUtil.init()方法初始化安全签名配置 60 61 3、签名过程出现 Illegal key size错误 62 63 请检查下载的pfx证书是否正确,或者重新申请CFCA交易证书 64 65 4、交易失败!错误信息:证书未配置 66 67 这个报错通常有两个原因,一是没有申请交易证书,二是交易地址提交错误,测试地址和正式地址搞错了。 68 69 5、交易失败!错误信息:验签失败。 70 71 需要确认交易证书在Internet选项---内容---证书---颁发给的名字和在商户服务管理系统里面查到的交易证书的证书名称是一样的。 72 证书确认没有问题,需要确认参加签名的字段和传过来的字段是一样的。 73 74 75 签名示例代码 76 77 require 'SecssUtil.class.php'; 78 79 $securityPropFile="D:/Zend/workspaces/DefaultWorkspace12/chinapaySECSS_PHP/security.properties"; 80 81 $paramArray=array( 82 83 "AcqCode"=>"000000000000014", 84 85 "BankInstNo"=>"", 86 87 "BusiType"=>"0001", 88 89 "CommodityMsg"=>"ChinaPay测试-商品信息", 90 91 "CurryNo"=> "CNY", 92 93 " AccessType"=>"0", 94 95 " MerBgUrl"=>"http://172.16.9.233:9080/CPOA_TEST/mer/receiveStdasServlet", 96 97 " MerPageUrl"=>"http://172.16.9.233:9080/CPOA_TEST/receive", 98 99 " MerSplitMsg"=>""); 100 101 $secssUtil = new SecssUtil(); 102 103 $secssUtil->init($securityPropFile); //初始化安全控件: 104 105 $secssUtil->sign($paramArray); 106 107 if("00"!==$secssUtil.getErrCode()){ 108 109 echo"签名过程发生错误,错误信息为-->".$secssUtil.getErrMsg(); 110 111 return; 112 113 } 114 115 $signature==$secssUtil->getSign(); 116 117 echo "签名数据为:".$signature; 118 119 120 121 验证签名示例代码 122 123 require 'SecssUtil.class.php'; 124 125 $securityPropFile="D:/Zend/workspaces/DefaultWorkspace12/chinapaySECSS_PHP/security.properties"; 126 127 $paramArray=array( 128 129 "AcqCode"=>"000000000000014", 130 131 "BankInstNo"=>"", 132 133 "BusiType"=>"0001", 134 135 "CommodityMsg"=>"ChinaPay测试-商品信息", 136 137 "CurryNo"=> "CNY", 138 139 " AccessType"=>"0", 140 141 " MerBgUrl"=>"http://172.16.9.233:9080/CPOA_TEST/mer/receiveStdasServlet", 142 143 " MerPageUrl"=>"http://172.16.9.233:9080/CPOA_TEST/receive", 144 145 " MerSplitMsg"=>"", 146 147 "Signature"=>"………" 148 149 ); 150 151 $secssUtil = new SecssUtil(); 152 153 $secssUtil->init($securityPropFile); //初始化安全控件: 154 155 $secssUtil->verify($paramArray); 156 157 if("00"!==$secssUtil.getErrCode()){ 158 159 echo"验签过程发生错误,错误信息为-->".$secssUtil.getErrMsg(); 160 161 return; 162 163 } 164 165 echo "验签通过。"; 166 167 敏感数据加密示例代码 168 169 require 'SecssUtil.class.php'; 170 171 $securityPropFile="D:/Zend/workspaces/DefaultWorkspace12/chinapaySECSS_PHP/security.properties"; 172 173 $plainData="testtest"; 174 175 $secssUtil = new SecssUtil(); 176 177 $secssUtil->init($securityPropFile); //初始化安全控件: 178 179 $secssUtil->encryptData ($plainData); 180 181 if("00"!==$secssUtil.getErrCode()){ 182 183 echo"加密过程发生错误,错误信息为-->".$secssUtil.getErrMsg(); 184 185 return; 186 187 } 188 189 echo "加密后的密文为:".$secssUtil->getEncValue(); 190 191 192 193 密码加密示例代码 194 195 require 'SecssUtil.class.php'; 196 197 $securityPropFile="D:/Zend/workspaces/DefaultWorkspace12/chinapaySECSS_PHP/security.properties"; 198 199 $card="6225882125408888"; 200 201 $pin="123456"; 202 203 $secssUtil = new SecssUtil(); 204 205 $secssUtil->init($securityPropFile); //初始化安全控件: 206 207 $secssUtil->encryptPin($pin, $card); 208 209 if("00"!==$secssUtil.getErrCode()){ 210 211 echo"密码加密过程发生错误,错误信息为-->".$secssUtil.getErrMsg(); 212 213 return; 214 215 } 216 217 echo "加密后的PIN密文为:".$secssUtil->getEncPin(); 218 219 文件验签示例代码 220 221 require ' SecssUtil.class.php'; 222 223 $securityPropFile="D:/Zend/workspaces/DefaultWorkspace12/chinapaySECSS_PHP/security.properties"; 224 225 $secssUtil = new SecssUtil(); 226 227 $secssUtil->init($securityPropFile); 228 229 $file="D:/Zend/workspaces/DefaultWorkspace12/ChinaPaySECSS_PHP/测试文件.txt"; 230 231 echo "verify start time".date('y-m-d h:i:s',time())."\r\n"; 232 233 $secssUtil->verifyFile($file); 234 235 if("00"===$secssUtil->getErrCode()){ 236 237 echo "文件验签成功,errcode=[" .$secssUtil->getErrCode()."]\r\n"; 238 239 }else{ 240 241 echo "文件验签失败,errcode=[" .$secssUtil->getErrCode()."]\r\n"; 242 243 } 244 245 echo "verify end time".date('y-m-d h:i:s',time())."\r\n";
转载于:https://www.cnblogs.com/fish-begonia/p/6221800.html
银联电子支付报文说明相关推荐
- 大鱼海棠8 银联电子支付报文说明
请求报文 Version 版本号 MerId 商户号 MerOrderNo 必填,变长 32位,同一商户同一交易日期内不可重复 TranDate 商户提交交易的日期,例如交易日 ...
- B2B电商平台--ChinaPay银联电子支付功能(实战)
奇迹每天都在发生,而你能把握的便是当下,未来已来............. ...
- 讲讲在银联电子支付工作时加解密、签名验签的那些事(纯粹的干货)。
今天我们来讲讲系统间的交互需要哪些必要的东西才能确保互相通信会没有问题呢? 首先来看看最传统的系统交互,即两者直接互相明文传送,在这种情况下,若是被第三方拦截,会造成不可预估的影响.那么针对这种情况我 ...
- chinapay java_ECSHOP 银联电子支付(ChinaPay)插件 掉用JAVA签名
帮客户集成接口时候发现客户网站PHP版本达不到要求 只要调用JAVA来解决问题<?php /** * ECSHOP 银联电子支付(ChinaPay)插件 * ================== ...
- chinapay 新版php接口,银联电子支付(chinapay)接口配置
/** * ECSHOP 银联电子支付(ChinaPay)接口配置 * ---------------------------------------------------------------- ...
- 银联电子支付ChinaPay支付回调验证问题
注意是ChinaPay,银联电子支付,不是UnionPay,不是银联支付,详情请参考这篇文章 https://www.cnblogs.com/qidian10/p/4885038.html 支付回调验 ...
- 记在银联电子支付的上线感想
20170725第二次在银联电子支付中心上线了.给我一个感觉,任何东西都得来个先来后到一说法....... ----------------------------------华丽的分割线 不知不觉时 ...
- 银联电子支付 php chinapay
之前看我博客百度关键字的时候,很多人都是因为银联搜到我这里,一直想做一个demo 给大家,可惜没商户申请不到,这次机缘巧合帮朋友做支付三部曲:微信支付,支付宝支付和银联支付,其他两个支付都烂大街的,这 ...
- 【渝粤教育】广东开放大学 电子支付与安全 形成性考核 (59)
选择题 题目:直接参与者:商行和央行(商行以其不通层次的管辖银行在相应层次的央行开设清算帐户) 答案:看左侧 题目:支付系统全国处理中心是控制支付系统运行,管理国家金融网络通信.接收.结算.清算支付业 ...
最新文章
- 15级团队学习成果汇报 -- 利用C#语言实现展览厅
- 这25条极简Python代码,你还不知道
- 各大网站屏蔽搜索引擎抓取分析
- Linux Shell 命令--cut
- python利器怎么用-bluepy 一款python封装的BLE利器简单介绍
- 如何利用传感器控制数据中心能耗
- zabbix监控apache
- CentOS 7下搭建配置 SVN 服务器
- 配置web项目session永不超时
- python382怎么用_用python做UDP连接
- python注入点查找_sqlmap常用注入点检测爆破命令
- Java笔记-异常机制中try(...)中括号的用法
- python中index方法详解_Python中的index()方法使用教程
- excel 導入數據庫的代碼
- 拓端tecdat|R语言ggplot2 对Facebook用户数据可视化分析
- iocomp入门教程(绘制Plot)
- python写斗地主游戏_python编程斗地主 python编程入门
- mysql嵌套查询语句
- 谷歌浏览器好用的复制粘贴插件_Chrome粘贴插件:将其粘贴
- 零基础入门学习HTML(下)