Magento 1.4 ошибка PayPal - PullRequest
       3

Magento 1.4 ошибка PayPal

1 голос
/ 22 июля 2010

Я пытаюсь запустить PayPal платеж в моем magento 1.4, но есть серьезная проблема с рабочим процессом.после того, как я выбрал PayPal и был перенаправлен на счет PayPal, чтобы отправить деньги, вы обычно автоматически возвращаетесь в магазин magento, чтобы завершить заказ, но в моем случае magento сообщает, что существует проблема с полем адреса.PayPal не отправляет адрес обратно в magento правильно:

Error: Please check shipping address information. Please enter last name.

это известная ошибка или есть исправление или обходной путь?

, пожалуйста, помогите!Thnx.

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Ошибка, похоже, в / app / code / core / Mage / Paypal / Model / Api / Nvp.php . Похоже, переменные не очень хорошо отображаются. Поскольку я не смог найти конкретную ошибку в этом файле, я сделал несколько грязных решений в / app / code / core / Mage / Paypal / Model / Express / Checkout.php .

В 1.4.2 просто замените метод returnFromPaypal () на следующий код ...

public function returnFromPaypal($token)
{
    $this->_getApi();
    $this->_api->setToken($token)
        ->callGetExpressCheckoutDetails();

    // import billing address
    $billingAddress = $this->_quote->getBillingAddress();
    $exportedBillingAddress = $this->_api->getExportedBillingAddress();

    // import shipping address
    $exportedShippingAddress = $this->_api->getExportedShippingAddress();
    if (!$this->_quote->getIsVirtual()) {
        $shippingAddress = $this->_quote->getShippingAddress();
        if ($shippingAddress) {
            if ($exportedShippingAddress) {
                foreach ($exportedShippingAddress->getExportedKeys() as $key) {
                    if('firstname' == $key || 'lastname' == $key){
                        continue;
                    } // if
                    $shippingAddress->setDataUsingMethod($key, $exportedShippingAddress->getData($key));
                    $billingAddress->setDataUsingMethod($key, $exportedShippingAddress->getData($key));
                }

                // Correct First- and Lastnames
                list($_firstname, $_lastname) = explode(' ', $exportedShippingAddress->getData('firstname'));

                $shippingAddress->setDataUsingMethod('firstname', $_firstname);
                $billingAddress->setDataUsingMethod('firstname', $_firstname);

                $shippingAddress->setDataUsingMethod('lastname', $_lastname);
                $billingAddress->setDataUsingMethod('lastname', $_lastname);

                $shippingAddress->setCollectShippingRates(true);
            }

            // import shipping method
            $code = '';
            if ($this->_api->getShippingRateCode()) {
                if ($code = $this->_matchShippingMethodCode($shippingAddress, $this->_api->getShippingRateCode())) {
                     // possible bug of double collecting rates :-/
                    $shippingAddress->setShippingMethod($code)->setCollectShippingRates(true);
                }
            }
            $this->_quote->getPayment()->setAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_SHIPPING_METHOD, $code);
        }
    }
    $this->_ignoreAddressValidation();

    // import payment info
    $payment = $this->_quote->getPayment();
    $payment->setMethod($this->_methodType);
    Mage::getSingleton('paypal/info')->importToPayment($this->_api, $payment);
    $payment->setAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_PAYER_ID, $this->_api->getPayerId())
        ->setAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_TOKEN, $token)
    ;
    $this->_quote->collectTotals()->save();
}

Измененный код заменяет весь платежный адрес на адрес доставки и помещает имя, указанное в $ firstname, в $ firstname и $ lastname.

не чисто, но работает. : -)

0 голосов
/ 24 ноября 2010

если удача найдет решение, у меня та же проблема.

--- обновление ---

Я, наконец, понял, что происходит на этом для меня. У меня был установлен модуль Custom Shipping Admin Admin, и он переопределял адресный контроллер, который проверяет заказ. Я обновил переопределенный модуль, чтобы отразить версию Magento, на которой я работал, и это сработало .. никаких проблем. Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...