繁体   English   中英

PHP SOAP客户端帮助!

[英]PHP SOAP client help!

我必须创建一个发送线索的PHP SOAP客户端,但是我以前从未使用过SOAP,而且我的XML并不是那么出色,这是到目前为止我已经设法编写的代码。

<?php

    try {

        $client = new SoapClient(null, array(
        'location'  =>  "https://wwa.website.co.za/CallmasterTes/LeadService.asmx",
        'uri'       =>  "urn:Website:Callmaster:InTuch/CreateLead",
        'login'     =>  "username",
        'password'  =>  "password"
        ));

            $sysName = ' ';
            $clientCode = ' ';
            $expTimestamp = ' ';
            $schedTimestamp = ' ';

        $client->CreateLead("ExternalLead",
                        new SoapParam($sysName, "BusinessSystemName"),
                        new SoapParam($clientCode, "BusinessSystemClientCode"),
                        new SoapParam($_POST['Title'], "Title"),
                        new SoapParam($_POST['FirstName'], "FirstName"),
                        new SoapParam($_POST['Surname'], "Surname"),
                        new SoapParam($_POST['IdNumber'], "IdNumber"),
                        new SoapParam($_POST['Gender'], "Gender"),
                        new SoapParam($_POST['DateOfBirth'], "DateOfBirth"),
                        new SoapParam($_POST['Language'], "Language"),
                        new SoapParam($_POST['EmailAddress'], "EmailAddress"),
                        new SoapParam($_POST['HomeTelNumber'], "HomeTelNumber"),
                        new SoapParam($_POST['BusinessTelNumber'], "BusinessTelNumber"),
                        new SoapParam($_POST['MobileTelNumber'], "MobileTelNumber"),
                        new SoapParam($_POST['OtherTelNumber'], "OtherTelNumber"),
                        new SoapParam($_POST['PreferredTelNumberCode'], "PreferredTelNumberCode"),
                        new SoapParam($_POST['CampaignName'], "CampaignName"),
                        new SoapParam($_POST['ProductName'], "ProductName"),
                        new SoapParam($_POST['Comments'], "Comments"),
                                            new SoapParam($expTimestamp, "ExpiryTimestamp"),
                                            new SoapParam($schedTimestamp, "ScheduledTimestamp"),
                        );

    }

    catch (SoapFault $fault) {
        trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    }

?>

以下是示例SOAP 1.2请求和响应,我是服务器端的开发人员给出的。

POST /CallmasterTest/LeadService.asmx HTTP/1.1
Host: wwa.website.co.za
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <CreateLead xmlns="urn:Website:Callmaster:InTuch">
      <Lead>
        <BusinessSystemName>string</BusinessSystemName>
        <BusinessSystemClientCode>int</BusinessSystemClientCode>
        <Title>Mr or Ms or Mrs or Miss...etc</Title>
        <FirstName>string</FirstName>
        <Surname>string</Surname>
        <IdNumber>string</IdNumber>
        <Gender>Male or Female</Gender>
        <DateOfBirth>date</DateOfBirth>
        <Language>string</Language>
        <EmailAddress>string</EmailAddress>
        <HomeTelNumber>string</HomeTelNumber>
        <BusinessTelNumber>string</BusinessTelNumber>
        <MobileTelNumber>string</MobileTelNumber>
        <OtherTelNumber>string</OtherTelNumber>
        <PreferredTelNumberCode>Business or Home or Mobile or Other</PreferredTelNumberCode>
        <CampaignName>string</CampaignName>
        <ProductName>string</ProductName>
        <Comments>string</Comments>
        <ExpiryTimestamp>dateTime</ExpiryTimestamp>
        <ScheduledTimestamp>dateTime</ScheduledTimestamp>
      </Lead>
    </CreateLead>
  </soap12:Body>
</soap12:Envelope>

响应:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <CreateLeadResponse xmlns="urn:Website:Callmaster:InTuch">
      <CreateLeadResult>
        <Success>boolean</Success>
        <StatusMessage>string</StatusMessage>
        <LeadGuid>guid</LeadGuid>
        <Errors>
          <LeadError ErrorLevel="Information or Warning or Error">
            <Message>string</Message>
            <Field>string</Field>
          </LeadError>
          <LeadError ErrorLevel="Information or Warning or Error">
            <Message>string</Message>
            <Field>string</Field>
          </LeadError>
        </Errors>
      </CreateLeadResult>
    </CreateLeadResponse>
  </soap12:Body>
</soap12:Envelope>

我真的已经尝试了一切,然后进入了天堂,但是我无法使它正常工作,我确信它可能是我所缺少的小东西,我非常感谢您的帮助,谢谢!

我不确定这是否是复制/粘贴错误,但是在您的第一个代码示例中,所有_POST都应为$_POST

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM