Ошибка — PHP API проверки адреса USPS

Я загрузил код и создал демо из "https://github.com/VinceG/USPS-php-api" для USPS-php-api.

Я получил ошибку, подобную этой: «Array () bool (true) Error: No URL set!»

Пожалуйста, дайте мне знать, если у вас есть какое-либо решение.

Я использовал следующий код.


<?php
require_once('../USPSAddressVerify.php');
$verify = new USPSAddressVerify('xxxxxxxxxxxx'); // I have used correct username
$address = new USPSAddress;
$address->setFirmName('Apartment');
$address->setApt('100');
$address->setAddress('9200 Milliken Ave');
$address->setCity('Rancho Cucomonga');
$address->setState('CA');
$address->setZip5(91730);
$address->setZip4('');

$verify->addAddress($address);
print_r($verify->verify());
print_r($verify->getArrayResponse());
var_dump($verify->isError());

if($verify->isSuccess()) {
    echo 'Done';
} else {
    echo 'Error: ' . $verify->getErrorMessage();
}


person Letusknow Letusknow    schedule 29.04.2013    source источник
comment
Какой URL указан в USPSAddressVerify.php?   -  person chandresh_cool    schedule 29.04.2013
comment
Обратите внимание на открытую проблему автора на GitHub, где также должно быть опубликовано решение: github .com/VinceG/USPS-php-api/issues/5   -  person Matt    schedule 29.04.2013
comment
Я смог воссоздать ошибку, закомментировав строку № 136 - $opts[CURLOPT_URL] = self::$testMode ? self::TEST_API_URL : self::LIVE_API_URL ; в USPSBase.php. Убедитесь, что вы устанавливаете $opts[CURLOPT_URL].   -  person Sean    schedule 29.04.2013
comment
@Sean: я прокомментировал эту строку, но она выдает ошибку, подобную этой 80040b1a Ошибка авторизации. У вас нет прав для подключения к этому серверу. UspsCom::DoAuth   -  person Letusknow Letusknow    schedule 29.04.2013
comment
Ваш вопрос звучит как запрос в службу поддержки при использовании этой библиотеки. Я не хочу сказать, что вы не должны спрашивать в Интернете о проблемах, с которыми вы сталкиваетесь, однако здесь, в Stackoverflow, речь идет о практических, поддающихся ответам и конкретных вопросах программирования. И предоставление поддержки для библиотеки, которую вы устанавливаете в первый раз и получаете сообщение об ошибке (а теперь и второе), не подходит для формата этого веб-сайта. Вместо этого обратитесь к поставщику библиотеки за вариантами поддержки.   -  person hakre    schedule 02.05.2013


Ответы (1)


Что я сделал, так это в классе USPSBase в методе doRequest закомментировать эту строку...

$opts[CURLOPT_URL] = self::$testMode ? self::TEST_API_URL : self::LIVE_API_URL

...и измените эту строку...

$ch = curl_init();

..to be...

$ch = curl_init(self::$testMode ? self::TEST_API_URL : self::LIVE_API_URL);

... и, с потенциально связанной проблемой, я должен был добавить...

$opts[CURLOPT_FOLLOWLOCATION] = !ini_get('open_basedir');

...после...

$opts[CURLOPT_POSTFIELDS] = http_build_query($this->getPostData(), null, '&');

...чтобы удовлетворить это предупреждение...

curl_setopt_array(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set

ПРИМЕЧАНИЕ: это было протестировано только с функцией подтверждения адреса!

person chaseisabelle    schedule 03.07.2013