来源:未知 时间:2014-09-15 23:22 作者:xbdadmin 阅读:次
[导读] 概述: 网银支付接口 和支付宝接口大体上差不多,主要的区别是 交通银行提供的 接口核心的比如,加密等是通过java实现的。所以,要想办法使php和java能正常的通信,为此。官方也提...
概述:网银支付接口 和支付宝接口大体上差不多,主要的区别是 交通银行提供的 接口核心的比如,加密等是通过java实现的。所以,要想办法使php和java能正常的通信,为此。官方也提供了两套实现方法,一个是通过 socket 进行通信,另一个方法是通过 java 桥接。下面演示的是 socket方法:
1. 配置运行环境 1.1 安装java,自行到oracle官网下载 java,然后安装,并配置正确的 环境变量。 1.2 把 测试的证书导入到java 虚拟机; keytool " -import -keystore "java虚拟机放置证书的地址" -storepass changeit -alias test_bocommca -file "证书路径" 完成导入。 例子:keytool" -import -keystore "C:\Program Files\Java\jre1.5\lib\security\cacerts" -storepass changeit -alias test_bocommca -file "C:\socket\cert\test_root.cer" 1.3 修改配置文件(in/B2CMerchantSocket.xml): 采用官方提供的测试 商号进行测试时,无需配置,否则要配置。具体看xml文件说明。 1.4 启动 socket 服务 window:启动 start.bat 及可; linux: 启动 ohup sh.start,sh& //使当前脚本脱离终端,并在后台运行。 2. 将网银集成到现有的系统:(以mvc的结构进行说明): 2.1 将不变的参数 配置 写入配置文件: $config['interfaceVersion'] = "1.0.0.0"; #接口版本 $config['tranType'] =0; #交易类别 0:B:C $config['curType'] = 'CNY'; # 交易币种 $config['notifyType'] =1; #0=不通知 1=通知 2=抓取 $config['merURL'] = "http://phpstar.cn/pay/notify"; # 主动通知url $config['goodsURL' = 'http://phpstar.cn/goods/1.html'; #取货url $config['jumpSeconds'] =3; #跳转时间 $config['payBatchNo'] = ''; #商户批次号 $config['proxyMerName'] = ''; #代理商家名字 $config['proxyMerType'] = ''; #代理商类型 $config['proxyMerCredentials']= ''; #代理商家批次号 $config['netType'] = 0; #渠道编号 //以下是 新接口需要的参数 $config['socketUrl'] ="tcp://127.0.0.1:8891"; #socket url $config['merID'] ='301310063009501'; #商户id 3013100630095012 2.2 Model
/** * 交通银行支付类 */ class Bocom extends CI_Model { private $arrReturn=array(); private $socket; public function __construct() { parent::__construct (); //加载交通银行配置文件 $this->config->load('bocom'); $this->socket=$this->config->item('socketUrl'); } /** * 支付方法 * * @param unknown $arr_data=array( * 'bill_no'=> * ) */ public function pay($arr_data){ //获得表单传过来的数据 $this->arrReturn['interfaceVersion'] = $this->config->item('interfaceVersion'); $this->arrReturn['merID'] = $this->config->item('merID'); //商户号为固定 $this->arrReturn['orderid'] = $arr_data['bill_no']; $this->arrReturn['orderDate'] = $arr_data['bill_date']; $this->arrReturn['orderTime'] = $arr_data['bill_time']; $this->arrReturn['tranType'] = $this->config->item('tranType'); $this->arrReturn['amount'] = $arr_data['bill_fee']; $this->arrReturn['curType'] = $this->config->item('curType'); $this->arrReturn['orderContent'] = isset($arr_data['bill_title'])?iconv('utf-8','gb2312',$arr_data["bill_title"]): ''< |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com