ホームページ >バックエンド開発 >PHPチュートリアル >PHP-Java-Bridgeの利用(平安銀行決済機能特別版)
昨年平安銀行で働いていたとき、私は 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 のバージョンとパスによって異なります。システムにインストールされているものは異なりますが、おそらく似ています
上記の 2 つのパスに移動し、payclient を見つけます。 class フォルダーの下の .properties ファイル
も使用できます。コードは次のとおりです。
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"
を開き、上記の 2 つのパスに移動します。 JavaBridge.jar ファイルを実行します
windows:直接双击jar包下面的JavaBridge.jar文件即可运行linux:使用命令"Java -jar JavaBridge.jar SERVLET_LOCAL:8080 &"
以下はコード例。特定のニーズはプロジェクトに関連しています。必要に応じて変更します。
コードは次のとおりです。
<?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);?>
プロジェクトを正式なものにしたい場合 オンラインにするには、khPaymentUrl=https://testebank.sdb.com.cn:461/corporbank/ を置き換える必要があります。平安銀行の正式な支払いアドレスを含む payclient.properties ファイル
1 が成功すると、このブログを読むことができます。 time:
2. これが成功しない場合は、具体的な理由を確認するために私に連絡してください。