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 ...
随机推荐
- Complex social network Partition for Balanced Subnetworks---Hao Lan Zhang,Jiming Liu,Chunyu Feng,Chaoyi Pang,Tongliang Li,Jing He阅读
摘要:Abstract—Complex social network analysis methods have been applied extensively in various domains ...
- 进程【TLCL】
ps命令 ps x 加上 "x" 选项(注意没有开头的 "-" 字符),告诉 ps 命令,展示所有进程,不管它们由什么 终端(如果有的话)控制. 在 TTY 一 ...
- jq中同个页面点击事件和回车事件
button元素,绑定一系列事件的时候,点击-回车-回车,会出现错误. 解决办法,就是把button变成a 详情是,一个页面中有点击按钮,按钮点击之后,出现弹框1,点击弹框1的确定,出现弹框2,点击弹 ...
- 天地图OGC WMTS服务规则
图层名称 服务地址 投影类型 矢量底图 http://t0.tianditu.gov.cn/vec_c/wmts?tk=您的密钥 经纬度投影 http://t0.tianditu.gov.cn/vec ...
- aodh M版本新特性 - Remove eventlet from Aodh in favour of threaded approach
在 Kilo版本, API WSGI application 可以有以下2种部署方式: As a Python command that runs a Werkzeug-based web serve ...
- js代理模式
代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象.替身对象对请求做出一些处理之后,再把请求转交给本体对象. 代理模 ...
- ASP.NET上传文件,已经上传的大小保存在session中,在另一个页面中读取session的值不行
想自己做个ASP.NET上传文件时显示进度条的, 按照自己的想法,其实也就是显示每次已经上传的字节,从网上找到一个方法是能够把文件变成流以后再慢慢写入的,我在那个循环写入的时候每循环一次都把已经上传的 ...
- 将命令绑定到事件中(WPF)
绑定到指定名称控件的——>指定属性上 <i:Interaction.Triggers> <i:EventTrigger E ...
- c#加密,java解密(3DES加密)
c#代码 using System; using System.Security; using System.Security.Cryptography; using System.IO; using ...
- 自己动手写一个U盘拷贝小工具
这是五一期间,参照知乎上一篇的文章<十行代码--用python写一个USB病毒>写成的,最初只是单纯的想写成死循环,直到文件占满硬盘为止,第一个遇到的问题是,拷贝到硬盘之后,由于要无限次拷 ...