Aramex API возвращает ошибку стоимости доставки при использовании названия города Мальмё - PullRequest
0 голосов
/ 16 апреля 2019

В проект встроен API-интерфейс Aramex для оплаты доставки.API работает нормально, за исключением некоторых тривиальных случаев.Например,

Если я использую город в качестве Мальмё, а страну в качестве Швеции, я получаю плату за доставку.

Но когда я использую город в качестве Мальмё, а страну в качестве Швеции,Я получаю сообщение Aramex Ошибка - не удалось получить оценку .

Вот код стоимости доставки: -

private static function set_shipping_rate_params($shipping_rate_request, $addresses) {
        $country_code = Country::find($addresses['shipping_address']['country'])->country_code;

        if($country_code == self::$AccountCountryCode) {
            self::$ProductType = 'CDS';
            self::$ProductGroup = 'DOM';
        }

        return array(
            'Transaction'           => array(
                'Reference1'            => $shipping_rate_request->id
            ),

            'OriginAddress'         => array(
                'City'                  => self::$OriginCity,
                'CountryCode'           => self::$AccountCountryCode
            ),

            'DestinationAddress'    => array(
                'City'                  => $addresses['shipping_address']['city'],
                'PostCode'              => $addresses['shipping_address']['postal'],
                'CountryCode'           => $country_code
            ),
            'ShipmentDetails'       => array(
                'PaymentType'            => self::$PaymentType,
                'ProductGroup'           => self::$ProductGroup,
                'ProductType'            => self::$ProductType,
                'ActualWeight'           => array( 'Value' => $shipping_rate_request->weight, 'Unit' => 'KG'),
                'NumberOfPieces'         => $shipping_rate_request->quantity,
                'Dimensions'    => array(
                    "Length"             => $shipping_rate_request->length,
                    'Width'              => $shipping_rate_request->width,
                    "Height"             => $shipping_rate_request->height,
                    "Unit"               => 'CM')
            )
        );
    }

    private static function get_shipping_rate($params) {

        $soapClient = new SoapClient(base_path("public/aramex/aramex-rates-calculator-wsdl.wsdl"), array('trace' => 1));

        $results = $soapClient->CalculateRate($params);

        if(isset($results->TotalAmount) && isset($results->TotalAmount->Value)) {
            return $results;
        } else {
            return 0;
        }
    }

Как это исправить?

...