web-dev-qa-db-fra.com

Paypal peut-il facturer des prix et des devises différentes selon les régions?

Je souhaite configurer un module de paiement sur mon site Web: le prix US/Canada correspond à un certain prix en USD, les utilisateurs d'autres pays payant en EUR. Les prix ne sont pas une conversion exacte, mais un nombre "rond" qui se rapproche de la conversion exacte. Disons par exemple 140 USD et 100 EUR.

Existe-t-il un moyen simple de configurer cela dans PayPal? Si non, quelle méthode de paiement est peu coûteuse et facile à mettre en œuvre?

1
Philippe

Pour ce faire, je tiens à jour une liste des taux de change dans une table de base de données. J'ai créé un cronjob pour les récupérer toutes les heures. (De: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml )

Mes produits sont tous libellés en USD et je permets aux visiteurs de choisir dans une liste leur devise préférée en fonction de la conversion d'USD à l'aide de ma table de taux de change.

J'ai donc un tableau comme celui-ci, répertoriant toutes les devises acceptées par Paypal:

<select>
<option value="">Change Currency...</option>
<option value="USD">USD - U.S. Dollars</option>         
<option value="GBP">GBP - Pounds Sterling</option>

Quand ils sélectionnent une option différente, je reçois le montant converti et l’affiche, par exemple:

Ajax:

    function changeCurrency(id) {
        var select_price = $("#select").val(); 
        var codes=new Array();
            codes['USD']="\u0024";
            codes['GBP']="\u00A3";

        $.post("/payment/prices.php", { id: id, currency: select_price },
           function(data){
             $("#spanPrice").text(codes[select_price] + data);
             $("input[name*='currency_code']").val(select_price);
             if(select_price=='JPY' || select_price=='HUF'){
             var splitData = data.split(".");
             $("input[name*='amount']").val(splitData[0].replace(",",""));
             } else {
             $("input[name*='amount']").val(data.replace(",",""));
             }
           });

    }

PHP:

       function convert($amount,$from,$to,$decimals=2) { 
return(number_format(($amount/$this->exchange_rates[$from])*$this->exchange_rates[$to],$decimals));
       }

En ce qui concerne le paiement, je prends simplement la devise sélectionnée et le montant converti. Les produits que je vends sur mon site Web sont des biens non physiques et constituent un processus automatisé. Par conséquent, une fois le paiement effectué, je vérifie le montant payé afin de m'assurer qu'il n'a pas été facturé, par exemple 0,01 USD.

1
StuR

Je pense que vous devriez envisager si vous avez besoin des conversions de prix approximatif que vous décrivez.

Si vous utilisez Paypal et définissez le prix en USD, la conversion est effectuée par Paypal; alors disons que j'achète chez vous et que vous fixez le prix en USD, alors je paierais Paypal avec SEK (couronnes suédoises) pour la valeur et Paypal vous paiera en USD ...

1
Jontas