HT_JAVA 2010-12-03 20:56
浏览 295
已采纳

工行支付接口1.0.0.3版本

       小弟最近一个项目需要用到这个接口。做的是一个c2c网站,支持在线网银交易。想使用工行的接口。但是怎么搞都搞不定。网上也没有具体完整的。请各位有实际经验的大哥大姐们指点。先前看的是1.0.0.0版,现在使用.3版本。文档2个都看过,但是没明白有些概念。这个项目是参加电子商务竞赛的,所以我第一想法是尽量不牵涉银行方面。如果一定需要,请各位明示。 研究了2天,稍微有点头绪。首先需要对tranDate的xml明文进行Base64编码。这里面有比较多的参数,多数是基础的,或者是不用改动的,比如版本号等。但有些参数比如orderDate自行产生。

      

public static String tranDate(String orderDate){
        StringBuffer s=new StringBuffer();
        s.append("<?xml version='1.0' encoding='GBK' standalone='no'?>");
        s.append("<B2CReq>");
        s.append("<interfaceName>ICBC_PERBANK_B2C</interfaceName>");
        s.append("<interfaceVersion>1.0.0.3</interfaceVersion>");
        s.append("<orderInfo>");
        s.append("<orderDate>"+orderDate+"</orderDate>");
        s.append("<orderid>20070725105014-2134062548</orderid>");
        s.append("<amount>1</amount>");
        s.append("<curType>001</curType>");
        s.append("<merID>0200EC20000875</merID>");
        s.append("<merAcct>0200020409015029130</merAcct>");
        s.append("</orderInfo>");
        s.append("<custom>");
        s.append("<verifyJoinFlag>0</verifyJoinFlag>");
        s.append("<Language>ZH_CN</Language>");
        s.append("</custom>");
        s.append("<message>");
        s.append("<goodsID></goodsID>");
        s.append("<goodsName></goodsName>");
        s.append("<goodsNum></goodsNum>");
        s.append("<carriageAmt></carriageAmt>");
        s.append("<merHint></merHint>");
        s.append("<remark1></remark1>");
        s.append("<remark2></remark2>");
        s.append("<merURL>http://localhost:8080/ICBC/ICBCDemo.html</merURL>");
        s.append("<merVAR></merVAR>");
        s.append("</message>");
        s.append("</B2CReq>");
        return s.toString();
    }
    public String getTranData() {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");   
        String orderDate =  formatter.format(new Date());// 14位时间戳
        String encoded = Base64.encode(tranDate(orderDate), "UTF-8");
        return encoded;
    }

在表单部分:

  

<form  name="order" method="post" action="https://mybank.icbc.com.cn/servlet/ICBCINBSEBusinessServlet">
    <input name="interfaceName" type="text" value="ICBC_PERBANK_B2C" >
    <input name="interfaceVersion" type="text" value="1.0.0.3">
    <input name="tranData" type="text" value="<%=t.getTranData()%>"/>
    <input name="merSignMsg" type="text" value="DEIdSLqGvBJAcJFzg0BuhuM3gVVofOahFRFAOJ//kcjvZqUJ0GWcY3C/4qufgK+qsqbmQWV2rFdHwzvgJXg0AXpzPPlJ7JesO2iXCGXCWMchr7KaoVe10w20TojcyJxLbVciuA3C2YPoyY7/+jv6lsnhS5GcR6GDe6vm86MZmv8=">
    <input name="merCert" type="text" value="MIICUTCCAbqgAwIBAgIKI9fKEDP6AAAXtjANBgkqhkiG9w0BAQUFADA0MRgwFgYDVQQDEw9wYmouaWNiYy5jb20uY24xGDAWBgNVBAoTD3Biai5pY2JjLmNvbS5jbjAeFw0xNzAzMTAwNzI0MTdaFw0xODAzMTAwNzI0MTdaMD4xEzARBgNVBAMTCnBhbi5lLjAyMDAxDTALBgNVBAsTBDAyMDAxGDAWBgNVBAoTD3Biai5pY2JjLmNvbS5jbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqBdQrbNWE61+forNFMGI/MmXxKY58P39YO4vzLpHCTHNGRwJKIwILMEOND88vh7cXTBY8kbt3vt0N+4pJY3iwKQA0GfuLfv5EjrsstyUohhogoxNAwxdbOLUTnn1ejNjwelZch4GqdkgmRzu6uTywRGW//foiUNgR/yL7Q2FcV0CAwEAAaNgMF4wSwYDVR0fBEQwQjBAoD6gPKQ6MDgxDjAMBgNVBAMTBWNybDIxMQwwCgYDVQQLEwNjcmwxGDAWBgNVBAoTD3Biai5pY2JjLmNvbS5jbjAPBgNVHWMECAMGAP8AAAAAMA0GCSqGSIb3DQEBBQUAA4GBAOImQhTOiQxHABUefFShrD1u3N2GhVP6JnyNUOAfI40WqxszjyfmRmhYPQUQc+8fMf52mcYXiVaEM4BVuRLPkCaybBwI0ykS+xBNMhy72naQPCeR+NNyZ4xduv/E5UE+INJrjnOHR7UWRBzdxX9bjsFB16beUVir7+S+adaXyQFT"/>
    <input type="submit" value=" 提 交 订 单 " >
 </form>

    

   接下来就是我的疑问。希望各位指点。

  1.在表单部分有merSignMsg和merCert这个是根据什么来得到的呢?应该是动态的吧?就像tranData的获取一样。

   文档中说

 

后2个参数的概念非常模糊,如何获取呢?merSignMsg的注意部分写的什么意思?这个参数到底是如何计算出来的呢?merCert也是很模糊。

请有开发过的大哥大姐指点谢谢。

 

这是工行报的错误:

 

 

  • 写回答

3条回答 默认 最新

  • weixin_42317583 2010-12-09 09:17
    关注

    好像听说需要营业执照吧,不然人人都可以做了,可以去银行咨询下,具体怎么搞,我也不是很清楚

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?