Sauter la navigation

Ce sujet est résolu. Voici une description du problème et de la solution.

Problème :
Vous rencontrez une erreur "Invalid authentication credentials" avec currencyLayer lors de la mise à jour automatique des devises sur votre site.
Solution :
1. Remplacez la clé API dans

wcml_exchange_rate_service_currencylayer

par la configuration suivante :

a:3:{s:7:"api-key";s:32:"XXXXXXXXXXX";s:17:"selected-endpoint";s:75:"http://apilayer.net/api/live?access_key=%s&source=%s¤cies=%s&amount=1";s:10:"last_error";b:0;}

2. Contactez votre fournisseur d'hébergement pour vérifier si quelque chose bloque la requête API, car l'erreur cURL 28 indique un problème de timeout.
3. Testez les taux de change sur un produit pour vérifier si les modifications ont été appliquées correctement.

Si cette solution ne résout pas votre problème ou semble obsolète, nous vous recommandons de consulter les problèmes connus, de vérifier la version du correctif permanent et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support sur notre forum d'assistance.

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Aucun de nos assistants n'est disponible aujourd'hui sur le forum French. Veuillez créer un ticket, et nous nous le traiterons dès notre prochaine connexion. Merci de votre compréhension.

Ce sujet contient 6 réponses, a 2 voix.

Dernière mise à jour par Bruno Kos Il y a 4 semaines et 1 jour.

Assisté par: Bruno Kos.

Auteur Articles
Septembre 4, 2024 à 6:41 am #16138493

thierryM-7

Contexte de la question:
J'essaie d'utiliser mon compte gratuit currencyLayer pour mettre à jour automatiquement les devises d'un site quotidiennement. Cependant, quand je teste la clé d'API, il me retourne l'erreur.

Symptômes:
Erreur "Invalid authentication credentials" avec currencyLayer pour la mise à jour des devises.

Questions:
Comment puis-je résoudre l'erreur "Invalid authentication credentials" avec currencyLayer ?

Septembre 4, 2024 à 7:10 am #16138600

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Pouvez-vous essayer les actions suivantes:

1. Contactez l'assistance de CurrencyLayer pour vérifier s'il y a un problème avec votre compte ou votre clé API. Faites-nous part de leur réponse afin que nous puissions vous aider davantage.

2. Vérifiez auprès de votre hébergeur et testez la connectivité à l'API. Vous pouvez utiliser des outils comme cURL à partir de la ligne de commande de votre serveur ou un outil comme Postman pour tester la connectivité directe à l'API de CurrencyLayer.

Exemple de commande cURL:

   curl -G "<em><u>lien caché</u></em>" --data-urlencode "access_key=YOUR_API_KEY"
Septembre 4, 2024 à 7:27 am #16138694

thierryM-7

Bonjour,

Merci du retour.
En testant avec un outil cURL en ligne : lien caché

Si j'entre ça :

curl -G "lien caché" --data-urlencode "access_key=MY_API_KEY"

Il me dit :

{
"success": false,
"error": {
"code": 101,
"type": "missing_access_key",
"info": "You have not supplied an API Access Key. [Required format: access_key=YOUR_ACCESS_KEY]"
}
}

Il faut que je passe la clé d'API directement en paramètre GET :

curl -G "lien caché"

Et à ce moment-là ça fonctionne :

{
"success": true,
"terms": "https:\/\/currencylayer.com\/terms",
"privacy": "https:\/\/currencylayer.com\/privacy",
"timestamp": 1725434416,
"source": "USD",
"quotes": {
"USDAED": 3.672925,
"USDAFN": 70.400927,
"USDALL": 90.319077,
....
}

Donc ma clé d'API est valide apparemment et les serveurs de currencyLayer semblent accessible. J'imagine qu'il ne s'agit donc pas un problème avec ces informations, mais bien dans la manière dont WPML contact les serveurs de CL non ?

Si je regarde le code de votre plugin, dans :

woocommerce-multilingual/classes/multi-currency/exchange-rate-services/CurrencyLayer.php

À la ligne 34 vous construisez l'URL de cette manière :

protected function getApiLayerUrl() {
return 'lien caché';
}

Sauf que l'API n'est pas transmise en paramètre GET. Elle semble être déclarée dans la classe ApiLayerService dans l'en-tête de la requête :

protected function getRequestHeaders() {
return [ 'apikey' => $this->getApiKey() ];
}

Donc si je test cette méthode avec cURL en passant la clé dans l'en-tête :

curl -G "lien caché" H 'apikey: MY_API_KEY'

J'ai la même erreur que lors de ma première tentative :

{
"success": false,
"error": {
"code": 101,
"type": "missing_access_key",
"info": "You have not supplied an API Access Key. [Required format: access_key=YOUR_ACCESS_KEY]"
}
}

Il s'agit donc d'un problème dans le code du plugin, non ?

Septembre 4, 2024 à 9:07 am #16139245

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Pouvez-vous me fournir les identifiants d'accès à WordPress?

Et envoyez-moi la clé YOUR_ACCESS_KEY?

Septembre 4, 2024 à 12:05 pm #16140252

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Merci, je vais vérifier cela avec notre deuxième niveau et je vous tiendrai au courant.

Septembre 5, 2024 à 5:16 am #16143028

Bruno Kos
Supporter

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Pouvez-vous essayer les étapes suivantes :

1. Vérifiez la table `options` dans votre base de données pour la clé `wcml_exchange_rate_service_currencylayer`.
2. Envoyez-nous les données ou une capture d'écran de la valeur de cette clé afin que nous puissions vérifier sa configuration sur votre site.

Car lorsque nous testons cette clé, elle fonctionne.

works.png
Septembre 5, 2024 à 6:16 am #16143160

thierryM-7

Bonjour,

Merci de votre retour, voici le contenu de cette option dans la base :

lien caché

La valeur de la clé est bien identique à celle que je vous ai transmise.

Est-ce possible que c'est mon site qui bloque les accès externes depuis WCML ? Y a-t-il un réglage spécifique pour s'assurer que les données sont bien envoyées au serveur externe ?

Septembre 5, 2024 à 11:52 am #16144857

thierryM-7

Merci Bruno, ça semble OK ! J'ai remplacé la valeur dans la base et ça a corrigé le problème.

Cela semble néanmoins être un bug de WCML non ?

Je vais vérifier que la mise à jour automatique fonctionne bien ces prochains jours (j'ai activé l'exécution quotidienne de la mise à jour des taux).

thierryM-7 a confirmé que le problème avait été résolu sur 2024-09-05 11:52:12.
Ce ticket est maintenant fermé. Si vous êtes un client de WPML et que vous avez besoin d'aide, veuillez ouvrir un nouveau ticket d'assistance