zoukankan      html  css  js  c++  java
  • Php开发银行接口之浦发银行

    Php开发银行接口之浦发银行

    (提示:下面的经验都是按照开发文档一步一步踩坑过来的,但是不能不看开发文档!!!)

    第一步:开发准备

             1,安装java,百度下载JDK很方便(我自己网盘有,然后配置环境变量参照http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html)

                     

             2,java.zip(开发文档包里面,如果没有这个开发包请联系浦发银行,或者联系我)解压后放到项目中,例:/项目根目录/java/。(其实你放哪儿都行,只要能引入就ok)

    2、开发文档包所有的JAR 放到D:/certtest/jar(目前我是测试环境,所以我就放在D盘了) 。

    编辑spdb_merchant.properties文件,修改cafile=jks文件路径/ spdbmerchant.jks项,正确指向JKS的存放目录。

    3、修改完成后,请将spdb_merchant.properties打包至properties.jar中。命令如下:

    (如果该jar命令无法使用,应该是环境变量没配对,可能要cd到java安装目录的bin目录下去执行,如果还是不行就重新安装一个版本,)

    jar -cvf properties.jarspdb_merchant.properties

    4、在命令行模式cmd下,当前目录为第2步JAR放置目录,输入

    java -jar JavaBridge.jar SERVLET:8019

    请注意,该命令需要使用本机8019端口,如果被占用,可自行订置端口号,并且需要修改java目录下的java.inc文件中的相应端口号。

    java/Java.inc文件:

    修改第12行:define("JAVA_HOSTS", "127.0.0.1:8019");

             5,  为了php能调用java,安装phpjavabridge(参照:http://blog.csdn.net/qhdcsj/article/details/49131387)

    l  保证上面安装了java的环境 JDK安装成功

    l  下载php-java-bridge包。地址:http://sourceforge.NET/projects/php-java-bridge/files,点击Binary package 下载JavaBridgeTemplate621.war。使用winrar解压,找到WEB-INFlib下的JavaBridge.jar文件。

    l  使用java.exe打开这个文件:java-jar JavaBridge.jar,在弹出的窗口中选择8080端口。(如果环境变量改对了,应该直接双击这个文件就可以)

    l  新建一个php文件测试是否成功。文件内容如下:

    l  <?php 
    require_once("http://localhost:8080/JavaBridge/java/Java.inc");
    $System = java("java.lang.System");
    echo $System->getProperties();
    ?> 

    l  在上面中使用URL地址包含,所以需要在php.ini文件allow_url_include设为On。

    l  编辑自己的java类,并使用jar.exe打包。将所有需要的包放入jre7/lib/ext目录下。(有新的包放入时需要重新启动JavaBridge.jar。

    第二步:安装商户支付网关证书

                       1,Cmd窗口进入上面提到的certest文件夹下面,并且保证把下面的pfx文件也放在同一个文件夹下面

    测试证书:获得测试商户证书 2000615499.pfx(开发文档中有,或者找浦发银行)

                       将密钥导入商户私钥容器spdbmerchant.jks ,cmd窗口输入命令:

           pfx2jks spdb_merchant.properties  <pfxfile name>  <pfx passwd>-keypassword –new <key passwd>

    参数说明:

                spdb_merchant.properties   配置文件名称,一般不需要修改名称

                <pfx file name>                导出的商户证书私钥文件

                <pfx passwd>                   导出私钥文件时指定的密码

                               <key passwd>           商户为自己的证书新设定的密码

    测试证书导入,如下所示:(如果无法执行,请看下面的报错解决提示)

    1

    注意:

    1.在导入前,如果您没有修改密钥容器文件的密码!则请不要修改对应的spdb_merchant.properties文件。如果修改了密码则请同时修改该配置文件。

    2.这里指定的merchant_key的密码是222222,(我又执行了一次把这个merchant_key的密码写111111)。客户需要按照自己的实际情况输入,并在spdb_merchant.properties文件中的key_password保持一致。

    第三步:开始测试:

    保证上面提到的java -jarJavaBridge.jar SERVLET:8019 已经执行

             测试签名:

    在项目中写一个php文件

    require_once("java/Java.inc");

    java_require("properties.jar;spdbmerchant.jar;spdbmerchant.jar;bcprov-jdk14-127.jar;jsse.jar;jnet.jar;jcert.jar;jce.jar;");

    header("content-type:text/html;charset=utf-8");

    $merverify = newJava('com.csii.payment.client.core.MerchantSignVerify');

    $plain="TranAmt=1.8|transName=MerchantTest|MercCode=990108160003311|TranAbbr=IPER|TermSsn=15144037|OAcqSsn=|MercDtTm=20090615144037|TermCode=001|Remark1=|Remark2=|submit=%3F%A8%A2%3F%3F|OSttDate=|MercUrl=http%3A%2F%2F10.112.9.182%3A81%2Flocal%2Freceive.asp";

    $signature=$merverify->merchantSignData_ABA($plain);

    print$signature.'<br>';

    这里应该返回一个加密后的字符串,goodluck;

    报错解决:

    1,  Notice:undefined property:java_client::$cancelProxyCreationTag……..

    打开java/java.inc文件,找到下面的位置,添加下面第二个红框里面的内容。

    1,  上面的pfx2jks命令 是非常egg疼的一个问题,开发文档里面直接就使用了这个命令,实际上,这个还需要一个bat文件。我已经上传到资源里面了。

    下载后,放到上面提到的jar/文件夹下面,然后cd到jar文件夹执行pfx2jks的命令

  • 相关阅读:
    统计nginx日志里访问次数最多的前十个IP
    while 格式化输出 运算符 字符编码
    Python 软件安装
    Python 基础
    Typora 基础的使用方法
    Django ORM (四) annotate,F,Q 查询
    Django 惰性机制
    Django ORM (三) 查询,删除,更新操作
    Django ORM (二) 增加操作
    Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
  • 原文地址:https://www.cnblogs.com/spicy/p/8495894.html
Copyright © 2011-2022 走看看