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

银联电子支付报文说明相关推荐

  1. 大鱼海棠8 银联电子支付报文说明

    请求报文 Version    版本号 MerId    商户号 MerOrderNo    必填,变长 32位,同一商户同一交易日期内不可重复 TranDate    商户提交交易的日期,例如交易日 ...

  2. B2B电商平台--ChinaPay银联电子支付功能(实战)

                                              奇迹每天都在发生,而你能把握的便是当下,未来已来.............                     ...

  3. 讲讲在银联电子支付工作时加解密、签名验签的那些事(纯粹的干货)。

    今天我们来讲讲系统间的交互需要哪些必要的东西才能确保互相通信会没有问题呢? 首先来看看最传统的系统交互,即两者直接互相明文传送,在这种情况下,若是被第三方拦截,会造成不可预估的影响.那么针对这种情况我 ...

  4. chinapay java_ECSHOP 银联电子支付(ChinaPay)插件 掉用JAVA签名

    帮客户集成接口时候发现客户网站PHP版本达不到要求 只要调用JAVA来解决问题<?php /** * ECSHOP 银联电子支付(ChinaPay)插件 * ================== ...

  5. chinapay 新版php接口,银联电子支付(chinapay)接口配置

    /** * ECSHOP 银联电子支付(ChinaPay)接口配置 * ---------------------------------------------------------------- ...

  6. 银联电子支付ChinaPay支付回调验证问题

    注意是ChinaPay,银联电子支付,不是UnionPay,不是银联支付,详情请参考这篇文章 https://www.cnblogs.com/qidian10/p/4885038.html 支付回调验 ...

  7. 记在银联电子支付的上线感想

    20170725第二次在银联电子支付中心上线了.给我一个感觉,任何东西都得来个先来后到一说法....... ----------------------------------华丽的分割线 不知不觉时 ...

  8. 银联电子支付 php chinapay

    之前看我博客百度关键字的时候,很多人都是因为银联搜到我这里,一直想做一个demo 给大家,可惜没商户申请不到,这次机缘巧合帮朋友做支付三部曲:微信支付,支付宝支付和银联支付,其他两个支付都烂大街的,这 ...

  9. 【渝粤教育】广东开放大学 电子支付与安全 形成性考核 (59)

    选择题 题目:直接参与者:商行和央行(商行以其不通层次的管辖银行在相应层次的央行开设清算帐户) 答案:看左侧 题目:支付系统全国处理中心是控制支付系统运行,管理国家金融网络通信.接收.结算.清算支付业 ...

最新文章

  1. 15级团队学习成果汇报 -- 利用C#语言实现展览厅
  2. 这25条极简Python代码,你还不知道
  3. 各大网站屏蔽搜索引擎抓取分析
  4. Linux Shell 命令--cut
  5. python利器怎么用-bluepy 一款python封装的BLE利器简单介绍
  6. 如何利用传感器控制数据中心能耗
  7. zabbix监控apache
  8. CentOS 7下搭建配置 SVN 服务器
  9. 配置web项目session永不超时
  10. python382怎么用_用python做UDP连接
  11. python注入点查找_sqlmap常用注入点检测爆破命令
  12. Java笔记-异常机制中try(...)中括号的用法
  13. python中index方法详解_Python中的index()方法使用教程
  14. excel 導入數據庫的代碼
  15. 拓端tecdat|R语言ggplot2 对Facebook用户数据可视化分析
  16. iocomp入门教程(绘制Plot)
  17. python写斗地主游戏_python编程斗地主 python编程入门
  18. mysql嵌套查询语句
  19. 谷歌浏览器好用的复制粘贴插件_Chrome粘贴插件:将其粘贴
  20. 零基础入门学习HTML(下)

热门文章

  1. 导弹追踪问题数学建模matlab
  2. PHP调用WebService接口 , 传参xml
  3. 我的新书《Visual C#.NET原理与实务》出版了
  4. 前端jq/vue echarts中国地图的实现
  5. android 带箭头的按钮,android自定义带箭头对话框
  6. php泡点,PHP数据类型_PHP教程_编程技术
  7. 服务器怎么更换系统镜像,云服务器更换镜像
  8. 基于Zigbee的智能道路路灯系统
  9. 【Unity】通过2种方法实现摄像机的移动,旋转,放缩
  10. 阿里 面试那些二三事