当前位置:七道奇文章资讯安全技术网络技术
日期:2009-11-09 10:52:00  来源:本站整理

PHP/Java Bridge实现ecshop的chinapay支付接口[网络技术]

赞助商链接



  本文“PHP/Java Bridge实现ecshop的chinapay支付接口[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

根源:javaeye   

近来弄ecshop网上商城这个系统,需求供应对中国银联支付支持,从网上查了一些资料,发现chinapay对php支持并非非常友好.需求扩大编译啥的,仿佛很麻烦.网上资料不是很多,php实现chinapay接口,网上传播三种办理筹划,1.参照chianpay官方文档,来对php举行扩大编译,仿佛很麻烦并且可移值性差.2.php的自带java桥,网上说不是很安定3.lnsys供应的办理筹划,但没有找到源代码.

  chinapy供应的java版jar包,在windows下和linux下应当都没有问题.我在网上发现php调用java,还可以通过 PHP/Java Bridge来实现这个功效.于是采取PHP/Java Bridge来调用java实现chinapay支付接口.

  步 骤:

  1.安装jdk和布置tomcat

  这一步不多述,假如不是熟习可以问问您身边的java朋友或上网谷歌,资料很多.

  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,假如没有找到这个参数,自己增添一下就行了.具体以下:

  Php代码   

; Whether to allow include/require to open URLs (like http:// or ftp://) as files. 
 
allow_url_include = on

  写一个简单测试php调用java文件test.php

  其代码以下:

  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){ 
 
 $chinapayL

ink = 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插件源代码


 


  以上是“PHP/Java Bridge实现ecshop的chinapay支付接口[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 编写PHP代码总结
  • 10个风趣的 PHP 教程
  • PHP汉字转换拼音的类
  • 来点新手PHP学习心得
  • php应用readfile函数给躲藏下载文件地址增添权限判
  • PHP小研究拿出来和大家分享
  • 10 个有意思的 PHP 教程
  • PHP常常简单记乱的知识
  • PHP入门指导:若何学习PHP?
  • PHP中文件包含语句的辨别
  • PHP浮点数显示和转成字符串
  • PHP的chm手册打不开怎么办
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .