网站地图    收藏   

主页 > 后端 > PHP语言 >

交通银行网银支付接口开发实例

来源:未知    时间: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

添加评论