php用zendstudio建立wsdl

首先,新建的时候要选择soap,然后deocument和rpc都可以。

类和方法的页面:

<?php
//发货接口
class test{
    function send_do_delivery($orderid,$money,$freight,$shipname,$shiptel,$shipmobile,$shipzip,$shiparea,$shipaddr,$memo,$send,$gift_send){
        $orderData=array(
            ‘order_id‘ =>$orderid,
            ‘delivery‘ =>‘1‘,
            ‘logi_id‘ =>‘1‘,
            ‘other_name‘ =>‘‘,
            ‘logi_no‘ =>‘‘,
            ‘money‘ =>$money,
            ‘is_protect‘ =>false,
            ‘cost_freight‘ =>$freight,
            ‘ship_name‘ =>$shipname,
            ‘ship_tel‘ => $shiptel,
            ‘ship_mobile‘ =>$shipmobile,
            ‘ship_zip‘ =>$shipzip,
            ‘ship_area‘ =>$shiparea,
            ‘ship_addr‘ =>$shipaddr,
            ‘memo‘ =>$memo,
            ‘send‘ => $send,
            ‘gift_send‘ => $gift_send
        );
        /**拼凑提交的数据*/
        $params = array(
            ‘parms‘       => json_encode($orderData)
        );
        $url = "http://XXXXXX/tools-do_delivery.html";

        $res=$this->sendByPost($url,$params);
        //var_dump();
        return $res;
    }

    #发送ERP请求
    function sendByPost($url,$paramArray){
        $postdata   = http_build_query($paramArray);
        $length     = strlen($postdata);
        $cl         = curl_init($url);
        curl_setopt($cl, CURLOPT_POST, true);
        curl_setopt($cl,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
        curl_setopt($cl,CURLOPT_HTTPHEADER,array("Content-Type: application/x-www-form-urlencoded","Content-length: ".$length));
        curl_setopt($cl,CURLOPT_POSTFIELDS,$postdata);
        curl_setopt($cl,CURLOPT_RETURNTRANSFER,true);
        $content = curl_exec($cl);
        curl_close($cl);
        return ($content);
    }
}
?>

server.php

<?php
include("delivery.php");
$Server=new SoapServer(‘delivery.wsdl‘);   //SoapServer
$Server->setClass("test");
$Server->handle();
?>

delivery.wsdl

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://127.0.0.1/urlcode/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="delivery" targetNamespace="http://127.0.0.1/urlcode/">
  <wsdl:message name="send_do_deliveryRequest">

    <wsdl:part name="orderid" type="xsd:string"></wsdl:part>
  </wsdl:message>
  <wsdl:message name="send_do_deliveryResponse">
    <wsdl:part name="send_do_deliveryResponse" type="xsd:string"/>
  </wsdl:message>
  <wsdl:portType name="delivery">
    <wsdl:operation name="send_do_delivery">
      <wsdl:input message="tns:send_do_deliveryRequest"/>
      <wsdl:output message="tns:send_do_deliveryResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="deliverySOAP" type="tns:delivery">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="send_do_delivery">
      <soap:operation soapAction="http://127.0.0.1/urlcode/send_do_delivery"/>
      <wsdl:input>
        <soap:body namespace="http://127.0.0.1/urlcode/" use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body namespace="http://127.0.0.1/urlcode/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="delivery">
    <wsdl:port binding="tns:deliverySOAP" name="deliverySOAP">
      <soap:address location="http://127.0.0.1/urlcode/server.php"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

deliverySOAP里面要改成server.php的路径

时间: 2024-08-06 03:44:18

php用zendstudio建立wsdl的相关文章

php 使用zendstudio 生成webservice文件 wsdl

首先新建一个项目 在项目中新建下面这些文件 php类文件 test.php <?php class test { public function __construct() { } public function add($name,$age) { $result = array('REV'=>false); $result['REV'] = true; $result['DATA'] = 1; $result = json_encode($result); return $result; }

基于PHP——简单的WSDL的创建(WSDL篇)

1.建立WSDL文件      建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下面是我自己写的模板: [html] view plaincopy <?xml version ='1.0' encoding ='UTF-8' ?> <definitions name='自定义名称' targetNamespace='目标命名空间(WSDL所在地址)' <!--tns

.net与java建立WebService再互相调用

A: .net建立WebService,在java中调用. 1.在vs中新建web 简单修改一下Service.cs的[WebMethod]代码: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Conforms

SOAP扩展PHP轻松实现WebService

最近在一个PHP项目中对接外部接口涉及到WebService,搜索引擎上相关文章不是很多,找到的大都是引用一个号称很强大的开源软件 NuSOAP(下载地址:http://sourceforge.net/projects/nusoap/),即一些类.文章写描述的环境是PHP 4.3,现在都流行PHP 5.2或PHP 5.3了.先拿来试试,运行出错,原来NuSOAP提供的soapclient类与PHP 5中新增了内置的SOAP扩展的SoapClient类冲突了. 虽然NuSOAP号称可以用于所有的P

WSDL规则解释(转)

转自:http://www.blogjava.net/baoyaer/articles/116413.html WSDL文档可以分为两部分.顶部分由抽象定义组成,而底部分则由具体描述组成.抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何随机器或语言而变的元素.这就定义了一系列服务,截然不同的网站都可以实现.随网站而异的东西如序列化便归入底部分,因为它包含具体的定义.l 抽象定义        Types            独立与机器和语言的类型定义 Messages    

用VisualC++建立SOAP客户端应用(一)

用VisualC++建立SOAP客户端应用(一) SoapSerializer对象用来构建一个向Web服务发送的SOAP消息.在与服务器连接前,SoapSerializer对象必须与SoapConnector对象连接.为了使这二个对象相互连接,我们需要调用SoapSerializer 对象的Init方法,该方法需要一个参数InputStream(向服务器发送数据的流): // 创建一个SoapSerializer对象,并使用InputSTream对它进行初始化 ISoapSerializerPt

web服务器:SOAP,WSDL,UDDI

一.web服务简介 Web Services是一个可以将应用程序变为Web应用程序,将自己本地的应用程序信息通过网络,发布到网络中,让别人通过浏览器访问本地信息. Web Services的技术主要建立在XML的规范之上,保证了这一体系结构的平台无关性.语言无关性和人机交互性能. Web Services框架的核心技术包括SOAP,WSDL和UDDI,它们都是以标准的XML文档的形式表示的. SOAP(Simple Object Access Protocol)简单对象访问协议,消息起着用来交换

SOAP/Web Service/WSDL关系

转载----------------------------------------------- 最近看了xml schema,xpah,和xslt的相关内容,感觉wsdl就是一个soap的schema,一个soap就是一个wsdl的实例,实际上wsdl就是整个webservice的schema. 从这个角度看,要学好soap,不如从xml schema开始,然后转到wsdl的学习,这样webservice就没有其他理论上的东西可学了.就剩下类库内的函数如何使用的问题了. 对SOAP/Web

PHP 开发环境配置:WampServer+ZendStudio+XDebug

前言 一开始我在另一篇Blog中写的是WampServer+Nodepad++,当时的考虑是IDE占用空间太多,而且可能配置比较复杂,所以选择的是Nodepad++.但现在因为任务渐长,代码量多了起来,需要调试.因此还是选择一款IDE. 配置环境 Win7 WampServer 2.5 中文版 为什么我们要安装WampServer呢? 因为如果我们要开发PHP项目的话,首先我们要安装php解释器本身,还要安装一个服务器Apache,还要安装PHP对应的数据库MySQL.这三个软件本身的环境配置就