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

工行支付接口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
    weixin_42317583 2010-12-09 09:17
    已采纳

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

    点赞 评论
  • weixin_42317583
    weixin_42317583 2010-12-04 09:31

    商户使用工行提供的API和商户证书,商户证书相当营业执照吧,所以网上支付不是随便可以做的,是将你的交易数据tranData通过工行的API和证书加密后返回过来,而不单单的BASE64加密,BASE64可以解密的,怎么可以直接用呢,merCert就是一个加密证书

    点赞 评论
  • weixin_42317583
    weixin_42317583 2010-12-06 09:02

    也不是跑一趟就能办的

    点赞 评论

相关推荐