微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

银行支付接口Webservice之一

需求:PHPJAVA做交互,PHP传递支付信息给JAVA签名后反馈给PHP,然后提交给工商银行。

大体思路如下图:

 

 

苹果巴士

准备技术:webservice,json,PHP,java

最近在做一个工商银行支付接口的项目,虽然是小项目,但是做了很久了,总结原因,并非技术因素,而是沟通问题,因为方面给予的回复效率太低,每次都要等上几天的时间。

刚开始向对方索要签名扩展,因为我们使用的语言是PHP,所以一定要对应我们服务器上的PHP版本才能使用扩展,而经过几番协调之后,对方终于给了回复,但是对方给的so文件无法与我们的PHP版本对应,这就导致程序开发依然无法进展下去了。

几经反复协调,最后对方在半个月以后给了一套java的签名跳转程序让我们自己研究(汗!我不会java,没办法,为了兑现客户的承诺,我们只好硬着头皮上了。

研究了几个小时的java之后,开始看起了银行给的程序,基本上都能看懂,但是后来依然无法做跳转,后来银行提醒说,提交支付商品的时间要向银行索要,不是自己写的,因为银行的测试服务器时间和实际的不同的。此问题后来也解决了,但是后面想到PHP如何与JAVA交互呢,因为PHP要提交数据给JAVA,然后JAVA签名,最后把数据返回给PHPPHP在提交POST给工商银行,这就是总体的思路。因为多年的经验,所以一下子想到了webservice,但是很久没做了,最后花了些时间又熟悉了熟悉。下面分别是PHPJAVA建立webservice调用webservice数据的细节。

首先开启soap扩展extension=PHP_soap.dll

然后重启apache,如果是LINUX的话,需要重编译PHP或用PHPize也可以。

然后建立一个test.PHP文件,代码如下:

PHP:

 

 

 
 
  1. <?PHP 
  2. //苹果巴士www.ipukbus.com [email protected]
  3. ini_set("soap.wsdl_cache_enabled""0"); // disabling WSDL cache 
  4. $wsdl="http://localhost:8080/test/myservicePort?wsdl"; //webservice地址 
  5. $soap=new SoapClient($wsdlarray('trace'=>true,'cache_wsdl'=>WSDL_CACHE_NONE, 'soap_version'   => SOAP_1_1)); 
  6. $method="SayHi"
  7. $params = array('arg0'=>json_encode(array("hello111","测试")));//传入数据,并编码为json 
  8. try{ 
  9.     $result=$soap->$method($params); 
  10. }catch(Exception $e) { 
  11.     echo "Exception: " . $e->getMessage(); 
  12. //$result为stdClass类型,因此不能使用 echo $result的方式输出,会报错的。 
  13. echo $result->return
  14.  
  15. ?> 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐