版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<?<?php/=/ FileName :send.php/ Summary :工行接口程序/ CreateTime :2007-12-14 10:08/ Author :Yang Zhao cpuyz/=session_start();require_once('config.php');$link_id = mysql_connect($dbhost,$dbuser,$dbpwd);mysql_select_db($dbname);$str = "SELECT * FROM rc_examinee WHERE id=4"$result = m
2、ysql_query($str,$link_id);$rs = mysql_fetch_array($result);$orderDate = date("YmdHms",time();$orderid =$rs'orderid'$amount =$rs'amount'$subject = $rs'subject'mysql_close($link_id);$text ='<?xml version="1.0" encoding="GBK" standalone="
3、;no"?><B2CReq> <interfaceName>ICBC_PERBANK_B2C</interfaceName> <interfaceVersion></interfaceVersion> <orderInfo> <orderDate>20080131105721</orderDate> <orderid>'.$orderid.'</orderid> <amount>'.$amount.'&
4、lt;/amount> <curType>001</curType> <merID>1304EC20001331</merID> <merAcct>1304002919300042726</merAcct> </orderInfo> <custom> <verifyJoinFlag>0</verifyJoinFlag> <Language>ZH_CN</Language> </custom> <message> <g
5、oodsID></goodsID> <goodsName>'.$subject.'</goodsName> <goodsNum></goodsNum> <carriageAmt></carriageAmt> <merHint>商城提示</merHint> <remark1></remark1> <remark2></remark2> <merURL>90/rczx/rece
6、ave.php</merURL> <merVAR>test</merVAR> </message></B2CReq>'$base64_tranData=base64_encode($text);$dll = new COM("ICBCEBANKUTIL.B2CUtil");$rc=$dll->init("d:user.crt","d:user.crt","d:user.key","11111111");$stext=bas
7、e64_encode($dll->signC($text,strlen($text);$cert=base64_encode($dll->getCert(1);?><form action=" method="POST" name="send"><INPUT TYPE="hidden" NAME="interfaceName" value="ICBC_PERBANK_B2C"><INPUT TYPE="hidden"
8、NAME="interfaceVersion" value=""><INPUT TYPE="hidden" NAME="tranData" value="<?=$base64_tranData?>"><INPUT TYPE="hidden" NAME="merSignMsg" value="<?=$stext?>"><INPUT TYPE="hidden
9、" NAME="merCert" value="<?=$cert?>"><INPUT type="submit"></form><script language="JavaScript" type="text/JavaScript"> send.submit() </script>下面是工行提供的ASP的DEMO程序:<% Dim bb,rc Set bb =CreateObject("ICBCEBANK
10、UTIL.B2CUtil") rc=bb.init ("d:user.crt","d:user.crt","d:user.key","11111111") if rc=0 then response.write "初始化成功.<br>" end if src = "this is a test" ssrc = bb.signC(src, Len(src) If ssrc = "" Then response.write "簽
11、名失敗,錯誤原因:<br>" response.write bb.getRC else response.write "簽名成功:<br>簽名為:" response.write ssrc End If response.write "<br>" rc=bb.verifySignC(src, Len(src), ssrc, Len(ssrc) If rc<>0 Then response.write "驗證簽名失敗,錯誤原因:<br>" response.write
12、 rc else response.write "驗證簽名成功:<br>" End If response.write "<br>" response.write "商戶證書:" cert=bb.getCert(1) If cert = "" Then response.write "獲取商戶證書失敗,錯誤原因:<br>" response.write bb.getRC else response.write "獲取商戶證書成功:<br>
13、" response.write cert End If%>工商銀行網(wǎng)上支付接口PHP的demo(原創(chuàng)) - 發(fā)送篇 send.php<?phpdate_default_timezone_set('PRC');include_once("icbc.php");if(!empty($_POST'hide') $fdir = $_SERVER'DOCUMENT_ROOT'."/key/" /商戶證書所放路徑$target = "http:/localhost/test.php&q
14、uot;$payAPI'interfaceName' = "ICBC_PERBANK_B2C" /接口方式$payAPI'interfaceVersion' = "" /接口版本$payAPI'merID' = "0200EC20000012" /商戶ID$payAPI'merAcct' = "0200029109000030106" /商戶銀行帳號$payAPI'merURL' = "http:/localho
15、st/get.php" /接收銀行通知路徑$payAPI'notifyType' = "HS" /接口通知方式$payAPI'orderid' = $_POST'orderid'$payAPI'amount' = $_POST'amount'$payAPI'curType' = "001" /貨幣類型 001為人民幣$payAPI'resultType' = "0"$payAPI'orderDate'
16、; = date("YmdHis");$payAPI'verifyJoinFlag' = "0"$icbc = new icbcpay();$icbc->init($payAPI,$fdir);$icbc->Send();?><html><head><title>模擬B2C交易</title></head><body leftmargin="0" topmargin="0"><table cellpadd
17、ing="1" cellspacing="1" bgcolor="#E5E5E5" width="800" align="center"><tr bgcolor="#F5F5F5"><td height="50" align="center">交易平臺</td></tr><form action="b2c.php" method="post&quo
18、t;><tr bgcolor="#FFFFFF"><td height="440" align="center"><table cellpadding="1" cellspacing="1" bgcolor="#E5E5E5" width="600"><tr bgcolor="#F5F5F5"> <td height="30" ali
19、gn="center" width="120">訂 單 號</td> <td bgcolor="#FDFDFD" width="580"> <input type="text" name="orderid" value="000000001" style="width:300px" /> </td&
20、gt;</tr><tr bgcolor="#F5F5F5"> <td height="30" align="center" width="120">商品金額</td> <td bgcolor="#FDFDFD" width="580"> <input type="text" name="am
21、ount" value="100" style="width:300px" /> </td></tr><tr bgcolor="#FAFAFA"> <td colspan="2" height="30"> <input type="hidden" name="hide" value="1" /&g
22、t; <input type="submit" value="提交" /> </td></tr></table></td></tr></form></table></body></html>icbc.php<?phpclass icbcpayprivate $payAPI = Array();private $fdir;private $LongString;private $POS
23、TString;private $target;public function init($api,$fdir) $this->payAPI = $api; $this->fdir = $fdir; $this->target = $target; $this->getCOMAPI();private function getCOMAPI() $icbc = new COM("ICBCEBANKUTIL.B2CUtil");
24、0; $crt = $this->fdir."user.crt" $key = $this->fdir."user.key" $rc = $icbc->init($crt, $crt, $key, '11111111'); $this->setString(); if($rc = 0) $this->payAPI'merSignMsg' = $icb
25、c->signC($this->LongString, strlen($this->LongString); $this->payAPI'merCert' = $icbc->getCert(1); private function setString() $payAPI = $this->payAPI; $this->LongString.= "" foreach ($payAPI as
26、 $key => $value) $this->LongString.= $value; private function setPOSTString() $payAPI=$this->payAPI; $this->POSTString = "" foreach ($payAPI as $key => $value) if($key = "interfaceName
27、") $this->POSTString.=$key."=".$value; else $this->POSTString.="&".$key."=".$value; private function setFromTxt() $payAPI = $this->payAPI;
28、60; foreach ($payAPI as $key => $value) $header.= '<input type="hidden" readonly="readonly" name="'.$key.'" value="'.$value.'">' $header.= '</form>'
29、60; return $header;public function Send() $url = "http:/localhost/test.php" $header = '<form action="'.$url.'" id="sendform" method="post" name="order">' $header.= $this->
30、setFromTxt(); $header.= "<script type="text/javascript">" $header.= "document.getElementById("sendform").submit();" $header.= "</script>" echo $header; /$referrer = &
31、quot;" /$url_info = parse_url($url); /if($referrer = "") /$referrer = $_SERVER'SCRIPT_URI' /$this->setPOSTString(); /$POSTString = $this->POSTString; /$data_string = $POSTString;
32、60; /$request = "POST ".$url_info"path"." HTTP/1.1n" /$request.= "Host: ".$url_info"host"."n" /$request.= "Referer: $referrern" /$request.= "Content-type: application/x-www-form-urlen
33、codedn" /$request.= "Content-length: ".strlen($data_string)."n" /$request.= "Connection: closen" /$request.= "n" /$request.= $data_string."n" /$fp = fsockopen($url_info'host', 8
34、0); /fputs($fp, $request); /while (!feof($fp) /$request .= fgets($fp, 128); / /echo $request; /fclose($fp); /header("location:$url"); /printf('<script type="text/javascript&qu
35、ot;>'); /printf('window.location="'.$url.'"'); /printf('</script>');?>我前幾天也正在做這個工行的B2C系統(tǒng) 剛剛調(diào)試完成,不過我用的是asp做的, 由于我不會,這里只把我的過程說出來,希望對樓主有所幫助 接口環(huán)境ASP語言,工行網(wǎng)上支付接口步驟 1)搭建java環(huán)境及java環(huán)境測試: 參見文檔:“ICBC API配置使用方法.doc”(這個工行應(yīng)該提供給你了的)
36、Win32平臺下API配置使用方法 安裝、使用方法 1.將dll目錄下的.dll文件拷貝到系統(tǒng)的WinNT/System32或Windows/System32下; 2.各個接口的具體使用方法:c版請參見demo.c, java版請參見Test.java; java測試 1.Windows2000,JDK1.3 (jdk包可以網(wǎng)上下載,請注意必須是1.3及其以上版本) 2.在C:盤建立目錄test,放入新老證書new.crt, old.cert和對應(yīng)的私鑰文件new.key,old.key;測試用的所有證書我是都放這里的 3.
37、將編譯ReutrnValue.java得到的.infosec.icbc.ReturnValue.class拷到系統(tǒng)的classpath里; 4.將編譯Test.java得到的Test.class拷到系統(tǒng)的classpath里,使用命令行運行 "java Test ",程序依次允許API中的所有的方法,并將結(jié)果輸出值終端; 證書就用工行所提供的就可以了。第3點提到的系統(tǒng)的classpath是指在環(huán)境變量中所列出的任一個目錄都可以,當(dāng)然這對懂一點java的閱者而言是無需多說了。ja
38、va Test能順得輸出的話(java可是區(qū)分大小寫的吆),環(huán)境就搭建完成了 2)接下來的事就只要看asp開發(fā)包就是了 當(dāng)然運行這段代碼前可別忘了注冊ICBCEBANKUTIL.B2CUtil(運行:regsvr32ICBCEBANKUTIL.dll),還要就是 (rc=bb.init ( "d:user.crt ", "d:user.crt ", "d:user.key ", "12345678 "))這里所指出的路徑必須要和實際證書存放的路徑一致,千萬注意別把密碼弄錯了,對了,應(yīng)該好
39、像應(yīng)該先把密鑰導(dǎo)入的。 運行一下這段asp代碼,如果沒有錯誤的話就可以寫訂單提交頁面和信息接收的頁面了 3)訂單提交頁面:(參見“中國工商銀行網(wǎng)上銀行系統(tǒng)B2C子系統(tǒng)商戶接口規(guī)范20030106V3.4.doc”) <% Set bb =CreateObject( "ICBCEBANKUTIL.B2CUtil ") rc=bb.init ( "d:icbcuser.crt ", "d:icbcuser.crt ", "d:icbcuser.key ",
40、"123456 ") orderid=rs( "orderid ") payment=payment*100 merchantid= "120300010002 " interfaceType= "HS " curType= "001 " hsmsgType= "0 " merURL= " " '接收信息Url src=merchantid&merURL&interfaceType&orderid&payment&a
41、mp;curType&hsmsgtype ssrc = bb.signC(src, Len(src) cert=bb.getCert(1) %> <table width=300 align= "center "> <tr> <td> <form name= " sendOrder " method= "post "
42、; action= " "> <div align= "center "> <input type= "hidden " name= "merchantid " value= "
43、 <%=merchantid%> " > <!-商城代碼-> <input type= "hidden " name= "interfaceType " value= "
44、; <%=interfaceType%> " > <!-接口類型-> <input type= "hidden " name= "merURL " value= " &
45、lt;%=merURL%> " > <!-接收工行支付結(jié)果信息的程序名稱和地址-> <input type= "hidden " name= "orderid " value= &qu
46、ot; <%=orderid%> " > <!-訂單號-> <input type= "hidden " name= "amount " value= " <%=
47、payment%> " > <!-訂單總金額(以分為單位)-> <input type= "hidden " name= "curType " value= " <%=
48、curType%> " > <!-幣種-> <input type= "hidden " name= "hsmsgType " value= " <%=hsmsgTyp
49、e%> " > <!-信息發(fā)送類型-> <input type= "hidden " name= "signMsg " value= " <%=ssrc%> &q
50、uot; > <!-BASE64編碼后的交易數(shù)據(jù)簽名信息-> <input type= "hidden " name= "cert " value= " <%=cert%> &q
51、uot; > <!-BASE64編碼后的商戶證書-> <input type= "hidden " name= "comment1 " value= " " >
52、 <!-備注字段2-> <input type= "hidden " name= "comment2 " value= " " >
53、60; <!-備注字段3-> <input type= "submit " value= "工行網(wǎng)上支付 "> </div>
54、60; </form> </tb> </tr> </table> 4)接收頁: 這個頁面中只提供一個處理信息的頁面的地址,其他沒有任何東西 以下是dealinfo.asp中的部分代碼 UserID=request.form( "UserID ") OrderNum=request.form( "orderNum ") Orderid=ordernum amount=request.form( "amount ") payment=amount/1
55、00 TranDate=request.form( "tranDate ") Transerialnum=request.form( "transerialnum ") AuthNum=request.form( "authNum ") SuccMark=request.form( "succMark ") '0 -成功;1 -失敗;2-可疑交易 Comment=request.form( "comment ") CurType=request.form( "curType ") HsmsgType=request.form( "hsmsgTy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025集體宿舍租賃合同
- 2025機械設(shè)備標(biāo)準(zhǔn)買賣合同范本
- 2024年02月拜泉融興村鎮(zhèn)銀行招考筆試歷年參考題庫附帶答案詳解
- 2025裝飾公司合同訴訟狀樣本
- 2025來件裝配合同范本
- 茵陳臨床應(yīng)用案例分析-洞察分析
- 網(wǎng)絡(luò)切片技術(shù)發(fā)展-第2篇-洞察分析
- 野生植物遺傳育種研究進展-洞察分析
- 2025張家口場地租賃合同范本
- 2024年度演員參與電影劇本改編合同3篇
- 北京市西城區(qū)2022-2023學(xué)年高二上學(xué)期期末考試 化學(xué)試卷 附答案
- 2023-2024學(xué)年安徽省合肥市瑤海區(qū)八年級(上)期末數(shù)學(xué)試卷(含答案)
- 2018普通高中第十屆化學(xué)趣味知識競賽(含答案)
- 2023年心理學(xué)基礎(chǔ)知識試題及答案
- 湖南省岳陽市2023-2024學(xué)年高三上學(xué)期教學(xué)質(zhì)量監(jiān)測(一)(一模) 英語 含解析
- 2024新信息科技三年級《第二單元 記錄美好時光》大單元 第5課 美化處理圖片(計劃一課時) 教學(xué)設(shè)計2022課標(biāo)
- 北師大版數(shù)學(xué)二年級上冊100道口算題大全(全冊 )
- 01SS105給排水常用儀表及特種閥門安裝圖集
- 人教部編統(tǒng)編版初中八年級語文下學(xué)期全冊單元測試卷(1-6單元全含期中期末及答案解析)
- 住院醫(yī)師規(guī)范化培訓(xùn)婦產(chǎn)科出科考試帶答案
- 朝陽區(qū)六年級上學(xué)期語文期末試卷
評論
0/150
提交評論