2016-12-22 3 views
0

전 Prestashop 개발자로서 새로운데 PaymentModule을 만들려고합니다. 지불 방법을 보여 주어야하지만 구매가 잘 안되기 때문에 구매를 진행할 수 없습니다.Prestashop displayPaymentReturn hook url

누군가 내 hoodDisplayPaymentReturn 메소드를 실행하기 위해 리디렉션해야하는 위치를 알고 있습니까?

누군가 내게 구매하기위한 완전한 탐색 맵을 설명하면 매우 기쁠 것입니다.

어쨌든 후크와 페이지 간의 관계는 어디에서 찾을 수 있습니까?

답변

0

내가 지불 할 새 모듈을 가지고있을 때 나는 PrestaShop : bankwire가 제공 한 가장 간단한 것에 의존합니다.

내부에는 3 개의 후크가 있습니다.

HookPayment :

public function hookPayment($params) 
{ 
    if (!$this->active) 
     return; 
    if (!$this->checkCurrency($params['cart'])) 
     return; 

    $this->smarty->assign(array(
     'this_path' => $this->_path, 
     'this_path_bw' => $this->_path, 
     'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/' 
    )); 
    return $this->display(__FILE__, 'payment.tpl'); 
} 

hookDisplayPaymentEU :

public function hookDisplayPaymentEU($params) 
{ 
    if (!$this->active) 
     return; 

    if (!$this->checkCurrency($params['cart'])) 
     return; 

    $payment_options = array(
     'cta_text' => $this->l('Pay by Bank Wire'), 
     'logo' => Media::getMediaPath(_PS_MODULE_DIR_.$this->name.'/bankwire.jpg'), 
     'action' => $this->context->link->getModuleLink($this->name, 'validation', array(), true) 
    ); 

    return $payment_options; 
} 

hookPaymentReturn :

public function hookPaymentReturn($params) 
{ 
    if (!$this->active) 
     return; 

    $state = $params['objOrder']->getCurrentState(); 
    if (in_array($state, array(Configuration::get('PS_OS_BANKWIRE'), Configuration::get('PS_OS_OUTOFSTOCK'), Configuration::get('PS_OS_OUTOFSTOCK_UNPAID')))) 
    { 
     $this->smarty->assign(array(
      'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 
      'bankwireDetails' => Tools::nl2br($this->details), 
      'bankwireAddress' => Tools::nl2br($this->address), 
      'bankwireOwner' => $this->owner, 
      'status' => 'ok', 
      'id_order' => $params['objOrder']->id 
     )); 
     if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference)) 
      $this->smarty->assign('reference', $params['objOrder']->reference); 
    } 
    else 
     $this->smarty->assign('status', 'failed'); 
    return $this->display(__FILE__, 'payment_return.tpl'); 
} 
0

지불 모듈을 개발하려면 paymentpaymentReturn의 두 가지 기본 고리를 사용해야합니다.

payment 후크에서 특정 정보와 함께 지불 옵션을 표시해야합니다. 작동 예제를 보려면 bankwire 모듈을 확인하십시오. paymentReturn에 결제 확인 (또는 오류) 정보가 표시되어야합니다.

사용자가 결제 옵션 링크 (payment 후크에 표시됨)를 클릭하면 유효성 확인 및 처리를 수행해야합니다. 지불이 완료되면 (성공적으로 또는하지 않음) 모듈 기능 validateOrder (이 모듈의 부모 클래스 인 PaymentModule의 기능)을 호출해야합니다. 그 후 paymentReturn 후크를 실행할 컨트롤러로 리디렉션되어야합니다.

이것이 기본 프로세스입니다. 초심자를위한 쉬운 업무가 아니기 때문에 은행 송금 및 다른 지불 모듈을 체크하여 자신의 지불 모듈을하는 법을 더 잘 이해할 것을 강력하게 권장합니다.

행운을 빈다.