php实现工商银行在线支付接口:
实现工商银行的在线支付功能,主要是根据工商银行提供的在线支付的接口,将订单中的数据以表单的形式提交到工行指定的网站中接口中,具体详细的参数设置可以参考工行提供的文档说明书和实现的实例程序。
在实现与工商银行接口之前,首先要在工行提供的说明书中找到如下两个文件。
1.开发api接口libwindowswin32infosecapi.dll(windows xp系统使用的文件).
2.开发api接口aspicbcebankutil.dll
将其复制到系统文件夹下的windowssystem32目录下,运行命令"regsvr32 icbcebankutil.dll"加载服务。
通过php实现网站与工行接口交互的方法如下
首先,通过com类中的init方法对订单签名数据和商城的公钥进行加密处理,并且将指定的数据以表单的形式提交到工行指定的页面,代码如下:
$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:WINDOWSuser.crt","c:WINDOWSuser.crt","c:WINDOWSuser.key","11111111");
$ssrc=$com->signC($src, strlen($src)); //订单签名数据
$rc=$com->verifySignC($src,strlen($src), $ssrc, strlen($ssrc));
$cert=$com->getCert(1); //商城证书公钥
完成订单签名数据和商城证书公钥的加密处理,这里将商户的测试证书存储到c:windows目录下,设置商户的密钥口令是00.
然后创建form表单,将制定的数据提交到工行指定的网站中,关键代码如下:
需要提交的表单数据:<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>