Magento tworzy zamówienie programowo za pomocą metody płatności paypal


11

Obecnie mamy dwie niezależne strony Magento. Jeden zachowuje się jak witryna sklepowa, a drugi jako zaplecze. Użytkownik może złożyć zamówienie w interfejsie użytkownika.

Taką samą kolejność, którą próbuję utworzyć programowo na zapleczu. Gdy użytkownik płaci checkmometodą płatności, działa. Ale gdy użytkownik płaci za pośrednictwem PayPal, nie działa. Czy ktoś wie, jak możemy programowo tworzyć zamówienia przy użyciu metod płatności PayPal? Czy to możliwe czy nie?

$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
    )
});

Błąd: brama PayPal odrzuciła żądanie. Pomyślna transakcja została już zakończona dla tego tokena (# 10415: Transakcja została odrzucona z powodu nieprawidłowego argumentu. Aby uzyskać szczegółowe informacje, zobacz dodatkowe komunikaty o błędach).


Odpowiedzi:


4

Utworzenie zamówienia przy użyciu rzeczywistej metody płatności PayPal nie jest możliwe, ponieważ musisz dokonać faktycznej płatności. Dlatego PayPal odrzuca żądanie; musisz także wysłać token (w celu zainicjowania żądania) do PayPal, aby mogli go zweryfikować.

Ponieważ tak naprawdę nie potrzebujesz drugiej płatności, ale potrzebujesz jej do prowadzenia dokumentacji (o ile mogę przeczytać), rozsądnie byłoby stworzyć fałszywą metodę płatności PayPal dla drugiej instancji Magento i ustawić ją jako metodę płatności podczas transferu kolejność.

Jak to szczegółowo wyjaśnił Inchoo (nie jest to tak trudne, jak się wydaje, ponieważ musisz tylko zaimplementować część Magento) Nie skopiuję / wkleję go tutaj, ale dam ci tylko link; http://inchoo.net/magento/how-to-create-magento-payment-module/

Po prostu nazwij to „paypal_proxy_payment” lub coś w tym stylu i skorzystaj z tej metody i możesz zacząć!


2

Udostępniam jeden link w mojej odpowiedzi i proszę przejść przez niego i po prostu skopiować kod do niestandardowego kontrolera, a następnie trzeba zmienić metodę płatności

wewnątrz

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

zamiast tego checkmomożesz napisać metodę płatności.

Sprawdź to proszę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.