Php調用工行支付接口時的問題解決

一朋友整個網站賣水果,在購物車選擇工行支付進入支付頁面時出錯,奇怪的是用360瀏覽器正常,用IE瀏覽器出錯。錯誤提示:「Fatal error: protocol error: ,Invalid document end at col 1. Check the back end log for OutOfMemoryErrors. in JavaBridge/java/Java.inc on line 869」。php

大概狀況就是網站用php寫的,工行支付是java寫的,PHP用JavaBridge調用了JAVA程序。PHP壓根我就不沒用過,只能上網搜索下狀況,我給提了兩個建議:一個是更換php和java鏈接的php-java-bridge版本,另外一個就是不要用PHP調用JAVA接口,改用http、AJAX之類的方式調用。java

過了了半個月,朋友又給我打電話,說開發網站的公司搞不定,找了其餘好多朋友都搞不定,讓我找個厲害的人幫忙。沒辦法我只能硬着頭皮幫忙看看。linux

首先服務器是阿里雲LINUX版的,七、8年沒搞過linux,連目錄切換命令都記不起來,只能一邊上網查命令一邊操做,cd、ls、find、vi就靠着這幾個命令找到了對應的php程序,憑着感受找到了出錯的位置瀏覽器

$client = new java("com.pinwine.icbc.Icbc");tomcat

$merSignMsg        =     $client->enSignMsg($s_tran_data);服務器

看得出來com.pinwine.icbc.Icbc是JAVA的一個類,enSignMsg是類裏的方法,方法的參數則是XML格式的交易信息。每次用IE訪問,執行的new Java這裏就異常。php-java-bridge根本沒用過,查了資料換個版本有一點麻煩,畢竟本身沒用過,萬一搞出其餘問題就更麻煩。所以這裏就考慮用htpp方式:在tomcat的JavaBridge裏增長一個jsp,這個JSP執行com.pinwine.icbc.Icbc. enSignMsg()方法;在php裏用fsockopen方式訪問http,並獲得想要的值。jsp

寫個jsp很容易,幾分鐘就搞定;php第一次玩,只能一邊查資料一邊湊。到了凌晨3點終於搞定,,IE裏訪問正常、360訪問正常。整完後回頭看看,挺簡單,不過整的過程當中任何一個小小的問題都很浪費時間。不過能幫朋友解決一個拖了半個月的問題,也算值得。網站

相關文章
相關標籤/搜索