This FREE Magento Extension that supports PayPal payments for not supported currencies by PayPal might be helpful for you.
https://github.com/Meabed/Paypal-Multi-Currency-Magento
First of all, we need to setup multi-currency shop (System -> Configuration -> GENERAL -> Currency Setup
).
Then, we do necessary setup for PayPal Payment Method (System -> Configuration -> SALES -> Payment Methods
).
After installing this module, you can go to System -> Configuration -> SALES -> Payment Methods -> Paypal Multi Currency
and make necessary settings over there.
Here is the checkout page where you can see USD equivalent amount being displayed on Order Review
step.
Finally, after the order is placed, the following information is displayed in Sales -> Orders
in Magento admin/backend.
PS: The images above are taken from the extension's github.
I finally got to the bottom of this issue after months of testing/debugging but of course, this may not be the answer for others that experience this issue. Definitely worth checking though.
In this case, our client was using a manually entered conversion rate in Magento (System > Manage Currency > Rates) as opposed to importing the recent conversion rates from a third party source.
When a customer was checking out via Paypal Express after converting the currency on the Magento website to either EUR or USD (from GBP), Paypal was handling the conversion within its own website (see below #figures).
Figure 1
When a foreign currency is being passed through the (GBP) Paypal account, it is handling the conversion inside of Paypal which differs from the fixed preset exchange rate in Magento.
Tested this by trying to checkout of the store with a bag total of €88.40 (figure 1) (note the GBP equivalent of £68.00) but when logged into Paypal and about to complete payment, it shows the conversion which converts to £69.81 (figure 2).
Figure 2
This subsequently causes a discrepancy between the capture amounts (Magento is expecting £68.00 but Paypal actually captures £69.81), a difference of £1.81 in this particular instance. There only has to be a difference of £0.01 to trigger a suspected fraud transaction.
There are likely a number of different methods to resolve this but the first thing to try is to import the latest conversion rates on a cron job (System > Configuration > GENERAL > Currency Setup > Scheduled Import Settings) or you can set up a third party extension like Paypal All Currencies from Mageoxy which allows you to override the exchange rate Paypal uses.
Figure 3
===
If you find this to not be of much help or use to your scenario, then you should find that some of the discussions linked to in the original question should help resolve your case.
Otherwise, hopefully this sheds some light on those experiencing suspected fraudulent transactions in Magento when customers check out via Paypal Express after converting the currency from the base currency set.
Best Answer
Here is the example of use AED currency in PayPal. You can use same for other currencies.
Follow this step to support other currencies in paypal:
1) Override
Config.php
andNvp.php
2) Add your currency in
$_supportedCurrencyCodes
3) Now convert currency amount to USD amount in API request
Inject
\Magento\Directory\Helper\Data
class for convert currency rateApprox after line: 1175
Note: set Transfer Cart Line Items to No From
To pass only order, shipping and tax amount
If you set yes from this config setting. Magento passes all cart item amount to PayPal request and you have to change the logic of converting price.