以下详细为大家介绍分析了
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 解决