zoukankan      html  css  js  c++  java
  • 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写的,工行支付是java写的,PHP用JavaBridge调用了JAVA程序。PHP压根我就不没用过,只能上网搜索下情况,我给提了两个建议:一个是更换php和java连接的php-java-bridge版本,另一个就是不要用PHP调用JAVA接口,改用http、AJAX之类的方式调用。

    过了了半个月,朋友又给我打电话,说开发网站的公司搞不定,找了其他好多朋友都搞不定,让我找个厉害的人帮忙。没办法我只能硬着头皮帮忙看看。

    首先服务器是阿里云LINUX版的,7、8年没搞过linux,连目录切换命令都记不起来,只能一边上网查命令一边操作,cd、ls、find、vi就靠着这几个命令找到了对应的php程序,凭着感觉找到了出错的位置

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

    $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很容易,几分钟就搞定;php第一次玩,只能一边查资料一边凑。到了凌晨3点终于搞定,,IE里访问正常、360访问正常。整完后回头看看,挺简单,不过整的过程中任何一个小小的问题都很浪费时间。不过能帮朋友解决一个拖了半个月的问题,也算值得。

  • 相关阅读:
    Find the Smallest K Elements in an Array
    Count of Smaller Number
    Number of Inversion Couple
    Delete False Elements
    Sort Array
    Tree Diameter
    Segment Tree Implementation
    Java Programming Mock Tests
    zz Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
    Algorithm about SubArrays & SubStrings
  • 原文地址:https://www.cnblogs.com/soarwell/p/3656566.html
Copyright © 2011-2022 走看看