Magento створює замовлення програмно за допомогою способу оплати через paypal


11

В даний час ми маємо два незалежних веб-сайти magento. Один веде себе як вітрина, а інший як задній. Користувач може розмістити замовлення на передньому кінці.

Таким же порядком я намагаюся створити програмно на задньому кінці. Коли користувач платить через checkmoспосіб оплати, він працює. Але коли користувач платить через PayPal, він не працює. Тож хтось знає, як ми можемо створити замовлення програмно за допомогою методів оплати PayPal? Це можливо чи ні?

$quote->getPayment()->importData(array(3) {
    [method] => paypal_express
    [last_trans_id] => 65Y31421KL2753028
    [additional_information] => Array
    (
        [paypal_express_checkout_shipping_method] => 
        [paypal_payer_id] => 5LX84SUFY39L4
        [paypal_payer_email] => abbas-buyer-2@bluewisesoft.com
        [paypal_payer_status] => verified
        [paypal_address_status] => Confirmed
        [paypal_correlation_id] => b78b4e5e6e527
        [paypal_express_checkout_payer_id] => 5LX84SUFY39L4
        [paypal_express_checkout_token] => EC-7P402752023166448
        [paypal_express_checkout_redirect_required] => 
        [paypal_protection_eligibility] => Eligible
        [paypal_payment_status] => pending
        [paypal_pending_reason] => authorization
    )
});

Помилка: шлюз PayPal відхилив запит. Для цього маркера вже виконано успішну транзакцію (# 10415: транзакцію відхилено через недійсний аргумент. Докладні відомості див. У додаткових повідомленнях про помилки).


Подібне запитання відповіло тут: magento.stackexchange.com/questions/211783/…
Sreejith Gopinath

Відповіді:


4

Створити замовлення за допомогою фактичного способу оплати PayPal неможливо, оскільки вам потрібно буде зробити фактичний платіж. Ось чому PayPal відхиляє запит; Вам також потрібно буде надіслати маркер (щоб ініціювати запит) на PayPal, щоб вони могли його підтвердити.

Оскільки вам насправді не потрібен другий платіж, але він потрібен для зберігання записів (наскільки я можу прочитати), можливо, було б розумно створити підроблений спосіб оплати PayPal для іншого екземпляра Magento і встановити його як спосіб оплати при перенесенні замовлення.

Як Інчоо вже детально пояснив це (це не так складно, як це звучить, оскільки вам потрібно буде лише реалізувати частину Magento), я не копіюватиму та вставляти її сюди, а лише надаватиму вам посилання; http://inchoo.net/magento/how-to-create-magento-payment-module/

Просто назвіть це "paypal_proxy_payment" або щось таке, і скористайтеся цим методом, і ви готові йти!


2

Я ділюсь одним посиланням у своїй відповіді. Будь ласка, перейдіть по ньому та просто скопіюйте вставте код у свій спеціальний контролер, тоді вам доведеться змінити спосіб оплати

всередині

$this->orderData = array(
    'session'       => array(
        'customer_id'   => $this->_sourceCustomer->getId(),
        'store_id'      => $this->_storeId,
        ),
    'payment'       => array(
        'method'    => 'checkmo',
         ),
    );

замість checkmoвас можна написати спосіб оплати.

Будь ласка, перевірте це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.