银行支付接口Webservice之一
2012-12-15 16:00
246 查看
需求:PHP与JAVA做交互,PHP传递支付信息给JAVA签名后反馈给PHP,然后提交给工商银行。
大体思路如下图:
准备技术:webservice,json,php,java
最近在做一个工商银行支付接口的项目,虽然是小项目,但是做了很久了,总结原因,并非技术因素,而是沟通问题,因为方面给予的回复效率太低,每次都要等上几天的时间。
刚开始向对方索要签名扩展,因为我们使用的语言是PHP,所以一定要对应我们服务器上的PHP版本才能使用扩展,而经过几番协调之后,对方终于给了回复,但是对方给的so文件无法与我们的PHP版本对应,这就导致程序开发依然无法进展下去了。
几经反复协调,最后对方在半个月以后给了一套java的签名跳转程序让我们自己研究(汗!我不会java),没办法,为了兑现客户的承诺,我们只好硬着头皮上了。
研究了几个小时的java之后,开始看起了银行给的程序,基本上都能看懂,但是后来依然无法做跳转,后来银行提醒说,提交支付商品的时间要向银行索要,不是自己写的,因为银行的测试服务器时间和实际的不同的。此问题后来也解决了,但是后面想到PHP如何与JAVA交互呢,因为PHP要提交数据给JAVA,然后JAVA签名,最后把数据返回给PHP,PHP在提交POST给工商银行,这就是总体的思路。因为多年的经验,所以一下子想到了webservice,但是很久没做了,最后花了些时间又熟悉了熟悉。下面分别是PHP和JAVA建立webservice与调用webservice数据的细节。
首先开启soap扩展extension=php_soap.dll
然后重启apache,如果是LINUX的话,需要重编译PHP或用phpize也可以。
然后建立一个test.php的文件,代码如下:
PHP:
本文出自 “python中国python培训” 博客,请务必保留此出处http://jeffxie.blog.51cto.com/1365360/1090452
大体思路如下图:
准备技术:webservice,json,php,java
最近在做一个工商银行支付接口的项目,虽然是小项目,但是做了很久了,总结原因,并非技术因素,而是沟通问题,因为方面给予的回复效率太低,每次都要等上几天的时间。
刚开始向对方索要签名扩展,因为我们使用的语言是PHP,所以一定要对应我们服务器上的PHP版本才能使用扩展,而经过几番协调之后,对方终于给了回复,但是对方给的so文件无法与我们的PHP版本对应,这就导致程序开发依然无法进展下去了。
几经反复协调,最后对方在半个月以后给了一套java的签名跳转程序让我们自己研究(汗!我不会java),没办法,为了兑现客户的承诺,我们只好硬着头皮上了。
研究了几个小时的java之后,开始看起了银行给的程序,基本上都能看懂,但是后来依然无法做跳转,后来银行提醒说,提交支付商品的时间要向银行索要,不是自己写的,因为银行的测试服务器时间和实际的不同的。此问题后来也解决了,但是后面想到PHP如何与JAVA交互呢,因为PHP要提交数据给JAVA,然后JAVA签名,最后把数据返回给PHP,PHP在提交POST给工商银行,这就是总体的思路。因为多年的经验,所以一下子想到了webservice,但是很久没做了,最后花了些时间又熟悉了熟悉。下面分别是PHP和JAVA建立webservice与调用webservice数据的细节。
首先开启soap扩展extension=php_soap.dll
然后重启apache,如果是LINUX的话,需要重编译PHP或用phpize也可以。
然后建立一个test.php的文件,代码如下:
PHP:
<?php //苹果巴士www.ipukbus.com jeffxie@gmail.com ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache $wsdl="http://localhost:8080/test/myservicePort?wsdl"; //webservice地址 $soap=new SoapClient($wsdl, array('trace'=>true,'cache_wsdl'=>WSDL_CACHE_NONE, 'soap_version' => SOAP_1_1)); $method="SayHi"; $params = array('arg0'=>json_encode(array("hello111","测试")));//传入数据,并编码为json try{ $result=$soap->$method($params); }catch(Exception $e) { echo "Exception: " . $e->getMessage(); } //$result为stdClass类型,因此不能使用 echo $result的方式输出,会报错的。 echo $result->return; ?>
本文出自 “python中国python培训” 博客,请务必保留此出处http://jeffxie.blog.51cto.com/1365360/1090452
相关文章推荐
- 银行支付接口Webservice之二
- 银行支付接口Webservice之三
- 银行支付接口Webservice之四
- IDEAL (银行支付接口)如何搞定证书
- 银行支付回调接口通知失败后,过段时间又通知成功
- 第三方支付接口,银行接口(附下载),third party bank interface
- Linux系统上银行支付接口php-java-bridge配置
- 银行电子支付接口概述
- 第三方支付接口,银行接口(附下载),third party bank interface
- 支付调银行付款接口
- 第三方支付接口,银行接口(附下载),third party bank interface
- 银行接口中支付金额的格式问题
- 基于VS与IIS程序调试,银行支付接口调试操作
- PHP第三方支付接口,银行接口(附下载),third party bank interface
- 第三方支付接口,银行接口(附下载),third party bank interface
- 第三方支付接口,银行接口
- 银行支付 接口
- 第三方支付接口,银行接口(附下载),third party bank interface
- 【强烈推荐】Zend_xmlrpc构建webservice服务器接口教程 Calling parameters do not match signature
- Java 调用C# webservice接口 生成java客户端 实现方式