Используя запрос Guzzle SOAP, но продолжал получать ссылку на объект, не установленную для экземпляра объекта - PullRequest
0 голосов
/ 09 октября 2018

Это моя функция для запроса кода на мыло API.Я продолжал получать сообщение об ошибке «Ссылка на объект не установлена ​​на экземпляр объекта».но ответ - 200. Мне нужно сгенерировать QuotationNo.

Мне нужно опубликовать эти данные во внешней базе данных API

Когда данные успешно отправлены в базу данных, QuotationNo будет создан

public function getQuotation()
{

    $factory = new Factory();
    $client = $factory->create(new Client(), 'http://something.com/GetQuotation/GetQuotation.asmx?WSDL', 
        [
          'stream' => true,
          'stream_context' => [
              'ssl' => [
                  'allow_self_signed' => true
              ],
              'socket' => [
                  'bindto' => 'serveripaddress'
              ]
          ]
        ]
    );
    $data = [
        'param' => [
            'TokenId' => '1pBt8l93-aTX1-E7J6-A6Qx-cWb3Abc84Eg6', 
            'AgentCode' => '30144-36-C', 
            'AgentID' => 'hqrebate', 
            'SumInsured' => 98005, 
            'BasicPrem' => 23006, 
            'ClassCode' => '2-01', 
            'SubClassCode' => '01', 
            'CarRegistrationNo' => 'PGS3881', 
            'InsuredName' => 'Testing Insured', 
            'InsuredIC' => '830711075133', 
            'InsuredEmail' => 'testing@hotmail.com', 
            'InsuredContactNo' => '60123450005', 
            'InsuredAddress1' => '153,', 
            'InsuredAddress2' => 'Jln Persiaran Meranti,', 
            'InsuredAddress3' => 'Bandar Seri Damansara', 
            'InsuredPostcode' => '55220'
        ]  
    ];

    $result = $client->call('GenerateQuotation', $data);

    var_dump($result);
    exit;
}

Это формат wsdl

<wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
        <s:element name="GenerateQuotation">
            <s:complexType>
                <s:sequence>
                    <s:element minOccurs="0" maxOccurs="1" name="param" type="tns:QuotationReq"/>
                </s:sequence>
            </s:complexType>
        </s:element>
        <s:complexType name="QuotationReq">
            <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="TokenId" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="AgentCode" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="AgentID" type="s:string"/>
                <s:element minOccurs="1" maxOccurs="1" name="SumInsured" type="s:double"/>
                <s:element minOccurs="1" maxOccurs="1" name="BasicPrem" type="s:double"/>
                <s:element minOccurs="0" maxOccurs="1" name="ClassCode" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="SubClassCode" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="CarRegistrationNo" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredName" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredIC" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredEmail" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredContactNo" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredAddress1" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredAddress2" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredAddress3" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="InsuredPostcode" type="s:string"/>
            </s:sequence>
        </s:complexType>
        <s:element name="GenerateQuotationResponse">
            <s:complexType>
                <s:sequence>
                    <s:element minOccurs="0" maxOccurs="1" name="GenerateQuotationResult" type="tns:QuotationResp"/>
                </s:sequence>
            </s:complexType>
        </s:element>
        <s:complexType name="QuotationResp">
            <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="QuotationNo" type="s:string"/>
                <s:element minOccurs="0" maxOccurs="1" name="ErrorDesc" type="s:string"/>
            </s:sequence>
        </s:complexType>
    </s:schema>
</wsdl:types>

Для тех, кто может мне помочь, я очень благодарен вам, поскольку я довольно долго сталкивался с этой проблемой.

1 Ответ

0 голосов
/ 11 октября 2018

Я просто изменяю это: $ result = $ client-> call ('GenerateQuotation', $ data);

на это: $ result = $ client-> call ('GenerateQuotation', [$ data]);

Работа выполнена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...