background image

以下详细为大家介绍分析了

php 与 java 通信的实现方法,有兴趣的可以参考下

缘起:
最近做了一个电商平台与网银整合的小东西,程序是开源的

 Ecmall 的,网银的接口也很规

范,给出的文档很全,唯一的小问题是,网银使用的签名和验签的

lib 是只有 java 和 c 的,

java 还熟悉一些,所以选择了使用 java 作为签名和验签的接口。

方法:
网上关于

php 与 java 交互的资料其实挺多的。总体来说其实也是这么几种方法:

•PHP 直接通过

exec

或者

system 之类的命令调用命令行,然后以 java Hello 这种类型得方式

来运行

java 程序,但是缺点是很明显的,不能很好地与 java 类里面的各种方法进行交互,

而且这种方式最终获取的运行结果也有行数限制,所以舍弃。
•PHP 与 Java 通过 WebService 的方式进行通信,自己在 Java 端开放相关的 WebService 服务,
然后通过

XML 或者 JSON 让 PHP 调用 Java 的 WebService,这种方式比较大众,能实现的

功能可定制性也强,但是缺点页非常明显

 

•要安装 TomCat 服务器,从而发布出 Java 端的相关报文
•WebService 要写认证,对签名和验签的流程做出相关的安全认证
•PHP 通过 PHP-JAVA-BRIDGE 这个模块,实现 PHP 和 Java 的通信,这个模块配置安装相
对简单,所以选择了使用这个模块进行

PHP 和 java 的通信

第一步
安装

java 环境和 PHP 环境 PHP 环境略 CentOS 下 YUM 方式安装 JAVA 环境

yum install java
yum install yum install java*jdk*devel*
测试

java-version 如果有类似如下结果输出,则 java 环境安装成功

代码如下

:

 
java version "1.7.0_25"
OpenJDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
第二步
编译安装

php-java-bridge 模块

下载包:
PHP-JAVA-BRIDGE4.0 这个版本是 4.0 的,最新版本应该是 6,在 sourceforg 上有下载,不过
6 的用法跟 4 的用法差距似乎有些大
编译安装:
解压缩

php-java-bridge,进入 php-java-bridge 的目录,将 php-java-bridge 编译成 php 的扩展

 
代码如下

:

 

 

tar xzvf php-java-bridge_4.0.1.orig.tar.gz

    

cd php-java-bridge

    

phpize

    

./configure --disable-servlet --with-java= --with-php-config=/usr/local

//php/bin/php-config   

    

make

    

make install

•如果 phpize 命令运行后无效,可以通过 yum install php-devel 解决