工商银行支付接口开发

meloveself 2009-04-13 03:30:35
现在在开发工商银行支付接口的时候出现了这样一个问题:我点击提交按钮时,工商银行则提示如下:信息代码:96112036

提示信息:对不起,系统报错,信息处理失败。

源程序如下:
<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Web.UI" %>
<%@ Import Namespace="System.Web.UI.WebControls" %>
<%@ Import Namespace="System.Web.UI.WebControls.WebParts" %>
<%@ Import Namespace="System.Web.UI.HtmlControls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>工商银行在线支付</title>
<meta http-equiv="content-type" content="text/html;charset=GBK" />
</head>
<body>
<div>
<%
string order = "https://mybank.dccnet.com.cn/servlet/ICBCINBSEBusinessServlet";//工商银行提交地址
string interfaceName = "ICBC_PERBANK_B2C";
string interfaceVersion = "1.0.0.3";
//以下是Order Infomation
string orderDate=DateTime.Now.ToString("yyyyMMddhhmmss");
string orderID="20070725105014-2134062548";
string amount="20";
string curType="001";//人民币
string merID = "0200EC20006972";
string merAcct = "0200004519000100173";
string merCert = "";//证书公钥
//以下是Custom Information
string verifyJoinFlag="1";
string language="ZH_CN";

//以下是Goods Information
string goodsID="001";
string goodsName="abc";
string goodsNum="2";
string carriageAmt="20";
string merHint="efa";
string remark1="";
string remark2="";
string merURL="http://www.bjetc.cn";
string merVAR="test";
string transData="<?xml version="+"\"1.0\""+" encoding="+"\"GBK\""+" standalone="+"\"no\" ?><B2CReq><interfaceName>"+interfaceName+"</interfaceName><interfaceVersion>"+interfaceVersion+"</interfaceVersion><orderInfo><orderDate>"+orderDate+"</orderDate><orderid>"+orderID+"</orderid><amount>"+amount+"</amount><curType>"+curType+"</curType><merID>"+merID+"</merID><merAcct>"+merAcct+"</merAcct></orderInfo><custom><verifyJoinFlag>"+verifyJoinFlag+"</verifyJoinFlag><Language>"+language+"</Language></custom><message><goodsID>"+goodsID+"</goodsID><goodsName>"+goodsName+"</goodsName><goodsNum>"+goodsNum+"</goodsNum><carriageAmt>"+carriageAmt+"</carriageAmt><merHint>"+merHint+"</merHint><remark1>"+remark1+"</remark1><remark2>"+remark2+"</remark2><merURL>"+merURL+"</merURL><merVAR>"+merVAR+"</merVAR></message></B2CReq>";
//string path1 = @"D:\user.crt";
string path1 = @"D:\ebb2cpublic.crt";//银行测试证书路径
string path2=@"D:\user.crt";//拆分pfx后缀的证书后的公钥路径
string path3=@"D:\user.key";//拆分pfx后缀的证书后的私鈅路径
string key="12345678";
string merSignMsg="";//加密后的字符串,下面赋值
//ICBCEBANKUTILLib.B2CUtil obj = new ICBCEBANKUTILLib.B2CUtilClass();
ICBCEBANKUTILLib.B2CUtilClass obj = new ICBCEBANKUTILLib.B2CUtilClass();
//ICBCEBANKUTILLib.B2CUtil obj = new ICBCEBANKUTILLib.B2CUtil();
if (obj.init(path1, path2, path3, key) == 0)//加载公钥,私鈅,如果返回0则表示加载成功
{
merSignMsg = obj.signC(transData,transData.Length);//加密明文
if (obj.verifySignC(transData, transData.Length, merSignMsg, merSignMsg.Length) == 0)
{
merCert = obj.getCert(1);//提取证书
}
}
else//失败的处理方法
{
Response.Write(obj.getRC());
}

%>
</div>
<form id="order" method="post" action="<%= order %>">
<input name="interfaceName" type="hidden" value="ICBC_PERBANK_B2C" />
<input name="interfaceVersion" type="hidden" value="1.0.0.3" />
<input name="tranData" type="hidden" value="<%= transData %>" />
<input name="merSignMsg" type="hidden" value="<%= merSignMsg %>" />
<input name="merCert" type="hidden" value="<%= merCert %>" />
<input type="submit" value="工商银行进行支付" />
</form>
</body>
</html>


...全文
4002 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nishiayan 2012-06-14
  • 打赏
  • 举报
回复
如果是win,那么能不能用webBrowser1来返回结果?
xm057 2011-10-26
  • 打赏
  • 举报
回复
十分士大夫
JeffreyZhang1314 2010-12-21
  • 打赏
  • 举报
回复
楼主代码够霸道,我想一定是 asp 程序员出身
大隐-于市 2010-01-28
  • 打赏
  • 举报
回复
我也与到这个问题,错误信息和你一样!
meloveself 2009-06-30
  • 打赏
  • 举报
回复
目前没有使用工商银行提供的接口进行开发,而是自己开发了一套接口,所以如有人需要可以联系我!
meloveself 2009-04-29
  • 打赏
  • 举报
回复
我的问题到现在还没有解决掉,不清楚是不是证书的原因,敬请高手指教!
suners 2009-04-23
  • 打赏
  • 举报
回复
不晓得
lovelium 2009-04-23
  • 打赏
  • 举报
回复
可能大性得是证书的原因
Summer_Tiger 2009-04-23
  • 打赏
  • 举报
回复
你好,你的问题解决了吗?
meloveself 2009-04-13
  • 打赏
  • 举报
回复
上述地址是工商银行给提供的测试地址啊?不知道为什么总是报这个错误,向工商银行错误代码方面的文档,他们说根本就没有,郁闷!
wzh307 2009-04-13
  • 打赏
  • 举报
回复
在工商银行支付接口的开发文档中找到信息代码:96112036的错误是什么错误才可以调试。

不过很多出现问题是因为没有正确配置工行的测试地址和工行正式上线的地址
即string order = "https://mybank.dccnet.com.cn/servlet/ICBCINBSEBusinessServlet";//工商银行提交地址
这个地址是测试地址还是正式上线的地址?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧