`
hikin
  • 浏览: 266170 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

通过PHP/Java Bridge来实现ecshop的chinapay支付接口

阅读更多

主题: 通过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主要参数配置及完整实现代码   见附件

 

 

 

4
0
分享到:
评论

相关推荐

    ecshop chinapay支付插件2.7.3可用

    ecshop2.7.3的chinapay支付插件,内有详细安装说明,亲测可用!

    ecshop环讯支付接口

    2. **订单创建与传递**:当用户提交订单后,ECSHOP会生成订单信息,并通过接口将订单数据传递给环迅支付服务器。 3. **支付页面跳转**:用户会被引导到环迅支付的安全支付页面完成支付过程。 4. **支付状态回调**:...

    ecshop ips支付接口3.0

    综上,ECSHOP IPS支付接口3.0是实现ECSHOP商城与IPS支付平台无缝对接的关键组件,通过严谨的接口设计和安全机制,为用户提供顺畅的在线支付体验。开发者和管理员应当充分理解接口的原理和操作流程,确保系统的稳定...

    ecshop工行支付接口插件

    总的来说,"ECshop工行支付接口插件"是ECShop商城与工商银行支付系统之间的桥梁,它简化了商家的支付集成工作,同时也为消费者提供了可靠的支付途径。通过这个插件,商家可以提升其在线商城的支付便利性,进一步促进...

    ecshop支付宝免签接口支持个人支付宝

    总的来说,"ecshop支付宝免签接口支持个人支付宝"是一项让个人开发者和小商家也能轻松接入支付宝支付的解决方案。通过这个接口,ECSHOP用户可以提供更丰富的支付选项,提高顾客的支付体验,同时降低自身的运营成本。...

    ecshop微信支付接口

    ECShop微信支付接口是电商系统ECShop与微信支付平台之间的桥梁,允许用户在购物结算时通过微信支付进行交易。这个接口对于商家来说非常重要,因为它拓宽了支付方式,满足了消费者多样化的支付需求,特别是考虑到微信...

    ECSHOP专用支付宝会员免注册登录接口

    这个服务本来是需要花费3600元/年 购买付宝的“创业版”套餐才有的功能,现在...该服务不涉及资金问题,仅仅是实现登录网店的效果。演示效果:http://www.ziyezi.com/alipay/ 注:这是演示文件,如有需要请联系我们。

    ecshop_chinapay.jar

    "ecshop_chinapay.jar" 文件是针对中国银联支付接口的一个JAVA接口,它使得ECShop能够集成中国银联的支付服务,从而为顾客提供便捷的在线支付体验。接下来,我们将深入探讨这个接口的安装、初始化以及关键功能的实现...

    ecshop 微信支付接口

    ecshop 微信支付接口 用与对接ECshop 支付功能

    PHP交通银行网银在线支付接口之ECSHOP插件

    ECSHOP用交通银行网银在线支付接口,在配置好相应的JavaBridge后可以直接使用。对应的语言包内容: &lt;?php /** * 交通银行在线支付语言文件 * $Id: bankcomm.php aaliwen $ */ global $_LANG; $_LANG['bankcomm'] ...

    ECSHOP智付支付接口V3.0.5

    总的来说,ECSHOP智付支付接口V3.0.5是一个帮助ECSHOP用户扩展支付渠道的重要工具,通过它,商家可以提升支付的多样性和便利性,吸引更多的客户,并确保交易过程的安全。正确地安装和配置接口,结合详细的文档,商家...

    ecshop支付宝国际接口

    这篇详细说明将深入探讨ECSHOP如何通过支付宝国际接口实现跨国支付功能,以及这个接口涉及的技术细节和操作流程。 首先,我们需要了解ECSHOP与支付宝国际接口的基本概念。ECSHOP是一个PHP编写的B2C电商平台,它为...

    汇付天下 ecshop2.7.2 windows 支付接口

    标题中的“汇付天下 ecshop2.7.2 windows 支付接口”指的是ECSHOP电子商务系统的一个特定版本(2.7.2)在Windows操作系统环境下与汇付天下支付平台的集成接口。ECSHOP是一款开源的网上商城系统,广泛应用于中小型...

    ECshop支付宝接口升级文件alipay_utf8.zip

    对于2.73版本之前的ECShop所有版本,这个升级文件应该是兼容的,意味着不论你的系统是哪个早期版本,都可以通过此文件来提升支付宝接口的功能。然而,为了确保兼容性,最好在升级前确认系统版本并参考官方的升级指南...

    ecshop chinapay(银联)插件

    ECShop Chinapay插件通过与银联支付网关进行交互,实现购物车结算时的支付功能。当顾客在结账页面选择银联支付方式后,系统会跳转至银联的安全支付页面,顾客输入银行卡信息并完成支付。支付成功后,银联会将交易...

    ecshop无错版微信支付接口

    综上所述,"ecshop无错版微信支付接口"项目涉及到了PHP编程、微信支付API的使用、ECSHOP插件开发、扫码支付流程的设计等多个IT技术领域,对于开发者来说,是一个集成了多种技术实践的综合性任务。

    杉德ecshop,thinkphp,shopnc在线支付接口,支付插件(payment plugin含源码)

    最近应一个客户的要求,给他的一个ecshop网站开发杉德在线支付接口和代付接口。 杉德有自己的收银台,集成了各类银行,也是不错。 杉德支持H5,APP,网银快捷等支付接口。文档还算比较齐全。 比较有特点的是,杉德的...

    ECSHOP支付宝手机支付接口插件(完整版)

    搞支付宝手机支付接口搞了三天了,连支付宝的技术人员都没能帮我解决问题,在百度找了很多和我一样问题的,都无法解决。 主要问题就是,使用0001加密,返回值无法验证。 求人不如求己,我还是自己认真的阅读了下...

    ECSHOP\ECSHOP支付宝快速支付插件,免接口插件

    这个压缩包中的“ECSHOP支付宝快速支付插件”是专为ECSHOP设计的一个扩展模块,允许商家在不需申请成为企业账号的情况下,也能实现支付宝的支付功能,这对于个人站点或者小型商家来说是一个非常便利的解决方案。...

    ecshop支付宝快捷登陆接口

    总结来说,"ECShop支付宝快捷登录接口"是ECSHOP系统的一个增强功能,它利用支付宝的OAuth2.0协议,使用户能够轻松快捷地登录ECSHOP商店,提高了用户体验。此插件的亮点在于其无需修改用户表结构,使得系统维护更加...

Global site tag (gtag.js) - Google Analytics