1

Hi I have a magento store with IP based currency detector, however I use INR as base currency. I integrated PAYPAL but its showing error(#10605). As I read INR is not accepted by Paypal, I don't mind it show up in India, but will the paypal integrated support currencies outside India with different currency as USD? Can anyone guide?

Or does base currency makes all the difference?

Any help how I can find a solution for Paypal integration? my website is dvibgyor

1
  • Is your issue solved?
    – user51361
    Jul 25, 2017 at 10:42

2 Answers 2

1

Hi If you are using paypal standard you can try below code which convert your amount fron INR to USD. File path: \app\code\core\Mage\Paypal\Model\Standard.php In above file you need to change in getStandardCheckoutFormFields function.

Note:Please do not change in core files.copy it from core or rewrite the model

place the below code after $result = $api->getStandardCheckoutRequest(); line.

<?php    
    $baseCode = Mage::app()->getBaseCurrencyCode();
    $fromCur = Mage::app()->getStore()->getCurrentCurrencyCode();
    $toCur = 'USD';

    $allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
    $rates = Mage::getModel('directory/currency')->getCurrencyRates($baseCode, array_values($allowedCurrencies));
    $result['amount'] = round((($order->getGrandTotal() * $rates[$toCur])/$rates[$fromCur]),2);

    $result['currency_code'] = $toCur;

    $j = 0;
    $items = $order->getAllItems();

    foreach ($items as $itemId => $item)
    {
        if ($item->getParentItem()) {
            continue;
        }
        $j ++;
        //$result['amount_'.$j] = round(Mage::helper('directory')->currencyConvert($item->getPrice(), $fromCur, $toCur), 2);
        $result['amount_'.$j] = round((($item->getPrice() * $rates[$toCur])/$rates[$fromCur]),2);
    }
    $j++;
    $result['country']          = $order->getBillingAddress()->getCountryId();
    $shippingSporter            = $order->getBaseShippingAmount();
    //$result['shipping']       = round(Mage::helper('directory')->currencyConvert($shippingSporter, $fromCur, $toCur), 2);
    $result['shipping']         = round((($shippingSporter * $rates[$toCur])/$rates[$fromCur]),2);
    //$result['discount_amount']    = -1*round(Mage::helper('directory')->currencyConvert($order->getDiscountAmount(), $fromCur, $toCur), 2);
    $result['discount_amount']  = -1*round((($order->getDiscountAmount() * $rates[$toCur])/$rates[$fromCur]),2);
    $result['discount_amount_cart'] = $result['discount_amount'];

    $result['amount_'.$j] = $result['shipping'];

    unset($result['discount_amount']);
    unset($result['shipping']);
    unset($result['discount_amount_cart']);
    unset($result['amount_'.$j]);
    return $result;

?>
1

Ok. See if you change the base currency you will see all your product price in that currency which is not good solution. You all need to rewrite some blocks and model in Paypal.

  1. app/code/local/youthemename/Paypal/Block/Standard/Redirect.php
  2. app/code/local/youthemename/Paypal/Model/Standard.php

Here is the link for what will contain in Redirect.php file

http://chandreshrana.blogspot.in/2014/07/inr-currency-convert-issue-with-paypal.html

http://chandreshrana.blogspot.in/2013/12/paypal-payment-method-not-display-with.html

Important Note: This Paypal Integration will work for you and it is also works for me , But There is major issue for Paypal integration for Magento in India which I still able to not solve, If you will please let me know. That is once you integrate paypal module after successful successful traction through will will get suspected fraud status in magento, this is just because Paypal accepting payment in Doller and it simply returns dollar in response.

Remember That, Paypal not support INR You need to convert INR into USD or paypal supporting currency. I did bit research on it If you want more help I will there for you. Comment below for more info.

1
  • And welcome to stack exchange community.. Feb 12, 2016 at 14:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.