Outil/api convertisseur devises

WRInaute accro
Bonjour,

Je développe une boutique internationale en plusieurs langues.
Je rencontre un problème... bah oui :(
Voilà, à l'inscription du membre, je connais son pays donc sa devise. Donc tous les produits qu'il va ajouter vont être dans sa devise.
Mon problème... côté boutique web... l'internaute va se retrouver avec des prix de différentes devises.
Donc j'avais dans l'idée de définir le pays de l'internaute en fonction de son navigateur (IP) et de lui afficher par défaut TOUS les prix dans son pays, pour cela, il me faut un outil permettant de convertir à la volée les devises étrangères.
J'en aurai trouvé genre celui-ci mais super cher !!:
https://www.xe.com/xecurrencydata/#price-section

Après il y a des gratuits genre celui-ci :
http://devises.zone/convertisseur/euro/dollar-us
Mais en contrôlant sur google, le taux n'est pas le même :(

Donc logiquement, il me faut un outil juste pas de l'approximatif. Je ne peux pas me le permettre. Peut pas y avoir un écart du montant au moment de régler la commande ??!!

Et si j'essaie de pomper le taux en faisant du scrapping sur google, je vais me faire dégommer. Ce n'est pas non plus le but.... ;)

Comment faites-vous ?
Merci
 
WRInaute accro
Oui oui excuse-moi @spout j'avais vu ton message.
Je te remercie de ton aide.
J'en avais tenu compte mais le module de laravel "florianv" ou un autre d'ailleurs, fonctionne avec un site tiers sur lequel ils vont faire des requêtes.
Je reviens au même dans le sens où tous les sites tiers sont payants. En tant que développeur, je comprends tout à fait qu'ils puissent être payant, c'est pas le soucis.
Tu te fais pas chier à développer pour toujours rendre gratuit :)

Mais où vont-ils récupérer ces infos. Ils ont bien un fichier XML, JSON ?? Enfin rien d’extraordinaire.
J'ai juste besoin du "live" en fonction d'une devise "source" et de sa "destination".

Les changes ne sont pas à ma connaissance des données confidentielles ?!
C'est tout de même étonnant que je ne trouve rien d'officiel là dessus ??!!
Pourquoi passer par un site tiers alors que je peux le faire moi-même ?
 
WRInaute accro
Je ne sais pas si le taux change plusieurs fois par heure/jour. Je pense qu'un taux de change mis à jour toutes les 12 heures c'est largement suffisant non ?
Si on regarde dans la FAQ de fixer par exemple: https://fixer.io/faq
Where is Fixer data coming from?
Exchange rate data delivered by the Fixer API is collected from over 15 reliable data sources, every minute. Sources include banks and financial data providers.

https://stackoverflow.com/questions...hange-rates-via-an-api-such-as-google-finance

La banque centrale européenne fourni un XML gratos: http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
 
WRInaute accro
Oui biensur, avoir le change dans l'instant T me semble difficile mais bon, évidemment, il est préférable de s'assurer que le montant affiché soit le plus proche de la réalité pour éviter d'avoir des soucis sur les taux de changes.
La banque centrale me semble bloquée sur des devises de EUR vers XXX donc pas bon. Je dois pouvoir interroger aussi bien du MXN => USD que du EUR => TRY etc... Je dois être libre sur la devise.

Celui me semble bien :
http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y
Pour 5$/mois, le version payante est intéressante:
http://www.currencyconverterapi.com/pricing

Voilà... si ça peut aider ;)
Encore merci @spout de ton aide ;)
 
WRInaute accro
La banque centrale me semble bloquée sur des devises de EUR vers XXX donc pas bon.
Bah si avec un simple calcul tu px convertir vers n'importe quelle autre devise.
J'ai déjà utilisé une API (https://openexchangerates.org/) qui ne fournissait que USD comme devise de base en gratos.
http://openexchangerates.github.io/money.js/

Le calcul que j'avais fait (en Python, converti à La Rache en PHP):
PHP:
<?php
function openExchangeRatesConvert($amount, $base, $dest)
{
    $endpoint = 'https://openexchangerates.org/api/latest.json';
    $appId = 'xxxxxxxx';
    $url = "$endpoint?app_id=$appId";
    $latest = json_decode(file_get_contents($url), true);
 
    return round(($amount / $latest['rates'][$base]) * $latest['rates'][$dest], 2);
}

echo openExchangeRatesConvert(1, 'EUR', 'USD');
echo '<br>';
echo openExchangeRatesConvert(1, 'USD', 'USD');
echo '<br>';
echo openExchangeRatesConvert(1, 'USD', 'EUR');
 
Dernière édition:
Discussions similaires
Haut