主题: 通过PHP/Java Bridge来实现ecshop的chinapay支付接口
背景:
最近弄ecshop网上商城这个系统,需要提供对中国银联支付支持,从网上查了一些资料,发现chinapay对php支持并不是十分友好。需要扩展编译啥的,似乎很麻烦。网上资料不是很多,php实现chinapay接口,网上流传三种解决方案,1.参照chianpay官方文档,来对php进行扩展编译,似乎很麻烦而且可移值性差。2.php的自带java桥,网上说不是很稳定3.linys提供的解决方案,但没有找到源代码。
chinapy提供的java版jar包,在windows下和linux下应该都没有问题。我在网上发现php调用java,还可以通过PHP/Java Bridge来实现这个功能。于是采用PHP/Java Bridge来调用java实现chinapay支付接口。
材料说明:
1.PHP/Java Bridge安装文件
从其官方网站下载http://php-java-bridge.sourceforge.net/pjb/download.php
我下载的是Binary版本的。具体的为JavaBridgeTemplate554experimental.war.zip
2. chinapay提供的java版NetPayClinet2.5 for java包
3. Jdk6,tomcat6安装文件
下载地址分别为:http://download.java.net/jdk6/和http://archive.apache.org/dist/tomcat/tomcat-6/
步 骤:
1.安装jdk和部署tomcat
这一步不多述,如果不是熟悉可以问问您身边的java朋友或上网google,资料很多。
2.安装PHP/Java Bridge
将下载安装文件JavaBridgeTemplate554experimental.war.zip解压,并将文件夹重命名为JavaBridge,方便记忆。
再将NetPayClinet2.5 for java包中的netpayclient.jar包搞到JavaBridge/WEB-INF/lib文件下。
然后将JavaBridge这个文件夹整个拷到tomcat根目录下webapps文件下。
然后进入tomcat根目录下bin文件夹,启动tomcat。
在浏览器中输入http://localhost:8080/JavaBridge 显示页面。注 我用的时候在windows下有些异常,但不影响php调用应该没有什么问题,在linux下则是正常。
3.配置php.ini
找到php.ini这个文件,将里面的allow_url_include参数改为on,如果没有找到这个参数,自己添加一下就行了。具体如下:
; 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通过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通过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插件源代码
chinapay主要参数配置及完整实现代码 见附件
分享到:
相关推荐
ecshop2.7.3的chinapay支付插件,内有详细安装说明,亲测可用!
ecshop ips支付接口3.0,最新版本支付接口。通过测试。可以使用。 试用当前最新ECSHOP.
这个服务本来是需要花费3600元/年 购买付宝的“创业版”套餐才有的功能,现在...该服务不涉及资金问题,仅仅是实现登录网店的效果。演示效果:http://www.ziyezi.com/alipay/ 注:这是演示文件,如有需要请联系我们。
ecshop 微信支付接口 用与对接ECshop 支付功能
ECSHOP用交通银行网银在线支付接口,在配置好相应的JavaBridge后可以直接使用。对应的语言包内容: <?php /** * 交通银行在线支付语言文件 * $Id: bankcomm.php aaliwen $ */ global $_LANG; $_LANG['bankcomm'] ...
ECshop工商银行B2C在线支付接口插件
ecshop环讯支付接口,这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。
ecshop微信支付接口,此接口本人已经亲自测试,可以使用的哦, 不过微信支付,不像其他接口,安装之后就能用,需要调试。 如果您不懂技术,可以联系我, 保证安装成功。
最近应一个客户的要求,给他的一个ecshop网站开发杉德在线支付接口和代付接口。 杉德有自己的收银台,集成了各类银行,也是不错。 杉德支持H5,APP,网银快捷等支付接口。文档还算比较齐全。 比较有特点的是,杉德的...
ecshop 支付宝接口免签个人可用 强大去bug
ecshop支付宝国际接口
ECSHOP智付支付接口V3.0.5 传到ECSHOP根目录然后进入后台配置好参数即可
银联支付有两个接口 upop 与 chinapay,很多 Ecshop 商家购买了支付接口之后不知道自己是哪一个,去网上找插件折腾了很长时间却发现和自己的接口不匹配浪费了大量的时间,本文主要介绍chinapay for ecshop。...
双乾网络公司(95epay)的ecshop外贸支付接口。
ecshop chinapay(银联)插件
ECShop 2.7.3 GBK+UTF-8支付宝免签约即时到帐接口v2 【安装方法】 1、在http://www.zfbjk.com网站注册一个用户,并下载“支付宝免签约即时到帐辅助”软件 2、将本接口压缩包所有文件解压并覆盖到网站根目录 3、...
ecshop多接口支付插件安装后,ECSHOP程序即可拥有:网银、信用卡、银联卡、支付宝、微信等多家支付接口,实现ECSHOP程序PC支付及WAP手机扫码支付等。此插件由“中云支付”提供。 ecshop多接口支付插件安装方法: ...
ECSHOP支付宝快速支付插件,免接口插件,不用申请成为企业账号也可以在网店商城里使用了。个人站用来收款的好东东!我从网上花钱买来的,测试可用,分享给有需要的朋友!
ecshop聚合支付免签约支付插件最新版ecshop免签约支付插件带支付宝微信支付 带微信公众号免签约支付、支付宝免签约支付,微信扫码支付。 是一个聚合支付插件,一个插件,多种支付接口。都是免签约的。
ecshop微信商城接口,实现商品融合,关注注册,发放优惠券,ecshop分销以及微信支付,微信收货地址共享等强大功能. 将wechat文件夹到ecshop根目录,安装完成. 接口文件说明 weicaihong.php ———— 入口文件 wch_goods....