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

來源:互聯網
上載者:User

標籤:

去年做平安銀行的時候,用到了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\extlinux:/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、如果這樣沒有成功,可以聯絡我,查看具體什麼原因。





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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.