首先,新建的时候要选择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(rpc单参数)

<?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的路径

rpc多参数

<?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:part name="memo" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:message name="send_do_deliveryResponse">
<wsdl:part name="send_do_deliveryResponse" type="xsd:string"/>
<wsdl:part name="msg" type="xsd:string"></wsdl:part>
</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>

document多参数

<?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:types>
<xsd:schema targetNamespace="http://127.0.0.1/urlcode">
<xsd:element name="send_do_delivery">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="send_do_deliveryResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="send_do_deliveryRequest">
<wsdl:part element="tns:send_do_delivery" name="parameters"/>
<wsdl:part name="orderid" type="xsd:string"></wsdl:part>
<wsdl:part name="memo" type="xsd:string"></wsdl:part>
</wsdl:message>
<wsdl:message name="send_do_deliveryResponse">
<wsdl:part element="tns:send_do_deliveryResponse" name="parameters"/>
<wsdl:part name="status" type="xsd:string"></wsdl:part>
<wsdl:part name="msg" type="xsd:string"></wsdl:part>
</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="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="send_do_delivery">
<soap:operation soapAction="http://127.0.0.1/urlcode/NewOperation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body 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>

php用zendstudio建立wsdl的更多相关文章

  1. php 使用zendstudio 生成webservice文件 wsdl

    首先新建一个项目 在项目中新建下面这些文件 php类文件 test.php <?php class test { public function __construct() { } public ...

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

    1.建立WSDL文件      建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...

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

    本文转载自:http://blog.csdn.net/rrr4578/article/details/24451943 1.建立WSDL文件     建立WSDL的工具很多,eclipse.zends ...

  4. [z] .net与java建立WebService再互相调用

    http://blog.csdn.net/yenange/article/details/5824967 : .net建立WebService,在Java中调用. 1.在vs中新建web 简单修改一下 ...

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

    A: .net建立WebService,在java中调用. 1.在vs中新建web 简单修改一下Service.cs的[WebMethod]代码: using System; using System ...

  6. webservice(二)简单实例

    1.建立WSDL文件      建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...

  7. 主题:实战WebService II: SOAP篇(基于php)

    概述(SOAP和XML-PRC比较) 在Web服务发展的初期,XML格式化消息的第一个主要用途是,应用于XML-RPC协议,其中RPC代表远程过程调用.在XML远程过程调用 (XML-RPC)中,客户 ...

  8. SOAP扩展PHP轻松实现WebService

    最近在一个PHP项目中对接外部接口涉及到WebService,搜索引擎上相关文章不是很多,找到的大都是引用一个号称很强大的开源软件 NuSOAP(下载地址:http://sourceforge.net ...

  9. JAX-WS(一)之使用wsgen从Java创建简单的WebService

    概念 JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JA ...

随机推荐

  1. Efficient Vector Representation for Documents through Corruption-by Minmin Chen阅读

    关键词: 词向量.文档向量.文档表示 地址:https://openreview.net/forum?id=B1Igu2ogg&noteId=B1Igu2ogg 首先,论文解决的是Word2V ...

  2. 最短路径Dijkstra模板

    算法思想:把所有的边分成两个集合A,B.集合A表示已经求出最短路径的点,不断扩展集合A,减少集合B.每一扩展就从结合B中找出到源点距离最短的点,加入到A. dis[i]数组代表从出发点到j的距离: m ...

  3. linux与windows 通过SecureCRT进行文件传输方式

    linux与windows 通过SecureCRT进行文件传输方式 方式一:lrzsz是一款在Linux里可代替ftp上传和下载的程序.(小文件推荐,以4G为界限) # rz -bash: rz: c ...

  4. json数据与Gson工具类的使用

    JS中使用JSON JSON对象 --> JSON字符串:JSON.stringify(对象) JSON字符串 --> JSON对象:JSON.parse(JSON字符串) <scr ...

  5. java基础(3)-多线程(1)

    java多线程 进程与线程 进程:指一个正在执行的应用程序.每个进程执行都有一个执行顺序,该顺序称为一个执行路径或一个控制单元(进程是资源分配的最小单位).一个进程包含1~n个线程 线程:指进程中某个 ...

  6. linux基础(7)-IO重定向

    符合含义 > (重新生成或清空后添加) $ ls -l >test22.log >>(追加) $ ls -l >>test22.log   实例1 $ find . ...

  7. spring mvc 官方下载

    1.进入https://spring.io 2.选择projects选项卡 3.点击spring frawewoek 4.选择右中方的Reference 5.选择2.3章节 6.点击 Distribu ...

  8. ubuntu上安装nodejs

    目录: 1. nodejs的下载 2. 解压和安装 3. 安装过程中出现过的问题 4. 总结 1. nodejs的下载 我刚开始没有linux系统,于是安装了nodejs的windows版本进行学习. ...

  9. java:正则匹配Pattern,Matcher

    一.正则匹配Pattern,Mather String s = "aa424fsfsd92lfjw2755097"; Pattern p = Pattern.compile(&qu ...

  10. java 如何保证接口的安全性

    在开发过程中,肯定会有和第三方或者app端的接口调用.在调用的时候,如何来保证非法链接或者恶意攻击呢? 1.签名 根据用户名或者用户id,结合用户的ip或者设备号,生成一个token.在请求后台,后台 ...