Автор Тема: Paypal+Prestashop  (Прочитано 4563 раз)

08 Март 2013, 09:23:32
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.
Застрял на подключении модуля Paypal 3.5 к Prestashop 1.5.3.1
По кнопке chekout with paypal в Prestashop подставляется адрес из Paypal, но штат, в случае с USA, не подставляется.
На форумах эта проблема встречается часто, помимо этого, у людей есть проблема с редиректом в магазин после платежа.
Подскажите стабильно работающую связку Paypal-Prestashop, интересуют версии и список необходимых доработок.
08 Март 2013, 10:32:28
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105596
  • Репутация: +39548/-0
    • Просмотр профиля
    • Webstudio UwK
 PrestaShop 1.5.3.1 и PayPal 3.4.4 - установка и работа без проблем и доработок.
1. Вам нужно включить режим показа ошибок и проверить лог. Так можно найти причину ошибки и исправить. Переход на другие версии не гарантирует стабильную работу.
2. Если ошибка связанна только с функцией быстрой оплаты, то проверить файл
/modules/paypal/express_checkout/ajax.php
в нем дожнобыть подключение класса PayPal
include_once(dirname(__FILE__).'/../../../config/config.inc.php');
include_once(dirname(__FILE__).'/../../../init.php');
include_once(_PS_MODULE_DIR_.'paypal/paypal.php');
Cоздание интернет сайтов Webstudio UwK
08 Март 2013, 11:00:47
Ответ #2
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, Виталий! Сейчас посмотрю.
09 Март 2013, 09:59:16
Ответ #3
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Залил на хостинг Prestashop 1.5.3.1 и подключил входящий в пакет Paypal 3.4.5 (3.4.4 не смог найти).

При попытке оплатить paypal, любым способом, возникает ошибка: Notice: Undefined variable: tmp in /home/l/levitanus/teaside.ru/public_html/modules/paypal/api/paypal_connect.php on line 124

Смотрю в коде:
private function _connectByFSOCK($host, $script, $body)
 {
  $fp = @fsockopen('sslv3://'.$host, 443, $errno, $errstr, 4);

  if (!$fp)
   $this->_logs[] = $this->paypal->l('Connect failed with fsockopen method');
  else
  {
   $header = $this->_makeHeader($host, $script, strlen($body));
   $this->_logs[] = $this->paypal->l('Connect with fsockopen method successful');
   $this->_logs[] = $this->paypal->l('Sending this params:').' '.$header.$body;

   @fputs($fp, $header.$body);

   $tmp = '';
   while (!feof($fp))
    $tmp .= trim(fgets($fp, 1024));

   fclose($fp);

   if (!isset($result) || $result == false)
    $this->_logs[] = $this->paypal->l('Send with fsockopen method failed !');
   else
    $this->_logs[] = $this->paypal->l('Send with fsockopen method successful');
  }
  return $tmp ? $tmp : false;
 }

в то же время, если тестить на локальном хостинге (те же самые версии софта), то ошибки вот такие:
L_ERRORCODE0 -> 10002
L_SHORTMESSAGE0 -> Security error
L_LONGMESSAGE0 -> Security header is not valid
10 Март 2013, 13:37:43
Ответ #4
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22318
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Попробуй заменить
return $tmp ? $tmp : false;на
return (!empty($tmp)) ? $tmp : false;
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
10 Март 2013, 13:53:31
Ответ #5
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102479
  • Репутация: +34219/-0
    • Просмотр профиля
Ошибка 10002 имеет много причин.
Какой метод используете, тестовый или рабочий?
У вас PayPal Business?
Проверьте код API, чтобы при копировании не добавились служебные символы: пробелы, знаки табуляции и т.д.
Может быть проблема в конфигурации сервера. Проверьте лог ошибок php. Очень часто встречается ошибка:
Warning: curl_setopt() ... тогда нужно включить обработку редиректов.
11 Март 2013, 19:49:51
Ответ #6
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
не понимаю как отловить ошибку..

Подключил  модуль PayPal 3.4.5, настроен на тестовый бизнес-аккаунт, настройки:

- Already have a PayPal business account ?  Yes
- Payment Solution: Need PayPal to process all your card payments ? Choose Website Payments Standard
- Offer your customers a 3-click checkout experience: yes
- Use a Sandbox: Live mode (recommended)
- Payment type: Direct sales (recommended)

Заменил return $tmp ? $tmp : false; 
на
return (!empty($tmp)) ? $tmp : false;

По клику на кнопку "Checkout with PayPal" на странице магазина появляются сообщения в красной рамке, но они не информативны:
Error occurred: Please try to contact the merchant:
 1. PayPal response:
 2. ->
Выставил единицу в логировании на почту (присылать все), доходит аналогично:
A client has encountered a problem with the module PayPalAPI, see the report:
PayPal response:
->
Где посмотреть лог ошибок php?

В админке на странице Advanced Parameters > Logs ничего нет

- в файле config/defines.inc.php выставил:
define('_PS_MODE_DEV_', true);
- в папке public_html создал файл .htaccess (его почему-то на хостинге не было) и вбил туда строки:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log  /teaside.ru/public_html/PHP_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0

- файл /teaside.ru/public_html/PHP_errors.log тоже создан, права по максимуму 0777, но он все время пуст
- под конец в файле config\smarty.config.inc.php поставил $smarty->debugging = true; но портянка во всплывающем окне не сильно помогает
11 Март 2013, 21:33:20
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 21023
  • Репутация: +25282/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Цитировать
Где посмотреть лог ошибок php?
Доступ к серверным логам есть?
Или в админпанели хостинга есть фукция - Просмотр лога ошибок?
Валюта в Sandbox и магазине одинакова?
Попробуй перегенерировать API в Sandbox.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
13 Март 2013, 19:31:18
Ответ #8
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите, что еще может быть..
Пробовал и тестовый, и рабочий метод. И тестовые (из Sandbox) и рабочие API Credentials. Создал новый тестовый бизнет-аккаунт. Не помогает.
error_log, что лежит рядом с public_html в админке хостинга содержит что-то не о том:
"[Wed Mar 13 05:06:07 2013] [error] [client 89.189.191.30] File does not exist: /home/.../public_html/administrator, referer: TEASIDE.ru/administrator/index.php"
Буквально на днях, пока возился с PP Sandbox, заметил, что он изменился, стал теперь работать через https://developer.paypal.com, на котором заводит тестовые аккаунты, но для этого просит теперь залогиниться через живой (а не тестовый) ПП-аккаунт. Почти одновременно у меня перестал работать с PayPal магазин на ocStore (да, пробовал еще и opencart) - просто поставил ocStore, прикрутил оплату ПП, заработало. Через пару дней положил рядом на второй домен Престу, больше ничего не трогал, но оплата тоже перестала проходить.
Сегодня грохнул ocStore и на второй домен поставил Prestashop 1.4.9.0 + PayPal  v3.0.9, ошибка один в один с Prestashop 1.5.3.1 + PayPal  v3.4.5, и логи тоже пустые:
Error occurred: Please try to contact the merchant:
   1.   PayPal response:
   2.   ->
Так вот, думаю, либо с хостингом что-то, либо с PayPal.
- У кого в магазине оплата через PP (лучше даже Checkout with PP), проверьте, пожалуйста, все ли работает? Или, может быть, у кого-то есть тестовая связка Presta+PayPal для проверки?
- Что имеет смысл спросить у хостеров?
13 Март 2013, 19:33:33
Ответ #9
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Валюта в Sandbox и магазине одинакова?

валюта одна и та же
13 Март 2013, 23:24:19
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 33068
  • Репутация: +26762/-0
    • Просмотр профиля
PayPal работает. Домен com, владелец счета из Латвии. Prestashop 1.5.3.1 и PayPal  v3.4.5. Все работает и быстрая покупка тоже.
Проверял сегодня. Только акк на палке не тестовый, а рабочий.
14 Март 2013, 09:35:04
Ответ #11
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
PayPal работает. Домен com, владелец счета из Латвии. Prestashop 1.5.3.1 и PayPal  v3.4.5. Все работает и быстрая покупка тоже.
Проверял сегодня. Только акк на палке не тестовый, а рабочий.

да на рабочем тоже пробовал - та же история..
при этом, работало же сначала.. немного криво, но работало - а потом как корова языком слизнула.
может быть хостинг закрыл какие-то порты и paypal достучаться не может.. я уже не знаю в какую сторону думать.

хостинг у меня timeweb.ru - вроде даже рекомендовали его для prestashop
14 Март 2013, 12:58:22
Ответ #12
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22318
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Для начала, напиши в суппорт хостинга. Что они ответят. Логи посмотрят, может ограничения какие-то по безопасности и .т.д. Так легче и быстрее обнаружить проблему.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
14 Март 2013, 14:06:03
Ответ #13
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для начала, напиши в суппорт хостинга. Что они ответят. Логи посмотрят, может ограничения какие-то по безопасности и .т.д. Так легче и быстрее обнаружить проблему.

угу, написал..
19 Март 2014, 08:32:24
Ответ #14
  • Новичок
  • *
  • Сообщений: 1
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Помогите пожалуйста решить проблему :'( При попытке осуществления оплаты через PayPal сайт на Prestashop 1.5 выдает ошибку
 Please try to contact the merchant:
    <b>PayPal response:</b>
    TIMESTAMP -> 2014-03-19T04:26:02Z
    L_ERRORCODE0 -> 10002
    L_SHORTMESSAGE0 -> Security error
    L_LONGMESSAGE0 -> Security header is not valid
    L_SEVERITYCODE0 -> Error

Как поправить? Помогите, специалисты!