版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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%>工商银行网上支付接口PHP的demo(原创) - 发送篇 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系统 刚刚调试完成,不过我用的是asp做的, 由于我不会,这里只把我的过程说出来,希望对楼主有所帮助 接口环境ASP语言,工行网上支付接口步骤 1)搭建java环境及java环境测试: 参见文档:“ICBC API配置使用方法.doc”(这个工行应该提供给你了的)
36、Win32平台下API配置使用方法 安装、使用方法 1.将dll目录下的.dll文件拷贝到系统的WinNT/System32或Windows/System32下; 2.各个接口的具体使用方法:c版请参见demo.c, java版请参见Test.java; java测试 1.Windows2000,JDK1.3 (jdk包可以网上下载,请注意必须是1.3及其以上版本) 2.在C:盘建立目录test,放入新老证书new.crt, old.cert和对应的私钥文件new.key,old.key;测试用的所有证书我是都放这里的 3.
37、将编译ReutrnValue.java得到的.infosec.icbc.ReturnValue.class拷到系统的classpath里; 4.将编译Test.java得到的Test.class拷到系统的classpath里,使用命令行运行 "java Test ",程序依次允许API中的所有的方法,并将结果输出值终端; 证书就用工行所提供的就可以了。第3点提到的系统的classpath是指在环境变量中所列出的任一个目录都可以,当然这对懂一点java的阅者而言是无需多说了。ja
38、va Test能顺得输出的话(java可是区分大小写的吆),环境就搭建完成了 2)接下来的事就只要看asp开发包就是了 当然运行这段代码前可别忘了注册ICBCEBANKUTIL.B2CUtil(运行:regsvr32ICBCEBANKUTIL.dll),还要就是 (rc=bb.init ( "d:user.crt ", "d:user.crt ", "d:user.key ", "12345678 "))这里所指出的路径必须要和实际证书存放的路径一致,千万注意别把密码弄错了,对了,应该好
39、像应该先把密钥导入的。 运行一下这段asp代码,如果没有错误的话就可以写订单提交页面和信息接收的页面了 3)订单提交页面:(参见“中国工商银行网上银行系统B2C子系统商户接口规范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%> " > <!-接收工行支付结果信息的程序名称和地址-> <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%> " > <!-信息发送类型-> <input type= "hidden " name= "signMsg " value= " <%=ssrc%> &q
50、uot; > <!-BASE64编码后的交易数据签名信息-> <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= "工行网上支付 "> </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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床氨甲苯酸、氨基己酸、氨甲环酸等止血药适应症、用法、不良反应、禁忌症等区别及药理作用
- 2024果树采购合同
- 2025高考生物备考说课稿:免疫失调与免疫学的应用说课稿
- 2024融资合同范本:新能源汽车产业专项协议3篇
- 专属2024学校系列校服订购协议
- 2024液化气运输合同能源消耗与减排责任规范文本3篇
- 专业咨询顾问合作合同(2024年度版)版
- 福建省南平市松溪县郑墩中学高二语文月考试题含解析
- 12坐井观天(说课稿)2024-2025学年统编版语文二年级上册
- 1-1《子路、曾皙、冉有、公西华侍坐》说课稿-2024-2025学年高一语文下学期同步说课稿(统编版必修下册)
- 人教版(2024新版)七年级上册生物期末复习全册知识点提纲
- 期末达标测试卷(二)(试卷)-2024-2025学年冀教版数学四年级上册
- 2024-2030年中国干燥设备行业研发创新状况及发展行情监测报告
- GB/T 44413-2024城市轨道交通分类
- GB 19041-2024光气及光气化产品生产安全规范
- 拔除气管导管的护理
- 2024年大学英语四六级考试大纲词汇
- NB/T 11450-2023矿用隔爆型三相永磁同步电动滚筒
- 2024年山东省生态环境监测专业技术人员大比武理论试题库(含答案)
- GB 28008-2024家具结构安全技术规范
- 消防技能训练-射水姿势与形式课件讲解
评论
0/150
提交评论