PHP SOAP如何传入复杂对象

Paymentexpress有一个SOAP服务方法Check3dsEnrollment(String username,String password, EnrolmentCheckRequest transaction).第三个参数是复杂参数,包括如下属性: acmout,cardNumber,dateExpiry,txnDescription,txnRef,currency 

php SOAP中使用数组来传入复杂参数,代码例如下: 

Php代码 

1.           $soapClient = new SoapClient('https://www.paymentexpress.com/WSTest/PXWS.asmx?WSDL');  

2.           $transactionDetails = array(  

3.               'acmout'=>'12.35',  

4.               'cardNumber'=>'',  

5.               'dateExpiry'=>'1010',  

6.               'txnDescription'=>'Payment Test',  

7.               'txnRef'=>'PT937459',  

8.               'currency'=>'USD',  

9.           );  

10.        $param=array(  

11.            'postUsername'       => 'My_Dev',  

12.            'postPassword'       => 'My_Password',  

13.            'transactionDetails' => $transactionDetails,  

14.        );  

15.        $ret  = $soapClient->Check3dsEnrollment($param);  

16.        print_r($ret);  

��<�Mn<���> 和说明如何与 Web 服务通信的 XML 语言。  

 

php5+ webservice

1,首先要设置服务器环境。

  修改php.ini

  得添加 extension=php_soap.dll (加载soap 内置包)

  修改 soap.wsdl_cache_enabled=1  改为 soap.wsdl_cache_enabled=0

 

2,soap 服务端。( Zend Studio For Eclipse 编写)

  2.1, 写一个用来提供给客户端用的类文件 ( DizzyLion.php )

  Class DizzyLion {

                      / **

                      * 求和函数

                      * @param float $p_a

                      * @param float $p_b

                      * @return float           

                      * /

                   Public function sum($p_a, $p_b){

                          Return $p_a + $p_b;

                   }

 }

说明:写上函数的标准注释有利于下面做wsdl的工作。

2.2, 生成wsdl 文件。(dizzylion.wsdl)如果这个你能手写,那你真是太强了。我用zend studio 生成的。

       我用的Zend Studio for Eclipse 6.1

       ’File’->’Export’->’PHP’->’WSDL File’

       “Generate WSDL File” 的窗口中。

       Configuration name 取自己想设的名字;File name 指定要生成wsdl文件(dizzylion.wsdl);Exported files “Add”添加刚刚的 DizzyLion.php类文件;在 classer url 就会出现DizzyLion.php的所有类, 勾选 DizzyLion. url 写入 server.phpWEB访问URL如:http://localhot/server.php。点“finish”就好了。如果有上面的标准注释这里就不用再去设置wsdl里对应参数类型之类了。

2.3, Soap 服务端文件 (server.php)

       <?php

              Require ‘./DizzyLion.php’;

              $server = new SoapServer(‘./dizzylion.wsdl’);

              $server->setClass(‘DizzyLion’);

              $server->handle();

         ?>

3, Soap客户端。(client.php)

<?php

   $soap = new SoapClient(‘./dizzylion.wsdl’); //如果是远程,那当然写dizzylion.wsdlURL了。

   echo $soap->sum(1.1,  3.1);

?>

  运行client.php 得到 4.2 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值