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访问正常。整完后回头看看,挺简单,不过整的过程中任何一个小小的问题都很浪费时间。不过能帮朋友解决一个拖了半个月的问题,也算值得。

  • 相关阅读:
    java中Executor、ExecutorService、ThreadPoolExecutor介绍
    JAVA多线程实现的四种方式
    JVM内存结构
    Synchronized修饰静态变量和普通变量的区别
    tcpkill工作原理分析
    数据库路由中间件MyCat
    数据库路由中间件MyCat
    数据库路由中间件MyCat
    数据库路由中间件MyCat
    数据库路由中间件MyCat
  • 原文地址:https://www.cnblogs.com/soarwell/p/3656566.html
Copyright © 2011-2022 走看看