Estes Freight Pickup Web服务基本身份验证

时间:2019-06-24 21:05:52

标签: php web-services soap wsdl soap-client

我正在尝试使用Estes Web服务创建测试代答请求。此特定服务需要使用我的登录凭据进行基本身份验证。但是,我似乎无法弄清楚如何使用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');

这是我当前用于Pickup Webservice的PHP代码块:

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);        
    }
}

0 个答案:

没有答案