3.配置php.ini
找到php.ini这个文件,将里面的allow_url_include参数改为on,如果没有找到这个参数,自己添加一下就行了。具体如下:
Php代码
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = on
写一个简单测试php调用java文件test.php
其代码如下:
Php代码
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
$System = java("java.lang.System");
echo $System->getProperties();
?>
将其放在htdocs下面,在浏览器中输入http://localhost/test.php 如果出现一些环境信息,则说明环境配对了.
4.php调用chianpay的jar包实现signOrder和verifyTransResponse两个函数。
其signOrder函数核心代码如下:
Php代码
/*
*php通过JavaBridge远程调用java的chinapay组件获取签名。
*/
function signOrder($MerId,$OrdId,$TransAmt,$CuryId,$TransDate,$GateId,$merkey_file,$java_inc_file){
//加载javainc文件,初始化java环境
require_once(“http://localhost:8080/JavaBridge/java/Java.inc”);
//导入私钥文件
$objectKey = new java("chinapay.PrivateKey");
$buildKeyResult = $objectKey->buildKey($MerId,0,$merkey_file);
//生成签名值
if($buildKeyResult==true){
$chinapayLink = new java("chinapay.SecureLink",$objectKey);
$checkValue = $chinapayLink->signOrder($MerId,$OrdId,$TransAmt,$CuryId,$TransDate,$GateId);
}else{
return false;
}
return $checkValue;
}
其verifyTransResponse函数核心代码如下:
Php代码
/*
*php通过JavaBridge远程调用java的chinapay组件验证签名。
*/
function verifyTransResponse($merId, $ordId,$transAmt,$curyId,$transDate,$transType, $orderStatus, $chkValue){
$payment = get_payment(basename(__FILE__, '.php'));
//加载javainc文件,初始化java环境
require_once(“http://localhost:8080/JavaBridge/java/Java.inc”);
$pubkey = $payment['chinapay_pubkey_file'];
//导入公钥文件 重新计算密钥的值
$objectKey = new java("chinapay.PrivateKey");
$buildKeyResult = $objectKey->buildKey("999999999999999",0,$pubkey);
//验证签名
if($buildKeyResult==true){
$chinapayLink = new java("chinapay.SecureLink",$objectKey);
$verifyTransResponseResult = $chinapayLink->verifyTransResponse($merId, $ordId,$transAmt,$curyId,$transDate,$transType, $orderStatus, $chkValue);
return $verifyTransResponseResult;
}else{
return false;
}
}
5.php的调用java版ecshop chinapay插件源代码
本文来源:javaeye