怎么对接银联支付开始我是按照中国银联开发平台的接口文档对接后来发现不是
如图是中国银联开发平台unionpay:
chinapay和unionpay是有区别的虽然都是银联旗下的都是接口文档都是不一样的.
下面介绍一下对接过程;
第一步,申请好之后他们会发送一个邮件给你,里面有网关公钥,这个文件是需要对接中用到
第二步需要生成一个商户的公钥这个是比较麻烦的,不过在邮件附件中有文档
5.6点是教程用ie浏览器安装
安装控件
选择你生成的证书(多个就是最新的哪个)
登入申请证书导出证书(商户私钥,记住导出的密码要记住后面要用到的)
https://merchant.chinapay.com/BIZSS/admin/loginpage.htm
文档中有步骤照着来就可以
登入https://service.chinapay.com/OSIWeb/home/toHome.action
可以下载都demo文件
下面是公共函数的
publicfunction_initialize(){
header(Content-type:text/html;charset=utf-8);
vendor('Chinapay.util.common',,.php);//导入加密核心文件夹
vendor('Chinapay.util.SecssUtil',,.class.php);//导入加密核心文件夹
vendor('Chinapay.util.Settings_INI',,.php);//导入加密核心文件夹
vendor('Chinapay.util.Settings',,.php);//导入加密核心文件夹
define(transResvered,trans_);
define(cardResvered,card_);
define(transResveredKey,TranReserved);
define(signatureField,Signature);
$this-securityPropFile='.'../ThinkPHP/Library/Vendor/Chinapay/config/security.properties;//这个是放公钥,私钥文件位置信息
//dump($this-securityPropFile);
$this-PaySend=./Unionpay/PaySend;
$this-MerBgUrl=www.300.cnCTITS/service/rest/page/nref/000000000017/0/0/0/0/0;
$html=formid='payment'name='payment'action='{$pay_url}'method='POST'target='_blank';
$params=TranReserved;MerId;MerOrderNo;OrderAmt;CurryNo;TranDate;SplitMethod;BusiType;MerPageUrl;MerBgUrl;SplitType;MerSplitMsg;PayTimeOut;MerResv;Version;BankInstNo;CommodityMsg;Signature;AccessType;AcqCode;OrderExpiryTime;TranType;RemoteAddr;Referred;TranTime;TimeStamp;CardTranData;
foreach($_SESSIONas$k=$v){
if(strstr($params,$k)){
$html.=inputtype='hidden'name='.$k.'value='.$v.'/;
}
}
$html.=inputtype='submit'type='hidden'value='提交订单';
$html.=scriptdocument.forms['payment'].submit();/script;
/script;
echo$html;
//dump($html);exit;
//$this-display();
}
整个过程就是Signature生成签名时候比较麻烦
这个文件是完全加密的所以
这个文件的公钥私钥信息一定要对如果看到这个页面就说明已经成功了