对于货币转换我使用“florianv / laravel-swap”:“^ 1.1”库。 Florianv/Laravel-swap。
由于Fixer.io已更改其实现,因此需要将access_key与请求一起传递,因此我收到此错误:“InvalidArgumentException:必须提供”access_key“选项才能使用fixer.io的 /var/www/project/project-files/vendor/florianv/exchanger/src/Service/Fixer.php:51 ”。
我注册并获得了access_key。 我使用composer更新了库,现在我可以在 vendor / florianv / exchanger / src / Service / Fixer.php 中看到三个常量。
const ACCESS_KEY_OPTION = 'access_key';
const LATEST_URL = 'http://data.fixer.io/api/latest?base=%s&access_key=%s';
const HISTORICAL_URL = 'http://data.fixer.io/api/%s?base=%s&access_key=%s';
要传递访问密钥,我尝试了这个:
我在config文件夹中有一个swap.php,它看起来像这样:
return [
'options' => [
'cache_ttl' => 86400, // 24 hours.
'cache_key_prefix' => 'currency_rate'
],
'services' => [
'fixer' => true,
],
'currency_layer' => [
'access_key' => 'asdfas7832mw3nsdfa776as8dfa', // Your app id
'enterprise' => true, // True if your AppId is an enterprise one
],
'cache' => env('CACHE_DRIVER', 'file'),
'http_client' => null,
'request_factory' => null,
'cache_item_pool' => null,
];
这还有一个被评论的选项,我启用并传递了access_key但它不起作用。 我还在'fixer =>下面的服务块中添加了它真正的”。
'currency_layer' => [
'access_key' => 'asdfas7832mw3nsdfa776as8dfa'
]
同样在选项块中:
'options' => [
'cache_ttl' => 86400, // 24 hours.
'cache_key_prefix' => 'currency_rate',
'access_key'=>'7ca208e9136c5e140d6a14427bf9ed21'
],
我尝试在config / services.php文件中添加access_key,但它也无效。
'fixer' => [
'access_key' => 'asdfas7832mw3nsdfa776as8dfa'
],
即使我尝试过,添加到env文件并从那里调用,但没有成功。我如何通过access_key,任何人都可以帮助我,这应该是什么方法。
答案 0 :(得分:0)
vendor / florianv / exchanger / src / Service / Fixer.php - > 不要触及常量(这是我自己的错误)。
通过创建Builder传递options-array:
$options = ['access_key' => 'YourGeneratedAPIKeyAtCurrencyLayer'];
$this->exchangeSwap = (new Builder($options))
->add('fixer', $options )
->build();
我希望我可以提供帮助; - )