銀聯在線php支付介面
『壹』 怎麼申請銀聯在線支付介面
1、五證齊全:營業執照、稅務登記證(國地稅兩證)、組織機構代碼證、銀行開戶許可證。
2、ICP備案:公司網站進行ICP備案。這個應該不是問題。上面兩項通過之後基本上銀行會和公司來進行協議蓋章了,也算是合同,就說明已經生效了。
3、簽訂完合同蓋完章後基本上就會給商戶下發介面文件,介面文件有多種語言,asp,java,.net等根據自己網站語言需要來索要即可。
4、測試開通可以找相關介面開發人員及進行介面整合對接到公司網站上面即可進行交易了。
(1)銀聯在線php支付介面擴展閱讀
異常應答說明
1、不返回報文體的情況:
版本號,交易類型、子類,簽名方法,簽名值等關鍵域未上送,返回「Invalid request.」; 交易類型和請求地址校驗有誤,返回「Invalid request URI.」
2、返回全部的請求報文,附加應答碼和應答描述(包括的應答碼有:01、02、03、10、11、32):
驗證簽名失敗;
報文格式錯(包含,必填域缺失,上送銀聯報文未定義的域,報文域的格式非法,交易時間超出范圍);
簽名失敗;超時等其他系統異常
『貳』 PHP 工商銀行B2C支付介面怎麼做
merID:銀行提供.唯一確定一個商戶的代碼,由商戶在工行開戶時,由工行告知商戶。
merAcct:銀行提供 , 商城收費入賬賬號 (只能交易時指定)。
懂得html代碼跟PHP的程序員一名
方法/步驟
到銀行開戶,說明要做B2C在線支付介面,此時銀行會提供給你 merID 、merAcct 這兩個
由程序員按照一下步驟來做即可,在商城提交表單的頁面添加以下控制項。
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>網路一下,你就知道 </title>
</head>
<body>
<FORM name="order" METHOD=POST ACTION="https://mybank.dccnet.com.cn/servlet/ICBCINBSEBusinessServlet">
<!--
訂單只能使用POST方式提交;使用https協議通訊;
2、接收servlet名稱固定為:/servlet/ICBCINBSEBusinessServlet
3、銀行地址:如果是生產則為「mybank.icbc.com.cn」,若為模擬測試環境則為「mybank.dccnet.com.cn」
-->
<INPUT NAME="interfaceName" TYPE="text" value="ICBC_PERBANK_B2C" >
<!--介面名稱固定為「ICBC_PERBANK_B2C」-->
<INPUT NAME="interfaceVersion" TYPE="text" value="1.0.0.0">
<!--介面版本目前為「1.0.0.0」-->
<INPUT NAME="orderid" TYPE="text" value="000000001">
<!--訂單號商戶端產生,一天內不能重復。-->
<INPUT NAME="amount" TYPE="text" value="100">
<!--金額以分為單位-->
<INPUT NAME="curType" TYPE="text" value="001">
<!--幣種目前只支持人民幣,代碼為「001」-->
<INPUT NAME="merID" TYPE="text" value="XXXXXXXXXX" >
<!--銀行提供(max20),唯一確定一個商戶的代碼,由商戶在工行開戶時,由工行告知商戶。-->
<INPUT NAME="merAcct" TYPE="text" value="XXXXXXXXXX">
<!--銀行提供(max19),商城收費入賬賬號 (只能交易時指定)。-->
<INPUT NAME="verifyJoinFlag" TYPE="text" value="0" >
<!--「1」判斷該客戶是否與商戶聯名;取值「0」不檢驗客戶是否與商戶聯名。-->
<INPUT NAME="notifyType" TYPE="text" value="HS">
<!--HS方式實時發送通知;AG方式不發送通知;-->
<INPUT NAME="merURL" TYPE="text" value="http://kinderpower.com/servlet">
<!--接收銀行通知地址,目前只支持http協議80埠-->
<INPUT NAME="resultType" TYPE="text" value="0">
<!--對於HS方式「0」:發送成功或者失敗信息;「1」,只發送交易成功信息。-->
<INPUT NAME="orderDate" TYPE="text" value="20050801192556">
<!--14位時間戳-->
<INPUT NAME="merSignMsg" TYPE="text" value="SFVdS3Kca6d//PYOQLJ/WAtZ5DFYFog7J8pXw0=">
<!--商戶簽名數據BASE64編碼-->
<!--簽名數據串,這里舉例用的測試私鑰user.key(順序固定;被商戶簽名的串為各輸入項的值):
介面名稱的值+介面版本號的值+商城代碼的值+商城賬號的值+通知地址的值+結果發送類型的值+訂單號的值+訂單金額的值+支付幣種的值+通知類型的值+交易日期時間的值+校驗聯名標志的值-->
<INPUT NAME="merCert" TYPE="text" value="MIICVjCCAb+BiQKBgQDG+u/C5pad0ZbwvAk9Gv1rr+SpknfFUsTMhJLcI2KiYa+XLSf5vCib0OclOoDDXKIWPt/hkMEz+///Q//+c+L8fkOt37o=">
<!--商戶證書公鑰BASE64編碼-->
<!--這里舉例用的測試證書user.crt-->
<INPUT NAME="goodsID" TYPE="text" value="abcd001">
<!--商品編號,自商城獲得-->
<INPUT NAME="goodsName" TYPE="text" value="小氈帽">
<!--商品名稱,自商城獲得-->
<INPUT NAME="goodsNum" TYPE="text" value="1" >
<!--商品數量,自商城獲得-->
<INPUT NAME="carriageAmt" TYPE="text" value="100">
<!--已含運費金額,金額以分為單位,自商城獲得-->
<INPUT NAME="merHint" TYPE="text" value="跳樓甩賣!" size="60">
<!--商城提示,以上五個欄位用於客戶支付頁面顯示-->
<INPUT NAME="remark1" TYPE="text" value=" ">
<!--備注欄位 MAX(100)-->
<INPUT NAME="remark2" TYPE="text" value="">
<!--備注欄位 MAX(100)-->
<INPUT TYPE="submit" value=" 提 交 訂 單 " >
</form>
<body>
END
注意事項
注意商戶提交訂單數據不能提交介面中沒有定義的欄位
提交按鈕不能設置name屬性,如果設置了,提交按鈕的值將作為一個變數提交,可能造成數據檢查錯誤
經驗內容僅供參考,如果您需解決具
『叄』 如何利用PHP語言開發平台第三方支付介面
第一步:簽訂合約通過第三方拿到介面(可以郵件形式發送、也可以在第三方系統下載),拿到介面後,要確認下介面類型,是否是自己需要的介面,比如B2C介面、B2B介面等類型。
第二步:支付介面分很多語言版本,比如ASP、JSP、PHP、.NET語言版本,所以要選擇與自己網站語言匹配的介面進行安裝。商城網站的技術一般比較清楚商城的開發語言。
第三步:拿到的支付介面一般包括介面文檔和介面代碼示例,選擇合適的介面代碼示例,進行聯調,比如自己網站是PHP開發的,就選擇PHP代碼示例聯調。
第四步:介面聯調的時候,需要第三方支付提供聯調測試賬號,方可以聯調。聯調除了需要聯調賬號除外,還需要該賬號的支付密鑰,聯調過程中,有什麼問題,可以直接找第三方支付技術支持給予協調處理。
第五步:介面聯調通過後,可先換成生產環境賬號,進行交易測試,測試沒問題後,可以放到商城網站進行交易。
『肆』 親,php銀聯在線支付,沒做過,請求幫助
支付介面現在有第三方的支付介面也有銀行的支付介面。這里就來介紹php版本銀聯支付介面開發的方法。
銀聯支付,首先要注意二重要的部分:
PHP運行環境是5.4.18以上
開了擴展openssl
開發手冊上面的列子只做參考,因為基本都是錯的。你可以試著去官網下一個demo。。。注意現在銀聯開發,沒有測試密鑰提供,只能在正式環境開發
下面是我用ThinkPHP編寫的一個支付類
/**
*銀聯支付v0.1
*@auther:Summer<[email protected]>;
*@date:20151202
***/
{
//在類初始化方法中,引入相關類庫
publicfunction_initialize(){
header("Content-type:text/html;charset=utf-8");
vendor('Netpay.util.common',"",".php");//導入加密核心文件夾
vendor('Netpay.util.SecssUtil',"",".class.php");//導入加密核心文件夾
vendor('Netpay.util.Settings_INI',"",".php");//導入加密核心文件夾
vendor('Netpay.util.Settings',"",".php");//導入加密核心文件夾
$this->securityPropFile=$_SERVER['DOCUMENT_ROOT']."/ThinkPHP/Extend/Vendor/Netpay/config/security.properties";//誰知道這是啥,反正他們要我加的
$this->b2cPaySend=__APP__."/Index/NetPay/b2cPaySend";
$this->b2cRefundSend=__APP__."/Index/NetPay/b2cRefundSend";
$this->b2cQuerySend=__APP__."/Index/NetPay/b2cQuerySend";
$this->;MerBgUrl=__APP__."/Index/NetPay/MerBgUrl";
$this->MerPageUrl=__APP__."/Index/NetPay/MerPageUrl";
}
publicfunctionindex()
{
$paramArray=array(
'MerId'=>'商戶號',
'MerOrderNo'=>'0000001944663232',
'OrderAmt'=>'1',
'TranDate'=>'20151219',
'TranTime'=>'171248',
'TranType'=>'0001',
'BusiType'=>'0001',
'Version'=>'20140728',
'CurryNo'=>'CNY',
'AccessType'=>;'0',
'CommodityMsg'=>'測試商品1號',
'MerPageUrl'=>$this->MerBgUrl,
'MerBgUrl'=>$this->MerPageUrl,
'MerResv'=>'MerResv',
);
if(count($paramArray)>0){
$dispatchUrl=$this->b2cPaySend;
$transResvedJson=array();
$cardInfoJson=array();
$sendMap=array();
foreach($paramArrayas$key=>$value){
if(isEmpty($value)){
continue;
}
if(startWith($key,"trans_")){
$key=substr($key,strlen("trans_"));
$transResvedJson[$key]=$value;
}else
if(startWith($key,"card_")){
$key=substr($key,strlen("card_"));
$cardInfoJson[$key]=$value;
}else{
$sendMap[$key]=$value;
}
}
$transResvedStr=null;
$cardResvedStr=null;
if(count($transResvedJson)>0){
$transResvedStr=json_encode($transResvedJson);
}
if(count($cardInfoJson)>0){
$cardResvedStr=json_encode($cardInfoJson);
}
$secssUtil=newSecssUtil();
if(!isEmpty($transResvedStr)){
$transResvedStr=$secssUtil->decryptData($transResvedStr);
$sendMap["TranReserved"]=$transResvedStr;
}
if(!isEmpty($cardResvedStr)){
$cardResvedStr=$secssUtil->decryptData($cardResvedStr);
$sendMap["card_"]=$cardResvedStr;
}
$securityPropFile=$this>securityPropFile;
$secssUtil->init($securityPropFile);
$secssUtil->sign($sendMap);
$sendMap["Signature"]=$secssUtil->getSign();
$_SESSION=$sendMap;
header("Location:".$dispatchUrl);
}
}
publicfunctionb2cPaySend(){
layout(false);
$settings=newSettings_INI();
$settings->oad($this->securityPropFile);
$pay_url="https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0";
$html="<formname='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.="<nputtype='button'type='hidden'value='提交訂單'>";
$html.="<;/from>";
$this->html=$html;
$this->display();
}
publicfunctionpgReturn(){
if($_POST){
if(count($_POST)>0){
$secssUtil=newSecssUtil();
$securityPropFile=$this>securityPropFile;
$secssUtil->init($securityPropFile);
$text=array();
foreach($_POSTas$key=>$value){
$text[$key]=urldecode($value);
}
if($secssUtil->verify($text)){
//支付成功
$_SESSION["VERIFY_KEY"]="success";
}else{
//支付失敗
$_SESSION["VERIFY_KEY"]="fail";
}
}
}
}
}
銀聯支付應該是算比較簡單的!!
『伍』 PHP銀聯在線支付開發怎麼自動跳轉支付成功界面
在銀聯支付回調頁面的地方 return_url 裡面, 做個支付結果判斷:
1、支付成功,則跳轉到支付成功頁面;
2、否則跳轉到支付失敗頁面就可以了。
『陸』 PHP怎麼做銀聯的支付介面調用
PHP做銀聯支付介面調用問題
//在工商支付介面之前要找到工行提供的介面文件級dll文件
//將訂單簽名數據公鑰加密提供給工行指定頁面
//組織要簽名的數據串
$src="ICBC_PERBANK_B2C1.0.0.0".$infomer["merid"].$infomer["meracct"].$returnaddress."HS".$ddnumber.$amount."0010".$nowtime."0";
$com=new com('ICBCEBANKUTIL.B2CUtil');
$rc=$com->init("c:\WINDOWS\user.crt","c:\WINDOWS\user.crt","c:\WINDOWS\user.key","11111111");
$ssrc=$com->signC($src, strlen($src)); //訂單簽名數據
$rc=$com->verifySignC($src,strlen($src), $ssrc, strlen($ssrc));
$cert=$com->getCert(1); //商城證書公鑰
//將商戶證書存儲到c:\WINDOWS目錄下,然後創建form表單,將指定的數據提交到工行指定的網頁中
<!--支付寶支付的介面操作,提交的數據-->
<td width="100"><a href="<{$link}>"><img src="images/sy_19.gif" width="90" height="25" border="0"></a></td>
<!--——————————————————-->
<!--工行支付的介面操作,提交的數據-->
<form action="https://mybank.icbc.com.cn/" method="post" name="form_bank">
<input name="interfaceName" type="hidden" value="ICBC_PERBANK_B2C"/>
<input name="interfaceVersion" type="hidden" value="1.0.0.0"/>
<input name="orderid" type="hidden" value="<{$ddnumber}>"/>
<input name="amount" type="hidden" value="<{$amount}>"/>
<input name="curType" type="hidden" value="001"/>
<input name="merID" type="hidden" value="<{$merid}>"/>
<input name="merAcct" type="hidden" value="<{$meracct}>"/>
<input name="verifyJoinFlag" type="hidden" value="0"/>
<input name="notifyType" type="hidden" value="HS"/>
<input name="merURL" type="hidden" value="<{$returnaddress}>"/>
<input name="resultType" type="hidden" value="0"/>
<input name="orderDate" type="hidden" value="<{$nowtime}>"/>
<input name="merSignMsg" type="hidden" value="<{$ssrc}>" />
<input name="merCert" type="hidden" value="<{$cert}>" />
</form>
『柒』 php網站如何集成銀聯的在線支付
銀聯官方有SDK文件,也有案例。
你下載下來,看一下就明白了!
大概分幾步,
1,你自己的網站把要交易的數據post給銀聯,
2,銀聯處理你post過來的數據,然後用戶輸入一些賬號信息,付款。
3,付款後,銀聯會post交易後的數據給你的網站,(這個地址會在開始你傳給銀聯的的數據裡面)
4,你接受銀聯傳輸回來的數據,自己處理!
注意的是,回調地址有個後台的,還有個前台的,不要搞混亂了!
『捌』 php網站如何做個頁面接入網銀在線支付介面,這是畢業設計,我弄不了
1.做網銀在線支付首先要和銀行簽訂相關協議(比如中國銀行等),簽訂協議後他們會提供給你支付介面的文檔和調用demo,同時還要一個測試用的支付網關和測試用戶。
2.調用支付介面很簡單,就是一個表單提交,把訂單相關數據按照銀行給你的文檔里的格式要求,提交到指定的支付網關,然後用網銀賬戶登錄進去支付即可。
3.做網銀在線支付一般需要有企業執照,個人網站估價銀行不會跟你簽。你做畢業設計的話可以試試做支付寶等第三方支付,那個當然也得簽協議,但是條件相對簡單,而且網上實例代碼很多