Базовая аутентификация веб-службы Estes Freight Pickup - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь создать тестовый запрос на получение с помощью веб-служб Estes. Эта конкретная служба требует базовой аутентификации с использованием моих учетных данных для входа. Тем не менее, я не могу понять, как выполнить аутентификацию с использованием PHP и SoapClient. Я продолжаю получать следующую ошибку:

Неустранимая ошибка PHP: необработанное исключение SoapFault: [soapenv: Client] [ISS.0088.9164] Доступ к WSDescriptor estesrtpickup.base.ws.provider.soapws: pickupRequestSSL запрещен.

В своей последней попытке я попытался передать учетные данные в адрес WSDL, но безрезультатно. Вот так:

$client_pickup = new SoapClient('https://USERNAME:PASSWORD@apitest.estes-express.com/tools/pickup/request/v1.0?wsdl');

Вот мой текущий блок кода PHP для Pickup Webservice:

public static function estesFreightPickupRequest($option) {

    self::$ShipToCity = preg_replace("/[^a-zA-Z0-9\s]/", "", $option->ShipToCity);
    self::$ShipToStateProvinceCode = preg_replace("/[^a-zA-Z0-9\s]/", "", $option->ShipToStateProvinceCode);
    self::$ShipToPostalCode = (string)$option->ShipToPostalCode;
    self::$ShipToPostalCode = substr(trim(self::$ShipToPostalCode), 0, 5);
    self::$ShipToPostalCode = str_pad(self::$ShipToPostalCode, 5, "0", STR_PAD_LEFT);
    self::$ShipToAddressLine = preg_replace("/[^a-zA-Z0-9\s]/", "", $option->ShipToAddressLine);

    $Weight = $option->weight;
    $d = strtotime("tomorrow");
    $request_date =  date("Y-m-d", $d);
    $path_to_wsdl_pickup = "https://apitest.estes-express.com/tools/pickup/request/v1.0?wsdl";

    ini_set("soap.wsdl_cache_enabled", "0");

    $client_pickup = new SoapClient('https://USERNAME:PASSWORD@apitest.estes-express.com/tools/pickup/request/v1.0?wsdl');

    ini_set("soap.wsdl_cache_enabled", "0");

    $header_pickup = new SoapHeader('http://www.estes-express.com/tools/pickup');   

    $client_pickup->__setSoapHeaders($header_pickup);
    //Enter the body data for WSDL
     $request_pickup = array(

        'requestNumber' => date("Y-m-d"),
        'shipper' => array(
            'shipperName' => 'COMPANY NAME',
            'accountCode' => 'ACCOUNT CODE',
            'shipperAddress' => array(
                'addressInfo' => array( 
                    'addressLine1' => '1620 TEST CT',
                    'city' => 'SOMETOWN',
                    'stateProvince' => 'MO',
                    'postalCode' => '65222',
                    'countryAbbrev' => 'US'
                )
            )
        ),
        'requestAction' => 'LL',
        'pickupDate'=> date("Y-m-d"),
        'pickupStartTime' => '1200',
        'pickupEndTime' => '1500',
        'totalPieces' => '1',
        'totalWeight' => '100',
        'totalHandlingUnits' => '1',
        'whoRequested' => 'S'

    );

    try {

        $response_pickup = $client_pickup->createPickupRequestWS($request_pickup);

        //Error log the request and response

        error_log($client->__getLastRequest());
        error_log($client->__getLastResponse());            


        //$rateReply = $response->quoteInfo->quote->pricing->totalPrice;

        //Get the response data

        $result_array = array();
        $result_array['totalPrice'] = $estes_total_rate_amount;


        return $result_array;


    } catch (SoapFault $exception) {
       error_log('ERROR LOG::' . $exception, $client);        
    }
}
...