Документация - СберБанк Эквайринг PRO

Заключить договор на интернет эквайринг можно по ссылке https://www.sberbank.ru/ru/s_m_business/bankingservice/acquiring_total
После этого вам выдадут логин и пароль api, эти данные используйте в модуле.

Магазины версии 3.х Установка:
1) Установить модуль через Установщик модулей, в модификациях (менеджер дополнений) нажать обновить
2) Установить модуль в админ панель -> Дополнения -> Оплата -> Сбербанк Эквайринг-> Установить (если вы не видите модуль то файлы модуля не были записаны, выполните установку вручную)
3) Ввести настройки модуля: имя и пароль Api
4) Сообщить Сбербанку ссылку callback - указана в настройках модуля (не обязательно, но рекомендуется, опция в настройках делать запрос на страницы удачной оплаты уже включена по умолчанию, если вы включили callback на стороне банка, то отключите опцию Проверка платежа и смена статуса заказа на странице удачной оплаты) ВНИМАНИЕ если у вас был установлен стоковый модуль, то ссылка на уведомления может установлена на него, обязательно смените ссылку на новый адрес от данного модуля
5) Установить статус включено

Установка вручную
1) Скопируйте все из папки upload в корень сайта
3) обновите кеш модификаторов и кеш twig
4) вернитесь к основной установке пункт 2

Магазины версии 2.0, 2.1, 2.2, 2.3 Установка:
1) Установить модуль через Установщик модулей, в модификациях (менеджер дополнений) нажать обновить
2) Установить модуль в админ панель -> Дополнения -> Оплата -> Сбербанк Эквайринг-> Установить (если вы не видите модуль то файлы модуля не были записаны, воспользуйтесь фиксом по ссылке или выполните установку вручную)
3) Ввести настройки модуля: имя и пароль Api
4) Сообщить Сбербанку ссылку callback - указана в настройках модуля (не обязательно, но рекомендуется, опция в настройках делать запрос на страницы удачной оплаты уже включена по умолчанию, если вы включили callback на стороне банка, то отключите опцию Проверка платежа и смена статуса заказа на странице удачной оплаты) ВНИМАНИЕ если у вас был установлен стоковый модуль, то ссылка на уведомления может установлена на него, обязательно смените ссылку на новый адрес от данного модуля
5) Установить статус включено

Установка вручную
1) Скопируйте все из папки upload в корень сайта
2) переименуйте install.xml в sb.ocmod.xml и установите через установщик или положите в папку system
3) обновите кеш модификаторов
4) вернитесь к основной установке пункт 2

Магазины версии 1.5 Установка:

1) Скопировать все из папки Upload в корень сайта
2) Установить модуль в админ панель -> Дополнения -> Оплата -> Сбербанк Эквайринг-> Установить
3) Ввести настройки модуля: имя и пароль Api
4) Сообщить Сбербанку ссылку callback - указана в настройках модуля (не обязательно, но рекомендуется. Опция в настройках делать запрос на страницы удачной оплаты уже включена по умолчанию, если вы включили callback на стороне банка, то отключите опцию Проверка платежа и смена статуса заказа на странице удачной оплаты) ВНИМАНИЕ если у вас был установлен стоковый модуль, то ссылка на уведомления может установлена на него, обязательно смените ссылку на новый адрес от данного модуля
5) Установить статус включено

 

Обновление версии модуля

1) Сделайте резервную копию сайта (файлы и база)
2) Удалить модификатор модуля (только для магазинов 2.х)
3) Произвести стандартную установку из раздела установка для Вашей версии магазина с перезаписью файлов
4) Обязательно ввести повторно пароль api и пересохранить настройки, обязательно обновить кеш (для опенкарт 3 обновить еще кеш twig)
5) Если файлы template модуля корректировались под шаблон обязательно произвести повторную коррекцию.
6) Если вы сообщали банку ссылку callback и просили включить уведомления о оплате на данный адрес, убедитесь что у банка установлена корректная ссылка (через поддержку банка) и в модуле она не изменилась (указана в настройках модуля) , если вы не сообщали банку ссылку, то пропустите этот шаг.

 

Переход на версию PRO со старой "обычной" версии

  1. Удалите предыдущие модификаторы (от старой версии)
  2. Найдите и удалите старые языковые файлы (в разных версиях по указанным путям может и не быть файла) - catalog/language/en-gb/extension/payment/sbacuiring.php , catalog/language/en-gb/payment/sbacuiring.php , catalog/language/en-gb/account/sbacuiring.php, admin/language/en-gb/extension/payment/sbacuiring.php , admin/language/en-gb/payment/sbacuiring.php, catalog/language/english/extension/payment/sbacuiring.php , catalog/language/english/payment/sbacuiring.php , catalog/language/english/account/sbacuiring.php, admin/language/english/extension/payment/sbacuiring.php , admin/language/english/payment/sbacuiring.php
  3. Полностью удалите модуль из раздела платежи (оплата)
  4. Установите модуль согласно инструкции УСТАНОВКА выше с перезаписью файлов

 

Подключение онлайн-кассы

  1. Для работы без дополнительных модулей зарегистрируйте кассу Атол-онлайн по ссылке (если вы выбрали урезанный тариф без офд, зарегистрируйте ОФД.РУ по ссылке), либо зарегисрируйте кассу FERMA в ОФД.РУ, зарегисрируйте кассу в фнс
  2. В личином кабинете банка найдите раздел фискализация, если такой раздел не видите то обратитесь в поддержку банка для включения данного раздела
  3. Выберете вашу кассу из списка доступных
  4. Введите настройки от Вашей кассы
  5. В настройках модуля активируйте Передача корзины - ДА (активен по умолчанию)

Маркировка

Для работы с маркированными товарами включите в настройках модуля опцию Маркировка - ДА
Установите признак сбособа расчета ПРЕДОПЛАТА
Второй чек ПОЛНЫЙ РАСЧЕТ проводится через кабинет банка, присвойте код маркировки товару в специальном поле.

FAQ

1. При переходе на оплату пишет No Data 

Смотреть журнал ошибок - расшифровка ошибок пункт 2, 3, 4, ошибки с кодом Sbacuiring error: ТЕКСТ - не описанные в данном руководстве вы можете найти в документации банка

2. В журнале ошибок запись "Доступ запрещен"

Это означает что не верный логин или пароль (Внимание! Вводить логин и пароль API, а не Оператор)

  1. Вы выбрали не верный Адрес сервера в настройках для вашего логина и пароля (Выбирать тестовый или реальный, свой адрес только в исключительных случаях)
  2. Вы ввели не верный логин API (Попробуйте пересохранить логин, убедитесь что отсутвуют пробелы в начале и в конце. Логин API выдает Вам поддержка банка)
  3. Вы ввели не верный пароль API (Попробуйте пересохранить пароль, убедитесь что отсутвуют пробелы в начале и в конце. Сброс пароля API может помочь, подробности сброса пароля API уточняйте в поддержке банка) , убедитесь что пароль соответвует режиму тестовый или реальный (это разные пароли), также убедитесь что при реальных платежах вы совершили первоначальный сброс пароля api (как это делать вам подскажет поддержка банка)
  4. Вам не открыли доступ на стороне банка
  5. Пароль содержит спец символы (попробуйте использовать только ! восклицательный знак, он проверенно работает) или используйте метод file get contents

3. В журнале ошибок запись ( SberBank error: code= ), Sbacuiring error: ( без описания ошибки) - NEW Можно сменить метод запросов к банку в настройках модуля

/* Внимание убедитесь что в настройках модуля выбран адрес сервера тестовый или реальный (свой выбирать не надо, свой адрес используется только для функционала платежной страницы на стороне магазина) */

не работает полноценно curl (Внимание при такой ошибки только проблема с Curl у хостера)

curl собран с версией openssl ниже чем у банка (постоянно обновляется так как в нем появляются новые и новые дыры)

посмотреть можно в phpinfo в разделе curl (обязательно в разделе curl а не просто openssll искать, так как может на самом хостинге openssl новой версии а сам curl собран со старой или вообще без поддержки)

curl тестируется по следующему методу 

версия openssl на хостинге не ниже чем у банка, запросить актуальную версию вы можете в поддержке банка - иначе не работает CURL запрос к банку. Проверить версию можно с помощью phpinfo();, раздел CURL.

Проверка курл:

if ( $curl = curl_init() ) {
            
   echo "Curl init ok<br>";
            
   curl_setopt($curl, CURLOPT_URL, 'https://securepayments.sberbank.ru/payment/rest/register.do');

   $result = curl_exec($curl);
                     
   echo $result;

}
else { 
    echo 'No Curl'; 
}

Должен вывести в качестве result

{"errorCode":"5","errorMessage":"Доступ запрещён"}

Если такого нет, ничего не заработает. К хостеру, или сменить в настройках метод запросов к банку

Никакого отношения такой тест не к модулю не к опенкарту не имеет, все голый php

если он не проходит это означает что ваш curl собран с openssl ниже чем в данный момент у банка или он вообще собран без поддержки openssl

Варианты решения:

4. Ошибка PHP Warning: file_get_contents(): SSL: Connection reset by peer или file_get_contents: failed to open stream: Connection timed out

/* Внимание убедитесь что в настройках модуля выбран адрес сервера тестовый или реальный (свой выбирать не надо, свой адрес используется только для функционала платежной страницы на стороне магазина) */

Необходимо обновление openssl с поддержкой TLS на хостинге до актуальной версии банка
Какая версия TLS требуется банку вы можете узнать у них в поддержке
 

5. Кнопка для повторной оплаты не появляется в личном кабинете

Если шаблон личного кабинета далек от стандартного, то кнопка в личном кабинете может не появиться
 

Магазины 2.0, 2.1, 2.2 , 2.3 провести изменения в install.xml

     $(\'a.btn-info

     заменить на $(\'a

     или btn-info заменить на класс кнопки просмотра заказа

переименовать в install.ocmod.xml и установить через установщик (перед этим удалив старый модификатор)

не забыть обновить кэш


Магазины 1.5 , для вывода кнопки необходимо провести изменения описанные выше в файле vqmod/xml/sbacuiring.xml
 

6. Ошибка 404 на стороне шлюза

Скачайте архив статики платежных страниц и загрузите посторно (вкладка платежная страница)
 

7. На тестовых платежах при вводе данных реальной карты не проходит оплата

На тестовых платежах работают только тестовые карты.
Данные тестовых карт вы можете запросить в поддержки банка. (или найти в документации от банка которую вам возможно вкладывали в письмо, раздел тестовые карты)
Модуль не обратывает сами карты, обработка происходит только на стороне банка
 
9. На реальных платежах при вводе данных реальной карты не проходит оплата
 
Модуль не обратывает сами карты, обработка происходит только на стороне банка
Вам необходимо обратиться в поддержку банка
 
10. Иногда не меняется статус заказа
Сообщите в банк ссылку callback из настроек модуля и попросите включить уведомления о успешных платежах без контрольной суммы на этот адрес, после включения уведомлений в настройках отключите опцию проверять платеж на странице удачной оплаты
 
11. Активация отложенной оплаты (оплата после подтверждения заказа администратором)

Установите в настройках режим работы модуля - Отложенная оплата
Установите в настройках 3 РАЗНЫХ СТАТУСА созданного заказа, активации оплаты и полученной оплаты.
Для активации оплаты, необходимо в просмотре(не редактировании) заказа установить статус из настроек модуля - Статус для активации Отложенной оплаты и установить галку уведомить покупателя, нажать кнопку добавить историю
Для работы отложенной оплаты обязательно наличие модификатора в разделе Менеджер дополнений(Модификаторы) и обновленный кеш модификаторов (там же кнопка вверху стрелки по кругу)
ВНИМАНИЕ добавление ссылки для оплаты в письмо будет гарантированно работать только на Стандартных письмах о смене статуса магазина (если вы изменили стандартное письмо или используете шаблонизатор, то ссылки может не быть), ссылка в личном кабинете будет только на стандартных стилях шаблона личного кабинете, если стили отличаются от стандартов, то кнопки может не быть (исправить отображение кнопки в личном кабинете можно следую пункту 5 раздела FAQ)
 
12. Ошибка sberBank error: code=8 - [item.itemCode] дублируется
Ошибка возникает при нахождении в заказе товаров с одинаковым полем модель. Поле модель в товарах обязательно должно быть уникально.
 
13. Настройка признака способа и предмета расчета

В настройках модуля укажите Признак способа и предмета расчета - эти данные будут использоваться по умолчанию если вы выберите Признак предмета и/или способа для товара - пункт по умолчанию

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

Для индивидуальных значений необходимо выбрать поле из которого будет браться значение, список полей доступен в выпадающем списке.

Для значений в карточке товара указываете в нужном поле одно из следующих значиний

Признак предмета расчета

Значение Описание
1 Товар
2 Подакцизный товар
3 Работа
4 Услуга
5 Ставка в азартной игре
6 Выигрыш в азартной игре
7 Лотерейный билет
8 Выигрыш в лотерею
9 Результаты интеллектуальной деятельности
10 Платеж
11 Агентское вознаграждение
12 Несколько вариантов
13 Другое

 

Признак способа расчета

Значение Описание
1 Полная предоплата
2 Частичная предоплата
3 Аванс
4 Полный расчет
5 Частичный расчет и кредит
6 Кредит
7 Выплата по кредиту

 

14. Доступные переменные:

Некоторые переменные могут не работать в зависимости от версии магазина или места вывода

$href$ - ссылка на оплату
$orderlist$ - список заказа
$itogo$ - итого заказа в валюте магазина
$itogobez$ - итого заказа в валюте магазина без вывода валюты
$itogozakaz$ - итого заказа в валюте заказа без вывода валюты
$totals$ - итого заказа в валюте заказа
$komis$ - комиссия в процентах из настроек
$total-komis$ - подсчитанная комиссия
$plus-komis$ - сумма с комиссией
$order_id$ - номер заказа
$invoice_no$ - номер счета
$invoice_prefix$ - префикс счета
$store_id$ - id магазина
$store_name$ - название магазина
$store_url$ - url магазина
$customer_id$ - id покупателя
$customer_group_id$ - id группы покупателя
$firstname$ - имя
$lastname$ - фамилия
$telephone$ - телефон
$fax$ - факс
$email$ - почта
$payment_firstname$ - имя плательщика
$payment_lastname$ - фамилия плательщика
$payment_company$ - компания плательщика
$payment_address_1$ - адрес плательщика
$payment_address_2$ - адрес2 плательщика
$payment_postcode$ - индекс плательщика
$payment_city$ - город плательщика
$payment_zone_id$ - id гео зоны плательщика
$payment_zone$ - гео зона плательщика
$payment_zone_code$ - код зоны плательщика
$payment_country_id$ - id страны плательщика
$payment_country$ - страна плательщика
$payment_iso_code_2$ - iso код плательщика
$payment_iso_code_3$ - iso код плательщика
$payment_address_format$ - формат адреса плательщика
$payment_method$ - метод оплаты
$payment_code$ - код оплаты    
$shipping_firstname$ - имя для доставки
$shipping_lastname$ - фамилия для доставки
$shipping_company$ - компания для доставки
$shipping_address_1$ - адрес доставки
$shipping_address_2$ - адрес2 доставки
$shipping_postcode$ - индекс для доставки
$shipping_city$ - город доставки
$shipping_zone_id$ - id гео зоны доставки
$shipping_zone$ - гео зона доставки
$shipping_zone_code$ - код зоны доставки
$shipping_country_id$ - id страны доставки
$shipping_country$ - страна доставки
$shipping_iso_code_2$ - iso код доставки
$shipping_iso_code_3$ - iso код доставки
$shipping_address_format$ - формат адреса доставки
$shipping_method$ - метод доставки
$shipping_code$ - код метода доставки
$comment$ - комментарий
$total$ - итого (в валюте по умолчанию)
$order_status_id$ - id статуса заказа
$order_status$ - статус заказа
$language_id$ - id языка
$language_code$ - код языка
$language_filename$ - файл языка
$language_directory$ - дирректория языка
$currency_id$ - id валюты
$currency_code$ - код валюты
$currency_value$ - курс валюты
$ip$ - ip
$forwarded_ip$ - переадресованный ip
$user_agent$ - юзер агент
$accept_language$ - язык
$date_modified$ - дата изменения заказа
$date_added$ - дата создания заказа


Переменные и использование полей из Simple:
Название берется из вкладки "Настройка полей" строка ID


Для Simple 4.x
$paymentsimple4_имяполя$ - поле привязанное к адресу оплаты
$shippingsimple4_имяполя$ - поле привязанное к адресу доставки
$simple4_имяполя$ - поле привязанное к учетной записи покупателя или поле привязанное к методу

Выбор отображения отчества покупателя
Пример:
Отчество: $simple4_otchestvo$