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 ...
随机推荐
- Java 内部类、静态类内部类
问: 什么是内部类? 答: 内部类(Inner Class)就是在一个类的内部再定义一个类,与之对应包含内部类的类被称为外部类. 问: 为什么要将一个类定义在另外一个类内部呢? 答: 内部类主要作用如 ...
- 向maven依赖包中添加新的jar包
今天做一个项目测试的时候正好遇到这个问题,查了网上的资料,有两篇写的挺好,两种方法都试了,都可以. 1.个人觉得第一种简单:http://www.360doc.com/content/14/0517/ ...
- UVA 12716 GCD XOR (异或)
题意:求出[1,n]中满足gcd(a,b)=a xor b,且1<=a<=b<=n的对数 题解:首先a xor b = c,则a xor c = b,而b是a的约数,则可以使用素数筛 ...
- ZSTU 4241 圣杯战争(线段树+经典)
题意:CS召唤了n个实验怪兽,第i号怪兽在i这个位置出.并把KI召唤出的第i位从者安排在pos(i)处,总共有m位从者. 第i只怪兽有战斗力atk(i), 而i号从者的体力为AP(i).如果从者想要移 ...
- linux下 stat statfs 获取 文件 磁盘 信息
stat函数讲解 表头文件: #include <sys/stat.h> #include <unistd.h> 定义函数: int st ...
- 使用java代码打开特定网页
第一种方法的代码如下所示: import java.io.File; public class Test04 { public static void main(String[] args) { // ...
- Word 2010 怎么在每一章中使用不同的页眉
1.要做到每一章的页眉不同首先要进行 分节 word2010中 页面布局 -> 分隔符 ->下一页 上述操作即可实现分节 2.实现分节后,在每一节开头的那一页,编辑页眉 ...
- 分享知识-快乐自己:HttpClient 访问 WebService 开放接口
HttpClient: 场景需求如下: 1.项目中需要与一个基于HTTP协议的第三方的接口进行对接 2.项目中需要动态的调用WebService服务(不生成本地源码) 3.项目中需要利用其它网站的相关 ...
- 用node.js可以开启静态服务 不需要借助apache 或者xampl
安装好了Node以及express,然后用express命令生成express架构, 目录结构下面有一个public页面, 把你的静态页面放到这个文件夹下, 通过npm start,开启服务就可以在浏 ...
- 马拉车——模版+KMP——模版
void Manacher(){ ;t[i];++i,len+=){ s[i<<]='#'; |]=t[i]-'A'+'a'; |]=t[i]; } s[len++]='#'; ,pos= ...