2016-12-22 11 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の2つのメインフックを使用する必要があります。

paymentフックでは、特定の情報とともにお支払いオプションを表示する必要があります。モジュールbankwireをチェックして、実際の例を見てください。 paymentReturnには、支払い確認(またはエラー)情報が表示されます。

ユーザーがお支払いオプションのリンク(paymentフックに表示されている)をクリックすると、確認と処理が行われます。支払いが完了した後(成功したかどうか)は、モジュール機能validateOrder(これはモジュールの親クラスPaymentModuleの機能です)を呼び出す必要があります。その後、paymentReturnフックを実行するコントローラにリダイレクトする必要があります。

これは基本的なプロセスです。初心者のための簡単な作業ではないので、自分の支払いモジュールのやり方をよりよく理解するために、銀行口座やその他の支払いモジュールをチェックすることを強くお勧めします。

幸運。