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(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的更多相关文章
- php 使用zendstudio 生成webservice文件 wsdl
首先新建一个项目 在项目中新建下面这些文件 php类文件 test.php <?php class test { public function __construct() { } public ...
- 基于PHP——简单的WSDL的创建(WSDL篇)
1.建立WSDL文件 建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...
- (转)基于PHP——简单的WSDL的创建(WSDL篇)
本文转载自:http://blog.csdn.net/rrr4578/article/details/24451943 1.建立WSDL文件 建立WSDL的工具很多,eclipse.zends ...
- [z] .net与java建立WebService再互相调用
http://blog.csdn.net/yenange/article/details/5824967 : .net建立WebService,在Java中调用. 1.在vs中新建web 简单修改一下 ...
- .net与java建立WebService再互相调用
A: .net建立WebService,在java中调用. 1.在vs中新建web 简单修改一下Service.cs的[WebMethod]代码: using System; using System ...
- webservice(二)简单实例
1.建立WSDL文件 建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...
- 主题:实战WebService II: SOAP篇(基于php)
概述(SOAP和XML-PRC比较) 在Web服务发展的初期,XML格式化消息的第一个主要用途是,应用于XML-RPC协议,其中RPC代表远程过程调用.在XML远程过程调用 (XML-RPC)中,客户 ...
- SOAP扩展PHP轻松实现WebService
最近在一个PHP项目中对接外部接口涉及到WebService,搜索引擎上相关文章不是很多,找到的大都是引用一个号称很强大的开源软件 NuSOAP(下载地址:http://sourceforge.net ...
- 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 ...
随机推荐
- Eclipse 换主题、皮肤、配色,换黑色主题护眼
Eclipse写android代码时,默认的文本和框架都是白色,长时间使用,显得过于刺眼.这里介绍三种方法换黑色护眼配色. 1.系统设置里更改 2.从Eclipse Marketplace里下载主题 ...
- 中文乱码之myEclipse项目导入时中文乱码(待)
方法1:检查默认的编码是否设置成utf-8. 步骤如图: window——>preferences... 若Text file encoding 中的编码为 Other == UTF-8 ,则已 ...
- adb 解说
ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备. 先说安装方法, 电脑上需要安装客户端. 客户端包含在sdk里. 设备上不需要安装, 只需要在手机 ...
- 并发Socket程序设计
1. 非阻塞并发模型 直接将socket设置为非阻塞, 轮询处理连接和接收. 缺点: 极大消耗CPU资源,不适合实际应用. 2. 信号驱动模型 当Socket文件描述符准备就绪后 内核会给进程发送一个 ...
- BZOJ4197 / UOJ129 [Noi2015]寿司晚宴
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- js 图片加载失败处理方法
在项目中不可避免会用到图片,尤其是列表,有时候图片会加载失败:这样就会显示一个很难看的坏图片缩略图:下面介绍两种方法,解决这个问题: 1.如果在你的项目中有引入jQuery插件,你可以使用error( ...
- HTML5 JS实现搜索匹配功能
http://www.codefans.net/jscss/code/4830.shtml <!DOCTYPE html><head><title>jQuery实现 ...
- Spring Boot配置文件详解:自定义属性、随机数、多环境配置
自定义属性与加载 我们在使用Spring Boot的时候,通常也需要定义一些自己使用的属性,我们可以如下方式直接定义: application-dev.yml com.didispace.blog: ...
- php 执行结果可以直接重定向文件中
将php中的echo输出到shell上的结果,重定向到文件中. php script.php >result.txt;
- python sort() sorted() 与argsort()函数的区别
1.python的内建排序函数有 sort.sorted两个 sort函数只定义在list中,sorted函数对于所有的可迭代序列都可以定义. for example: ls = list([5, 2 ...