任务需求:
- 农行提供了一个EbizClient-Java-V1.0.6.jar,把业务API相关的细节,认证方法都包装在里头,需要寻求方法能被我们的PHP项目脚本调用。
方案:
安装 PHP/Java Bridge,使得php能调用jar包里面的类与方法。
步骤:
- 下载PHP/Java Bridge (https://osdn.net/projects/sfnet_php-java-bridge/),JavaBridgeTemplate721.war
- 解压该包,把EbizClient-Java-V1.0.6.jar 放置到WEB-INF\lib下,如果有相关配置文件 *.properties,则注意要建立WEB-INF/classes文件夹,把这些文件放置其中,完毕后重新打包成JavaBridgeABC.war
- 把JavaBridgeABC.war部署到tomcat\webapps\下面,开启tomcat服务后会展开
- 测试http://localhost:8080/JavaBridgeABC/java/Java.inc 是否有正常返回
- 建立demo.php 文件,调用相关类与方法,看是否正常
附demo.php代码:
<?php
header('Content-Type: text/html; charset=UTF-8');
define("JAVA_HOSTS", "localhost:8081");
define("JAVA_SERVLET", "/JavaBridgeABC/servlet.phpjavabridge");
define("JAVA_DEBUG", true); //调试设置
define("JAVA_LOG_LEVEL", 2); //java.log_level: 0-6
require_once "Java.php"; //php调用java的接口
try {
$demo = new Java("com.zdt.Demo1");
echo $demo->getInput1("bb") . "<br>\n";
$client = new Java("com.abc.DefaultAbchinaClient"); //实例
$abchinaTokenAchieveResponse = $client->executeAchieveToken();
echo "----" . $client->getEncryptType() . "---" . $client->getEncryptKey() . "<br>";
echo "1 获取Token接口---" . $abchinaTokenAchieveResponse->getMessage() . "---" . $abchinaTokenAchieveResponse->getAppAccessToken() . "---" . $abchinaTokenAchieveResponse->getExpireIn() . "<br>";
$accessToken = $abchinaTokenAchieveResponse->getAppAccessToken() . "<br>";
echo "token:" . $accessToken;
} catch (Exception $e) {
echo($e);
}