• 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>
  • 相关阅读:
    Java加密作业
    作业
    思考动手
    方法作业
    课堂2数字输出
    字符型转整形
    课堂验证作业
    Eclipse @override报错解决
    用注解配置动态代理
    动态代理模式
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/4728278.html
Copyright © 2020-2023  润新知