华夏银行 大宗三方 B2B接口 JAVA 转 PHP接口

最近在忙着折腾华夏银行大宗三方B2B开发,拿到接口的时间直接懵逼,给了我一个JAVA的jar,天空中一万只草泥马飞过。

系统是PHP的程序,结果给我一个java的,而且只有java的,还是gb2312。

苦逼的程序猿,开始尝试使用php-java-bridge,PHP调用jar包的方法。实践检验可行,能够调用方法,但是返回数据的强制转型,怎么也搞不出来。

奋起暴躁的猿怎么可能忍得了,去他妹妹的jar,直接用PHP暴力发送数据。

1、安装JD-GUI

安装JD-GUI之前先安装jdk,直接在网上能搜到很多教程。

我下载的版本是https://github.com/java-decompiler/jd-gui/releases/download/v1.4.0/jd-gui-1.4.0-0.noarch.rpm。

直接暴力读java源码,用PHP实现他的逻辑。

2、不抱怨了,直接上PHP的代码吧。

注:这里只提供一种思路哈,其实很简单,就是往银行的服务器上发送xml数据包就可以。 

签名实现方法:

 private function sign($data)
    {
        $certs = array();
        openssl_pkcs12_read(file_get_contents("123456.pfx"), $certs, "123456"); 
        if (!$certs) return;
        $signature = '';
        openssl_sign($data, $signature, $certs['pkey']);
        return base64_encode($signature);
    }

拼接发送数据:

private function get_post_data($original_len, $xml_data)
    {
        $headers = array(
            'POST /dzserver/test HTTP/1.1',
            "\r\n",
            'User-Agent: Java/1.3.1',
            "\r\n",
            'Host: ×××.××.×××.×××:9080',
            "\r\n",
            'Cookie: JSESSIONID=aIG-RvFXRUUe',
            "\r\n",
            'Accept: text/html, image/gif, image/jpeg, *; q=.2, * /*; q=.2',
            "\r\n",
            'Connection: keep-alive',
            "\r\n",
            'Content-Type: application/x-www-form-urlencoded',
            "\r\n",
            'Content-Length:'
        );

        $headers_str = implode('', $headers);
        $post_data = $headers_str . $original_len . "\r\n" . "\r\n" . $xml_data;
        return $post_data;
    }

发送数据:

private function post_url($url, $post_data)
    {

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_HTTP_VERSION, '1.0');
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);


        $res = curl_exec($ch);
        curl_close($ch);
        return $res;
    }

返回的数据直接用simpleXMLElement处理返回对象,可以调用里面的数据。 

注:这里只提供一个思路,请求银行服务器的类代码有500多行,就不往上贴了,有需要加扣扣(七九二二四零五八六)哈



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值