版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rè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 "驗(yàn)證簽名失敗,錯誤原因:<br>" response.write
12、 rc else response.write "驗(yàn)證簽名成功:<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里,使用命令行運(yùn)行 "java Test ",程序依次允許API中的所有的方法,并將結(jié)果輸出值終端; 證書就用工行所提供的就可以了。第3點(diǎn)提到的系統(tǒng)的classpath是指在環(huán)境變量中所列出的任一個目錄都可以,當(dāng)然這對懂一點(diǎn)java的閱者而言是無需多說了。ja
38、va Test能順得輸出的話(java可是區(qū)分大小寫的吆),環(huán)境就搭建完成了 2)接下來的事就只要看asp開發(fā)包就是了 當(dāng)然運(yùn)行這段代碼前可別忘了注冊ICBCEBANKUTIL.B2CUtil(運(yùn)行:regsvr32ICBCEBANKUTIL.dll),還要就是 (rc=bb.init ( "d:user.crt ", "d:user.crt ", "d:user.key ", "12345678 "))這里所指出的路徑必須要和實(shí)際證書存放的路徑一致,千萬注意別把密碼弄錯了,對了,應(yīng)該好
39、像應(yīng)該先把密鑰導(dǎo)入的。 運(yùn)行一下這段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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床氨甲苯酸、氨基己酸、氨甲環(huán)酸等止血藥適應(yīng)癥、用法、不良反應(yīng)、禁忌癥等區(qū)別及藥理作用
- 2024果樹采購合同
- 2025高考生物備考說課稿:免疫失調(diào)與免疫學(xué)的應(yīng)用說課稿
- 2024融資合同范本:新能源汽車產(chǎn)業(yè)專項(xiàng)協(xié)議3篇
- 專屬2024學(xué)校系列校服訂購協(xié)議
- 2024液化氣運(yùn)輸合同能源消耗與減排責(zé)任規(guī)范文本3篇
- 專業(yè)咨詢顧問合作合同(2024年度版)版
- 福建省南平市松溪縣鄭墩中學(xué)高二語文月考試題含解析
- 12坐井觀天(說課稿)2024-2025學(xué)年統(tǒng)編版語文二年級上冊
- 1-1《子路、曾皙、冉有、公西華侍坐》說課稿-2024-2025學(xué)年高一語文下學(xué)期同步說課稿(統(tǒng)編版必修下冊)
- 人教版(2024新版)七年級上冊生物期末復(fù)習(xí)全冊知識點(diǎn)提綱
- 期末達(dá)標(biāo)測試卷(二)(試卷)-2024-2025學(xué)年冀教版數(shù)學(xué)四年級上冊
- 2024-2030年中國干燥設(shè)備行業(yè)研發(fā)創(chuàng)新狀況及發(fā)展行情監(jiān)測報告
- GB/T 44413-2024城市軌道交通分類
- GB 19041-2024光氣及光氣化產(chǎn)品生產(chǎn)安全規(guī)范
- 拔除氣管導(dǎo)管的護(hù)理
- 2024年大學(xué)英語四六級考試大綱詞匯
- NB/T 11450-2023礦用隔爆型三相永磁同步電動滾筒
- 2024年山東省生態(tài)環(huán)境監(jiān)測專業(yè)技術(shù)人員大比武理論試題庫(含答案)
- GB 28008-2024家具結(jié)構(gòu)安全技術(shù)規(guī)范
- 消防技能訓(xùn)練-射水姿勢與形式課件講解
評論
0/150
提交評論