2017-02-03 2 views
1

Я недавно включил услугу paypal Pro, и теперь я настраиваю ее для своей версии 1.6.1.1 PrestaShop.PrestaShop. set error url for paypal

Я должен указать URL страницы благодарности и страницу с ошибкой.

Для страницы благодарности у меня не было проблем, я смоделировал покупку и скопировал URL-адрес, поместив его.

Я использовал это:

module/paypal/submit?id_cart={id_cart}&id_module=97&id_order={id_order}&key={id_key} 

Я затруднился по настройке страницы ошибок URL.

В шаблонах/спереди я заметил, что для этого уже есть tpl. и paypal.php я нахожу эту функцию:

public function displayPayPalAPIError($message, $log = false) 
{ 
    $send = true; 
    // Sanitize log 
    foreach ($log as $key => $string) { 
     if ($string == 'ACK -> Success') { 
      $send = false; 
     } elseif (Tools::substr($string, 0, 6) == 'METHOD') { 
      $values = explode('&', $string); 
      foreach ($values as $key2 => $value) { 
       $values2 = explode('=', $value); 
       foreach ($values2 as $key3 => $value2) { 
        if ($value2 == 'PWD' || $value2 == 'SIGNATURE') { 
         $values2[$key3 + 1] = '*********'; 
        } 
       } 

       $values[$key2] = implode('=', $values2); 
      } 
      $log[$key] = implode('&', $values); 
     } 
    } 

    $this->context->smarty->assign(array('message' => $message, 'logs' => $log)); 

    if ($send) { 
     $id_lang = (int) $this->context->language->id; 
     $iso_lang = Language::getIsoById($id_lang); 

     if (!is_dir(dirname(__FILE__).'/mails/'.Tools::strtolower($iso_lang))) { 
      $id_lang = Language::getIdByIso('en'); 
     } 

     Mail::Send(
      $id_lang, 
      'error_reporting', 
      Mail::l('Error reporting from your PayPal module', (int) $this->context->language->id), 
      array('{logs}' => implode('<br />', $log)), 
      Configuration::get('PS_SHOP_EMAIL'), 
      null, 
      null, 
      null, 
      null, 
      null, 
      _PS_MODULE_DIR_.$this->name.'/mails/' 
     ); 
    } 

    return $this->fetchTemplate('error.tpl'); 

Есть ли правило маршрутизации, который вызывает шаблон ордера с крючком error.tpl?

ответ

1

Нет, для этого нет правила маршрутизации. Из того, что мне удалось понять, просмотрев код модуля, является то, что шаблон ошибки отображается, если текущее состояние заказа имеет шаблон электронной почты payment_error (шаблон состояния Payment Error).

Итак, если вы установили текущее состояние заказа в Payment Error и перейдете по той же ссылке, которую вы написали в вопросе, он должен отобразить шаблон ошибки.