PHP-Java-Bridge的使用(平安银行支付功能专版)

去年做平安银行的时候,用到了PHP-Java-Bridge,后来写了一篇博客记录使用PHP-Java-Bridge的一些心得(连接:http://my.oschina.net/kenblog/blog/316234)。

后来有很多陆陆续续的朋友在做平安银行接口使用PHP-Java-Bridge,看了我那篇博客也有点蛋疼(可能是那个时候才开始写博客,思路、条理和描述之类的不是很清楚)。

最近使用PHP-Java-Bridge做平安银行开发的人还挺多,好些朋友都来问过,现在抽空专门写一篇关于平安银行支付使用PHP-Java-Bridge的教程,希望给能帮到的人。

 

使用环境:

PHP版本:最高为5.4,当前测试为5.4/5.3

JDK:官方最新版本,当前测试为1.8和linux自带openjdk

操作系统:Windows7 32位/64位 | Linux(Centos6.5,5.9)

 

1、使用PHP-Java-Bridge

下载以下文件,放到你的项目中

文件下载:http://pan.baidu.com/s/1mg02WGC

 

2、正确的放置jar包

1)、将你的平安银行支付相关的jar包放到java的jar下面

2)、将php-java-bridge文件放到java的jar下面

以上所有jar文件已经打包:下载以下文件,放到安装的java的jar下面

文件下载:http://pan.baidu.com/s/1pJ3KDAz

路径如下:

?
1
2
windows:C:\Program Files\Java\jre1.8.0_25\lib\ext
linux:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/lib/ext

注:这个路径会根据你系统安装的java版本和路径不同而不同,但是大概都差不多

 

3、修改平安银行的配置文件

到上面两个路径下面找到classes文件夹下面的payclient.properties文件

修改"cafile="为你的merchant.jks路径,这里使用的是绝对路径,也可以使用相对路径

代码如下:

?
1
2
windows: "cafile=C:/Program Files/Java/jre1.8.0_25/lib/ext/classes/merchant.jks"
linux: "cafile=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/lib/ext/classes/merchant.jks"

 

4、开启PHP-Java-Bridge

到上面两个路径下面执行JavaBridge.jar文件

?
1
2
windows:直接双击jar包下面的JavaBridge.jar文件即可运行
linux:使用命令 "Java -jar JavaBridge.jar SERVLET_LOCAL:8080 &"

 

5、在你的项目中使用PHP-Java-Bridge

以下给出了一个实例代码,具体需要和你的项目需求进行修改

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//1、引用Java.inc
   require_once ( $_SERVER [ "DOCUMENT_ROOT" ]. "/bridge/java/Java.inc" );
   //2、Java方法实例化
   try {
    $util  new  Java( "com.sdb.payclient.core.PayclientInterfaceUtil" );
    $input  new  Java( "com.ecc.emp.data.KeyedCollection" , "input" );
    $signDataput  new  Java( "com.ecc.emp.data.KeyedCollection" , "signDataput" );
       $urlEncoder  new  Java( "java.net.URLEncoder" );
   } catch (JavaException  $e ){
    echo  "错误:实例化失败:<br/>" , $e ;
   }
   //3、对数据进行组装,然后生成orig和签名sign
   try {
    //组装数据到$input
    $input ->put( "masterId" , $payment_masterId );
       $input ->put( "orderId" , $payment_orderId );
       $input ->put( "currency" , $payment_currency );
       $input ->put( "amount" , $payment_amount );
       $input ->put( "paydate" , $payment_paydate );
       $input ->put( "remark" , $payment_remark );
       $input ->put( "objectName" , $payment_objectName );
       $input ->put( "validtime" , $payment_validtime );
       //设定初始值
       $orig = "" ;         //原始数据
       $sign = "" ;         //产生签名
       $encoding  "GBK" ;
       //获得orig与sign
       $signDataput  $util ->getSignData( $input );
       $orig  $signDataput ->getDataValue( "orig" );
       $sign  $signDataput ->getDataValue( "sign" );
       //对签名进行编码
       $orig  $util ->Base64Encode( $orig $encoding );
       $sign  $util ->Base64Encode( $sign $encoding );
       $orig  $urlEncoder ->encode( $orig $encoding );
       $sign  $urlEncoder ->encode( $sign $encoding );
?>

 

6、按照以上五部操作,基本是没有问题的,如果有问题,请检查你的代码调用是否正确

 

 

关于正式上线:

如果项目要正式上线,需要替换payclient.properties文件中的khPaymentUrl=https://testebank.sdb.com.cn:461/corporbank/为平安银行的正式支付地址

 

备注:

1、如果你成功了,有空可以看下这篇博客:http://my.oschina.net/kenblog/blog/316234

2、如果这样没有成功,可以联系我,查看具体什么原因。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值