ECSHOP中国工商银行(ICBC)支付插件

安装说明:
一、按工行的开发文档配置好环境。
1、ICBCEBankUtil.dll和infosecapi.dll两个dll文件拷贝到系统system32目录下;
2、运行“regsvr32 ICBCEBankUtil.dll”命令注册控件;
3、在httpd.conf中添加

  1. LoadModule php5_module "c:/WINSOWS/system32/ICBCEBankUtil.dll"
  2. LoadModule php5_module "c:/WINSOWS/system32/infosecapi.dll"

二、将解压后的 includes\  languages\ 下的文件copy到商城安装目录。

三、修改flow.php文件,在代码:

  1. elseif ($_REQUEST['step'] == 'done')
  2. {
  3. }

中加入以下内容:

  1. /* 读出购物车中的信息,给$order赋值,工行支付信息中需要 */
  2. $order['goodsNum']   = 0;  //购买货品的数量
  3. $order['goodsIDs']   = ''; //购买货品的货号
  4. $order['goodsNames'] = ''; //购买货品的名称
  5. $cs = "SELECT * FROM " . $ecs->table('cart') .
  6. " WHERE session_id = '" . SESS_ID . "' " .
  7. "AND parent_id = 0 AND is_gift = 0 AND rec_type = '$flow_type'";
  8. $cq = $db->query($cs);
  9. while($rq = $db->fetchRow($cq)){
  10. $order['goodsNum'] += 1;
  11. $order['goodsIDs'] .= $rq['goods_sn'].'-';
  12. $order['goodsNames'] .= $rq['goods_name'].'-';
  13. }

四、重启Apache

使用说明:
在后台支付方式中 将会多出一项“工行在线支付”,点击安装即可。

includes/modules/pament/icbc.php:

  1. <?php
  2. /**
  3. * ECSHOP 中国工商银行(ICBC)支付插件
  4. * ============================================================================
  5. * Jacklee的博客-专注于PHP技术
  6. * 网站地址: http://www.phpally.com
  7. * @author Jacklee<jack349392900@gmail.com>
  8. * @date 2012-03-08
  9. */
  10. if (!defined('IN_ECS'))
  11. {
  12. die('Hacking attempt');
  13. }
  14. $payment_lang = ROOT_PATH . 'languages/' . $GLOBALS['_CFG']['lang'] . '/payment/icbc.php';
  15. if (file_exists($payment_lang))
  16. {
  17. global $_LANG;
  18. include_once($payment_lang);
  19. }
  20. /**
  21. * 模块信息
  22. */
  23. if (isset($set_modules) >> $set_modules == true)
  24. {
  25. $i = isset($modules) ? count($modules) : 0;
  26. /* 代码 */
  27. $modules[$i]['code'] = basename(__FILE__, '.php');
  28. /* 描述对应的语言项 */
  29. $modules[$i]['desc'] = 'icbc_desc';
  30. /* 是否支持货到付款 */
  31. $modules[$i]['is_cod'] = '0'; //否
  32. /* 是否支持在线支付 */
  33. $modules[$i]['is_online'] = '1'; //是
  34. /* 作者 */
  35. $modules[$i]['author']  = 'Jacklee';
  36. /* 网址 */
  37. $modules[$i]['website'] = 'http://www.phpally.com';
  38. /* 版本号 */
  39. $modules[$i]['version'] = '1.0';
  40. /* 配置信息 */
  41. $modules[$i]['config'] = array(
  42. array('name' => 'merID', 'type' => 'text', 'value' => ''),//商户代码
  43. array('name' => 'merAcct', 'type' => 'text', 'value' => ''),//商户帐号
  44. array('name' => 'curType', 'type' => 'text', 'value' => ''),//支付币种
  45. );
  46. return;
  47. }
  48. class icbc
  49. {
  50. /**
  51. * 构造函数
  52. *
  53. * @access  public
  54. * @param
  55. *
  56. * @return void
  57. */
  58. function icbc()
  59. {
  60. }
  61. function __construct()
  62. {
  63. $this->icbc();
  64. }
  65. /**
  66. * 生成支付代码
  67. * @param   array   $order  订单信息
  68. * @param   array   $payment    支付方式信息
  69. */
  70. function get_code($order, $payment)
  71. {
  72. $strReturnCode = '';
  73. //————————————————-
  74. //– 根据定单生成 交易数据
  75. //————————————————-
  76. $TDT = '<?xml version="1.0" encoding="GBK" standalone="no"?>';
  77. $TDT .= '<B2CReq>';
  78. $TDT .= '<interfaceName>ICBC_PERBANK_B2C</interfaceName>';
  79. $TDT .= '<interfaceVersion>1.0.0.3</interfaceVersion>';
  80. $TDT .= '<orderInfo>';
  81. $TDT .= '<orderDate>'.local_date('YmdHis', $order['add_time']).'</orderDate>';
  82. $TDT .= '<orderid>'.$order['order_sn'].'</orderid>';//订单号
  83. $TDT .= '<amount>'.($order['order_amount'] * 100).'</amount>';//订单金额
  84. $TDT .= '<curType>'.$payment['cutType'].'</curType>';//支付币种
  85. $TDT .= '<merID>'.$payment['merID'].'</merID>';//商户代码
  86. $TDT .= '<merAcct>'.$payment['merAcct'].'</merAcct>';//商户帐号
  87. $TDT .= '</orderInfo>';
  88. $TDT .= '<custom>';
  89. $TDT .= '<verifyJoinFlag>0</verifyJoinFlag>';//是否检验联名标志 D
  90. $TDT .= '<Language></Language>';//语种  默认为中文 D
  91. $TDT .= '</custom>';
  92. $TDT .= '<message>';
  93. $TDT .= '<goodsID>'.$order['goodsIDs'].'</goodsID>'; //商品编号
  94. $TDT .= '<goodsName>'.$order['goodsNames'].'</goodsName>';//商品名称
  95. $TDT .= '<goodsNum>'.$order['goodsNum'].'</goodsNum>';//商品数量
  96. $TDT .= '<carriageAmt></carriageAmt>';//已含运费金额
  97. $TDT .= '<merHint></merHint>';//商城提示
  98. $TDT .= '<remark1></remark1>';//备注字段1
  99. $TDT .= '<remark2></remark2>';//备注字段2
  100. $TDT .= '<merURL>http://www.fanrui.cn</merURL>';//处理完成后 跳转到的地址 D
  101. $TDT .= '<merVAR></merVAR>';//商户变量  会按原样返回
  102. $TDT .= '</message>';
  103. $TDT .= '</B2CReq>';
  104. $tranData = base64_encode($TDT);
  105. //————————————————-
  106. //– 初始化工行支付对象
  107. //————————————————-
  108. $icbcPayObj= new com('ICBCEBANKUTIL.B2CUtil');
  109. $rc=$icbcPayObj->init("c:\wamp\www\includes\icbc\ectest01.crt"
  110. ,"c:\wamp\www\includes\icbc\ectest01.crt"
  111. ,"c:\wamp\www\includes\icbc\ectest01.key"
  112. ,$TDT);
  113. if($rc != 0){
  114. $errorCode = "初始化失败 调试代码:".$icbcPayObj->getRC();
  115. return $errorCode;
  116. }
  117. //———————————————————-
  118. //– 签名
  119. //———————————————————-
  120. $merSignMsg = '';
  121. $qianMing = $icbcPayObj->signC($TDT, strlen($TDT));
  122. if($qianMing == ''){
  123. $errorCode = "签名失败! 调试代码:".$icbcPayObj->getRC();
  124. return $errorCode;
  125. }else{
  126. $merSignMsg = base64_encode($qianMing);
  127. }
  128. //———————————————————–
  129. //– 验证签名
  130. //————————————————————-
  131. $qm_ok = $icbcPayObj->verifySignC($TDT, strlen($TDT), $qianMing, strlen($qianMing));
  132. if($qm_ok != 0){
  133. $errorCode = "签名验证失败! 调试代码:".$icbcPayObj->getRC();
  134. return $errorCode;
  135. }
  136. //————————————————————-
  137. //– 获取商户证书
  138. //————————————————————-
  139. $cert = $icbcPayObj->getCert(1);
  140. if($cert == ''){
  141. $errorCode = "获取商户证书失败! 调试代码:".$icbcPayObj->getRC();
  142. return $errorCode;
  143. }
  144. //————————————————————–
  145. //– 商城证书公钥
  146. //————————————————————–
  147. $file_handle = fopen("c:\wamp\www\includes\icbc\ectest01.crt", "r");
  148. $line = '';
  149. while (!feof($file_handle)) {
  150. $line .= fgets($file_handle);
  151. }
  152. $merCert = base64_encode($line);
  153. fclose($file_handle);
  154. //————————————————————-
  155. //– 生成支付form串
  156. //————————————————————-
  157. $strReturnCode = "<div style='text-align:center'>";
  158. $strReturnCode .= "<form name='form1' method='post' action='https://210.82.37.103/servlet/ICBCINBSEBusinessServlet'>";
  159. $strReturnCode .= "<INPUT NAME='interfaceName' TYPE='text' value='ICBC_PERBANK_B2C'>";
  160. $strReturnCode .= "<INPUT NAME='interfaceVersion' TYPE='text' value='1.0.0.3'>";
  161. $strReturnCode .= "<INPUT NAME='tranData' TYPE='hidden' value='".$tranData."' >";
  162. $strReturnCode .= "<INPUT NAME='merSignMsg' TYPE='hidden' value='".$merSignMsg."'>";
  163. $strReturnCode .= "<INPUT NAME='merCert' TYPE='hidden' value='".$merCert."'>";
  164. $strReturnCode .= "<input type='submit' value='工行在线支付'>";
  165. $strReturnCode .= "</form>";
  166. $strReturnCode .= "</div></br>";
  167. return $strReturnCode;
  168. }
  169. /**
  170. * 响应操作
  171. */
  172. function respond()
  173. {
  174. }
  175. }
  176. ?>

languages/zh_cn/payment/icbc.php:

  1. <?php
  2. /**
  3. * ECSHOP 中国工商银行(ICBC)支付 语言文件
  4. * ============================================================================
  5. * Jacklee的博客-专注于PHP技术
  6. * 网站地址: http://www.phpally.com
  7. * @author Jacklee<jack349392900@gmail.com>
  8. * @date 2012-03-08
  9. */
  10. global $_LANG;
  11. $_LANG['merID']  = '商户代码';
  12. $_LANG['merAcct']= '商户帐号';
  13. $_LANG['curType']  = '支付币种';
  14. ?>
  15. 转载地址:http://hi.baidu.com/xupengaixue/item/6bfce5d00a6401efb3f7772b

ECSHOP中国工商银行(ICBC)支付插件相关推荐

  1. 如何接入中国工商银行网上银行B2C在线支付接口

    中国工商银行网上银行B2C在线支付接口说明,亲测可行. 工具/原料 merID:银行提供.唯一确定一个商户的代码,由商户在工行开户时,由工行告知商户. merAcct:银行提供 , 商城收费入账账号  ...

  2. Ecshop支付宝网银支付插件|支付宝网银直连插件|纯网关网银接口

    2019独角兽企业重金招聘Python工程师标准>>> 集成支付宝(纯网关)网银支付 功能说明://1.后台增加一个支付方式(网银支付) alipay.php        //2. ...

  3. 中国工商银行网上银行新B2C在线支付接口文档下载地址

    本文档适用需要做工商银行网上银行支付接口的开发才,是最新B2C在线支付接口文档 适用于网站需要集成工商银行网上银行支付方式 如果您的网站需要开发这种支种方式或提供技术支持也可以联系本人 下载地址: 中 ...

  4. [ecshop 资料] ecshop 安装须知 - 支付插件的问题 。。ectouch 小京东

    [ecshop 资料] ecshop 安装须知 - 支付插件的问题 ..ectouch 小京东 网上一些 修改过的ecshop 的版本因为已经安装过程,而ecshop的支付模块 卸载后 数据库中仍有记 ...

  5. Magento银联支付模块|Magento1.9 Unionpay中国银联支付插件|支持PC、手机移动端支付|2016最新Unionpay5.0.0支付接口...

    2019独角兽企业重金招聘Python工程师标准>>> 功能 严格按照中国银联Unionpay)接口文档编写代码. 中国银联(Unionpay)异步通知机制,确保订单状态及时更新. ...

  6. php chinapay,GitHub - jakehu/chinapay-for-ecshop: 上海银联(chinapay)支付插件 for ECSHOP

    chinapay-for-ecshop =================== 上海银联(chinapay)支付插件 for ECSHOP 银联支付有两个接口 upop 与 chinapay,很多 E ...

  7. chinapay支付接口php,GitHub - tension/chinapay-for-ecshop: 上海银联(chinapay)支付插件 for ECSHOP...

    chinapay-for-ecshop =================== 上海银联(chinapay)支付插件 for ECSHOP 银联支付有两个接口 upop 与 chinapay,很多 E ...

  8. ecshop paypal支付_ecshop商城paypal支付插件下载

    简介: ecshop paypal支付_ecshop商城paypal支付插件,ecshop paypal支付,ecshop海外境外收款paypal支付接口,ecshop paypal ecshop商城 ...

  9. 华为与中国工商银行携手在数字人民币应用场景创新,率先支持数字人民币穿戴支付

    10月23日,华为与中国工商银行携手在数字人民币应用场景创新,率先支持数字人民币穿戴支付,并在华为开发者大会2021(Together)"钱包支付与会员服务"分论坛联合展示了项目合 ...

最新文章

  1. Invoker 2019CCPC秦皇岛站I题 简单DP
  2. 一个线程罢工的诡异事件
  3. jmeter压测_jmeter压测学习2linux运行jmeter环境
  4. ethernet调试工具_开发者分享 | 如何调试10G/25G以太网IP自协商/Link Training
  5. php性能优化分析工具XDebug 大型网站调试工具
  6. POJ--3974 Palindrome(回文串,hash)
  7. 【JAVA并发编程实战】3、同步容器
  8. c java json_cJSON_json包的C语言解析库
  9. redhat linux 9.0 拷贝u盘的文件,肿么用U盘安装Linux,安装的是red hat 9.0…用Ubuntu很方便,redhat可以吗?...
  10. 【转】LDA-linear discriminant analysis
  11. [原]MS SQL表字段自增相关的脚本
  12. mysql innodb远程备份_详细说明MySQL备份、还原、innoDB打开
  13. NodeJS:图片验证码登录
  14. 微信公众号涨粉攻略大全及实战
  15. 如何对研发团队绩效进行考核--附各环节人员考核参考表
  16. 支付接口的开放有什么好处?第三方支付API文档如何对接?
  17. Netty实战:设计一个IM框架就这么简单!
  18. 基于物联网的无线温度系统在钢铁行业的应用
  19. ios Objective-c 字体样式大全(UIFont 可设置的)
  20. Android xml里面product的值来自哪里以及怎么影响编译?

热门文章

  1. 【真】冬奥会知识答题
  2. 使用一条带箭头的虚线连接两个div,并且div拖拽时保持虚线连接
  3. Ubuntu下使用Anaconda3 出现conda: 未找到命令
  4. 开源-BDCI2018面向电信行业存量用户的智能套餐个性化匹配模型Top1解决方案和代码
  5. python读excel表格数据绘制图表_Python读取Excel数据生成图表 v2.0
  6. 2048游戏 在开发板上实现 - linux arm
  7. 2048小游戏----嵌入式系统实训
  8. OWASP TOP10 大主流漏洞原理和防范措施,易理解版
  9. 爱奇艺的实时数据架构到底有多牛?
  10. 还在为追不到女神发愁吗?破解舔狗日记一键生成,让你轻松1秒5舔~