исключение «Viewflex \ Forex \ ForexException» с сообщением «Ошибка получения обменного курса

Я использую версию этого пакета «viewflex / forex»: «^ 0.1.1», но при обновлении курса валюты для —

$usdRate = $server->getRate('USD', 'INR');

Получение ошибки, как показано ниже
исключение «Viewflex \ Forex \ ForexException» с сообщением «Ошибка получения обменного курса.

Любая помощь!!!
Спасибо,

2

Решение

Глядя на их исходный код, я вижу это:

https://github.com/viewflex/forex/blob/master/src/Forex.php#L57-L68

        if (
array_key_exists('rates', $content)
&& array_key_exists($target, $content['rates'])
&& $content['rates'][$target]
) {
$rate = floatval($content['rates'][$target]);
} else {
throw new ForexException('Error retrieving exchange rate.');
}
if($rate <= 0)
throw new ForexException('Error retrieving exchange rate.');

Таким образом, получается, что если ответ не содержит необходимой информации, он выдаст исключение. Кроме того, если он проходит первую проверку, но скорость < 0, это также вызывает исключение. Так что на самом деле не похоже, что вы сделали что-то не так.

Глядя дальше, я вижу, что делает этот вызов:

$response = $this->request('https://api.fixer.io/latest?base='.$source.'&symbols='.$target);

Я перевел это на основе вашего кода:

https://api.fixer.io/latest?base=USD&символы = INR

Который, если вы нажмете эту ссылку, даст вам ответ:

0   "#################################################################################################################################"1   "#                                                                                                                               #"2   "# IMPORTANT - PLEASE UPDATE YOUR API ENDPOINT                                                                                   #"3   "#                                                                                                                               #"4   "# This API endpoint is deprecated and has now been shut down. To keep using the Fixer API, please update your integration       #"5   "# to use the new Fixer API endpoint, designed as a simple drop-in replacement.                                                  #"6   "# You will be required to create an account at https://fixer.io and obtain an API access key.                                   #"7   "#                                                                                                                               #"8   "# For more information on how to upgrade please visit our Github Tutorial at: https://github.com/fixerAPI/fixer#readme          #"9   "#                                                                                                                               #"a   "#################################################################################################################################"

Похоже, что библиотека устарела.

Либо используйте другую библиотеку, либо снова включите ее.

Чтобы обойти это, вы можете сначала создать учетную запись с новым API, зарегистрироваться на GitHub, если вы еще этого не сделали, разветвить хранилище, изменить эту строку https://github.com/viewflex/forex/blob/master/src/Forex.php#L53, и либо отправьте запрос на извлечение, либо измените имя пакета composer https://github.com/viewflex/forex/blob/master/composer.json#L2 и зарегистрируйте свой новый пакет с https://packagist.org/ (также измените все пространства имен файлов, если вы это сделаете.)

Если вы подпишетесь на новый API и отправите новую конечную точку, я могу отправить этому парню запрос с исправлением.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]