Magento는 페이팔 결제 방법으로 프로그래밍 방식으로 주문을 만듭니다.


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에 토큰을 보내서 요청을 시작해야합니다.

실제로 두 번째 지불은 필요하지 않지만 기록을 유지하려면 필요합니다 (읽을 수있는 한) 다른 Magento 인스턴스에 대해 가짜 PayPal 지불 방법을 만들고 전송 할 때 지불 방법으로 설정하는 것이 좋습니다 순서.

Inchoo가 이미 이것을 자세히 설명했듯이 (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결제 수단을 작성할 수 있습니다.

이것을 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.