ホームページ >バックエンド開発 >PHPチュートリアル >PHP-Java-Bridgeの利用(平安銀行決済機能特別版)

PHP-Java-Bridgeの利用(平安銀行決済機能特別版)

WBOY
WBOYオリジナル
2016-06-20 12:58:471397ブラウズ

昨年平安銀行で働いていたとき、私は PHP-Java-Bridge を使用しました。その後、PHP-Java-Bridge の使用経験を記録するためにブログを書きました (リンク: http://my.oschina. net/kenblog/blog/316234)。

その後、多くの友人が次々と PHP-Java-Bridge を使用して平安銀行のインターフェイスを作成していました。彼らは私のブログを読んで少し痛みを感じました (私がブログを始めたのもその頃だったのかもしれません。アイデア、組織、説明はあまり明確ではありません)。

最近、多くの人が平安銀行の開発に PHP-Java-Bridge を使用していると多くの友人から尋ねられましたが、時間をかけて Ping での 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\extlinux:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/lib/ext

注: このパスは Java のバージョンとパスによって異なります。システムにインストールされているものは異なりますが、おそらく似ています


3. 平安銀行の構成ファイルを変更します

上記の 2 つのパスに移動し、payclient を見つけます。 class フォルダーの下の .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

を開き、上記の 2 つのパスに移動します。 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. 上記の 5 つの手順に従ってください。問題がある場合は、コード呼び出しが正しいかどうかを確認してください。



正式な立ち上げについて:

プロジェクトを正式なものにしたい場合 オンラインにするには、khPaymentUrl=https://testebank.sdb.com.cn:461/corporbank/ を置き換える必要があります。平安銀行の正式な支払いアドレスを含む payclient.properties ファイル


注:

1 が成功すると、このブログを読むことができます。 time:

2. これが成功しない場合は、具体的な理由を確認するために私に連絡してください。





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。