【问题标题】:Magento paypal express checkout issue for base currency INR基础货币 INR 的 Magento paypal 快速结帐问题
【发布时间】:2014-10-16 02:16:34
【问题描述】:

我在 Magento 中配置了 Paypal express checkout,当我将美元设置为基础货币时它工作正常,但我们知道 Paypal 不接受使用 INR 货币代码的付款,然后它会抛出“不支持货币”的异常

我必须将基础货币设置为 INR,有人遇到过这个问题吗?

【问题讨论】:

    标签: php magento paypal currency express-checkout


    【解决方案1】:

    还可以按照以下步骤转换 INR 货币价值并在 Paypal 中显示美元金额。

    打开app/code/core/Mage/Paypal/Block/Standard/Redirect.php

    搜索:

    foreach ($standard->getStandardCheckoutFormFields() as $field=>$value) {
    
    $form->addField($field, 'hidden', array('name'=>$field, 'value'=>$value));
    
    }
    

    替换为:

    foreach ($standard->getStandardCheckoutFormFields() as $field=>$value) {
    if($field == 'amount_1'):
    $from = 'INR';
    $to = 'USD';
    $price = $value;
    $newPrice = number_format(Mage::helper('directory')->currencyConvert($price, $from, $to),2);
    $form->addField($field, 'hidden', array('name'=>$field, 'value'=>$newPrice));
    elseif($field == 'amount_2'):
    $from = 'INR';
    $to = 'USD';
    $price = $value;
    $newPrice = number_format(Mage::helper('directory')->currencyConvert($price, $from, $to),2);
    $form->addField($field, 'hidden', array('name'=>$field, 'value'=>$newPrice));
    else:
           $form->addField($field, 'hidden', array('name'=>$field, 'value'=>$value));
    endif;
       }
    

    保存并关闭文件。

    【讨论】:

      【解决方案2】:

      当客户重定向到贝宝时,您可以使用此插件解决 INR 及其转换为美元的问题。请参阅here

      【讨论】:

        【解决方案3】:

        在这里检查这个问题Magento Paypal issues with base currency INR

        插件可用http://www.magentocommerce.com/magento-connect/paypal-all-currencies.html

        或者查看这篇关于magento commerce的文章http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/payment/tweak_paypal_standard_for_non-supported_base_currency

        或者去这个博客回答http://chandreshrana.blogspot.in/2013/12/paypal-payment-method-not-display-with.html

        代码

        Go to app/code/core/Mage/Paypal/Model/Config.php
        
        Change this array
        protected $_supportedCurrencyCodes = array('AUD', 'CAD', 'CZK', 'DKK', 'EUR', 'HKD', 'HUF', 'ILS', 'JPY', 'MXN','NOK', 'NZD', 'PLN', 'GBP', 'SGD', 'SEK', 'CHF', 'USD', 'TWD', 'THB');
        
        To
        
        protected $_supportedCurrencyCodes = array('AUD', 'CAD', 'CZK', 'DKK', 'EUR', 'HKD', 'HUF', 'ILS', 'JPY', 'MXN','NOK', 'NZD', 'PLN', 'GBP', 'SGD', 'SEK', 'CHF', 'USD', 'TWD', 'THB','INR');
        
        Another trick :
        
        Go to app/code/core/Mage/Paypal/Model/Standard.php
        
        Then change this function
        
        public function canUseForCurrency($currencyCode)
            {
        return $this->getConfig()->isCurrencyCodeSupported($currencyCode);
            }
        
        To
        
        public function canUseForCurrency($currencyCode)
            {
           if($currencyCode == 'INR')
        {
        $currencyCode = 'USD';
        }
        return $this->getConfig()->isCurrencyCodeSupported($currencyCode);
            }
        

        【讨论】:

        • 我使用的是 paypal express checkout 而不是 paypal 标准,所以这对我不起作用
        • 这不是修复和正确的解决方案。您只是转换货币而不是金额。
        猜你喜欢
        • 2014-07-17
        • 2015-06-14
        • 2015-02-18
        • 2016-02-26
        • 2015-03-27
        • 2017-12-01
        • 2013-09-28
        • 2016-01-21
        • 1970-01-01
        相关资源
        最近更新 更多