PHP-Java-Bridge的使用(平安银行支付功能专版)

去年做平安银行的时候,用到了PHP-Java-Bridge,后来写了一篇博客记录使用PHP-Java-Bridge的一些心得(连接:http://my.oschina.net/kenblog/blog/316234)。

后来有很多陆陆续续的朋友在做平安银行接口使用PHP-Java-Bridge,看了我那篇博客也有点蛋疼(可能是那个时候才开始写博客,思路、条理和描述之类的不是很清楚)。

最近使用PHP-Java-Bridge做平安银行开发的人还挺多,好些朋友都来问过,现在抽空专门写一篇关于平安银行支付使用PHP-Java-Bridge的教程,希望给能帮到的人。

使用环境:

PHP版本:最高为5.4,当前测试为5.4/5.3

JDK:官方最新版本,当前测试为1.8和linux自带openjdk

操作系统:Windows7 32位/64位 | Linux(Centos6.5,5.9)

1、使用PHP-Java-Bridge

下载以下文件,放到你的项目中

文件下载:https://kanbox.com/f/hA0a4

2、正确的放置jar包

1)、将你的平安银行支付相关的jar包放到java的jar下面

2)、将php-java-bridge文件放到java的jar下面

下载以下文件,放到安装的java的jar下面

文件下载:https://kanbox.com/f/RS0a5

路径如下:

windows:C:\Program Files\Java\jre1.8.0_25\lib\ext
linux:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/lib/ext

注:这个路径会根据你系统安装的java版本和路径不同而不同,但是大概都差不多

3、修改平安银行的配置文件

到上面两个路径下面找到classes文件夹下面的payclient.properties文件

修改"cafile="为你的merchant.jks路径,这里使用的是绝对路径,也可以使用相对路径

代码如下:

windows:"cafile=C:/Program Files/Java/jre1.8.0_25/lib/ext/classes/merchant.jks"
linux:"cafile=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/lib/ext/classes/merchant.jks"

4、开启PHP-Java-Bridge

到上面两个路径下面执行JavaBridge.jar文件

windows:直接双击jar包下面的JavaBridge.jar文件即可运行
linux:使用命令"Java -jar JavaBridge.jar SERVLET_LOCAL:8080 &"

5、在你的项目中使用PHP-Java-Bridge

以下给出了一个实例代码,具体需要和你的项目需求进行修改

代码如下:

<?php
//1、引用Java.inc
  require_once($_SERVER["DOCUMENT_ROOT"]."/bridge/java/Java.inc");
  //2、Java方法实例化
  try{
   $util = new Java("com.sdb.payclient.core.PayclientInterfaceUtil");
   $input = new Java("com.ecc.emp.data.KeyedCollection","input");
   $signDataput = new Java("com.ecc.emp.data.KeyedCollection","signDataput");
      $urlEncoder = new Java("java.net.URLEncoder");
  }catch(JavaException $e){
   echo "错误:实例化失败:<br/>",$e;
  }
  //3、对数据进行组装,然后生成orig和签名sign
  try{
   //组装数据到$input
   $input->put("masterId",$payment_masterId);
      $input->put("orderId",$payment_orderId);
      $input->put("currency",$payment_currency);
      $input->put("amount",$payment_amount);
      $input->put("paydate",$payment_paydate);
      $input->put("remark",$payment_remark);
      $input->put("objectName",$payment_objectName);
      $input->put("validtime",$payment_validtime);
      //设定初始值
      $orig="";        //原始数据
      $sign="";        //产生签名
      $encoding = "GBK";
      //获得orig与sign
      $signDataput = $util->getSignData($input);
      $orig = $signDataput->getDataValue("orig");
      $sign = $signDataput->getDataValue("sign");
      //对签名进行编码
      $orig = $util->Base64Encode($orig, $encoding);
      $sign = $util->Base64Encode($sign, $encoding);
      $orig = $urlEncoder->encode($orig, $encoding);
      $sign = $urlEncoder->encode($sign, $encoding);
?>

6、按照以上五部操作,基本是没有问题的,如果有问题,请检查你的代码调用是否正确

关于正式上线:

如果项目要正式上线,需要替换payclient.properties文件中的khPaymentUrl=https://testebank.sdb.com.cn:461/corporbank/为平安银行的正式支付地址

备注:

1、如果你成功了,有空可以看下这篇博客:http://my.oschina.net/kenblog/blog/316234

2、如果这样没有成功,可以联系我,查看具体什么原因。

时间: 2024-12-21 02:13:21

PHP-Java-Bridge的使用(平安银行支付功能专版)的相关文章

【Java EE 学习 21 下】【 使用易宝支付接口实现java网上支付功能】

一.网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付. 1.直接和银行对接. 2.使用第三方支付平台 3.常见的第三方支付平台 二.使用易宝支付接口实现java网上支付功能(农业银行). 1.完整源代码:https://github.com/kdyzm/day21_2_pay 2.实现过程的时序图 3.技术要点 (1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表 (2)使用PaymentUtil类实现

java实现网站paypal支付功能并且异步修改订单的状态

java实现网站paypal支付功能并且异步修改订单的状态:步骤如下 第一步:去paypal的官网https://www.paypal.com注册一个个人账号,在创建沙箱测试账号时需要用到 第二步:paypal提供了模拟的测试环境,我们需要在https://www.sandbox.paypal.com/去创建一个虚拟卖家账号和买家账号 (必须用第一步注册的真实账号才能登录进去,沙箱账号是登录不进去的) 第三步:登录成功后创建卖家.买家账号,如果不知道在哪创建账号可以直接点击这个链接https:/

【Java EE 学习第21天 使用易宝支付接口实现java网上支付功能】

一.网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付. 1.直接和银行对接. 2.使用第三方支付平台 3.常见的第三方支付平台 二.使用易宝支付接口实现java网上支付功能(农业银行). 1.完整源代码:https://github.com/kdyzm/day21_2_pay 2.实现过程的时序图 3.技术要点 (1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表 (2)使用PaymentUtil类实现

在线支付功能的设计及其实现

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52154672作者:朱培      ID:sdksdk0      邮箱: [email protected]   ------------------------

java 支付宝 第三方即时到账支付

java 支付宝 第三方即时到账支付 alipay 的几个内核功能文件: ====================================================================================================== AlipayFunction.java [java] view plain copy package com.test.util.alipay; import java.io.FileWriter; import jav

[5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)

1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按钮时,执行一个Ajax到后台 后台通过前台的部分信息(如商品名额,金额等),将其组装成符合微信要求格式的xml,然后调用微信的"统一下单接口" 调用成功后微信会返回一个组装好的xml,我们提取之中的消息(预支付id也在其中)以JSON形式返回给前台 前台将该JSON传参给微信内置JS的方法

Android开发:app工程集成银联支付功能(服务器端)

一功能描述 二实现过程 1下载银联支付SDK和Demo 1银联商家服务地址httpsopenunionpaycomajwebindex 2下载的文件如下 2集成过程 1先试官方Demo 2集成到自己的工程里 一.功能描述 因为是自己开发了一个app应用,没资格去申请微信支付和支付宝支付,于是就采用了银联支付功能,银联支付分为了两种环境:测试环境和生产环境,一般前期开发的时候都是使用测试环境,数据都是测试数据,不会发生真实交易.第一次做Android项目+IDE为Android Studio+第一

java 支付宝 第三方即时到账支付 接口

alipay 的几个内核功能文件: AlipayFunction.java package com.test.util.alipay; import java.io.FileWriter; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Collections; import ja

网站添加微信支付功能(小白填坑)

本周的工作安排就是在网站添加支付功能,包括支付宝.微信.财付通等,今天这篇文章先说一下微信支付吧,支付宝的太容易了基本看一下都会了 1.首先准备工作,开通了支付功能的账号,具体怎么开通的我也不熟悉因为我做的时候都是使用开通好的账号(目前微信支付好像只支持商家不支持个人吧?) 2.按照我的性格当然是百度一下啦,但是微信支付的文档说明事例实在是太坑了,完全不是我这种小白可以一下看懂的,在这夸奖一下支付宝,支付宝的事例文档做的太好了基本做的时候没什么坑 准备工作结束开工: 我的开发环境是java,所以