Callback уведомления сбербанк эквайринг что это
Перейти к содержимому

Callback уведомления сбербанк эквайринг что это

  • автор:

Переход на callback-уведомления Сбербанка

Недавно произошло обновление в личном кабинете Сбербанка, где специалисты добавили возможность настройки callback-уведомлений любому пользователю. Этим нововведением нужно воспользоваться, эта статья поможет Вам понять, почему важен переход на данный тип уведомлений

Но сейчас уже работает, зачем вводить новое?

В системе существует специально написанная функция, которая запрашивает информацию об успешной оплате. Данный функционал работоспособен, но имеет свои недостатки:

  1. В редких случаях ожидание ответа от сервера Банка может занять до 15-и минут. Это очень долго;
  2. В редких случаях, может поступить два уведомления по одному заказу, что мешает работе.

В системе используется следующая схема взаимодействия:

Мы хотим сделать так, чтобы созданный и самое главное оплаченный заказ, оказался в обработке у администраторов как можно быстрее. Благодаря функции callback-уведомлений, подобное будет доступно.
При работе по новой схеме, Сбербанк будет самостоятельно отправлять уведомления об успешной оплате, платформе не будет производить лишних запросов, тем самым быстрее будет происходить обработка и создание оплаченных заказов онлайн.

Что необходимо сделать?

Вам достаточно выполнить простую и подробную инструкцию по подключению: Подключение Callback-уведомлений Сбербанка, о которой мы уже рассказывали в обновлении: Обновление за сентябрь 2022 г.
Настройки проводятся только на стороне личного кабинета Сбербанка, в платформе ничего делать не нужно.
Наша техническая поддержка готова оказать помощь в подключении данного функционала, если у Вас возникнут трудности.

Обработка уведомлений в SmartPay

Платежный сервис отправляет callback-уведомления провайдеру по следующим событиям: активация, отмена и продление подписки. Уведомление приходит на URL, который был указан при получении доступа к подпискам. Формат уведомления различается по типу события и набору передаваемых полей.

Формат запроса 
Активация подписки 

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение ACTIVATE — создание новой подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор созданной подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceId string
Идентификатор платежа для оформления подписки
invoiceDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата создания счета для оформления подписки
paymentResult string
Статус оплаты. Для активации придет значение CONFIRMED — оплачен
currentPeriod string
Название первого периода подписки:
• PROMO — бесплатный период
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата окончания первого периода

Пример

  "smartAppId": 3, "userId": "a4d32f. ", "subscriptionId": 111111, "partnerSubscriptionId": null, "invoiceId": "876. ", "invoiceDate": "2021-09-10T10:20:51+03:00", "paymentResult": "CONFIRMED", "addParameters": "", "operationType": "ACTIVATE", "productCode": "SberdeviceLite", "currentPeriod": "STANDARD", "endCurrentPeriodDate": "2021-10-10T10:21:15+03:00" > 

Отмена подписки 

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение CLOSED — отмена подписки по инициативе пользователя
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор отменяемой подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата отправки уведомления
currentPeriod string
Название отмененного периода подписки:
• PROMO — бесплатный период
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Текущие дата и время отмены подписки

Успешное продление подписки 

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение PROLONG — успешное продление подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор продлеваемой подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceId string
Идентификатор счета для продления подписки
invoiceDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата создания счета для продления подписки
paymentResult string
Статус оплаты. Для продления передается значение CONFIRMED — оплачен
currentPeriod string
Следующий период подписки:
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата окончания следующего периода

Подписка не продлена 

Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление. Принимает значение DECLINED — неуспешное продление подписки
smartAppId long
Идентификатор смартапа в платежном сервисе
userId string
Идентификатор пользователя, переданный в запросе на создание подписки
subscriptionId long
Идентификатор продлеваемой подписки
addParameters string
Список дополнительных параметров, которые передавались в запросе на подключение подписки
productCode string
Артикул (код продукта подписки)
invoiceId string
Идентификатор счета для продления подписки
invoiceDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата создания счета для продления подписки
paymentResult string
Статус оплаты. Для неуспешного продления придет значение CANCELLED — подписка не оплачена
currentPeriod string
Текущий период подписки:
• START — период с пониженной стоимостью
• STANDARD — период по умолчанию, действует до конца подписки
• GRACE — период повторных попыток списания. В течение периода контент не блокируется
• HOLD — период повторных попыток списания. В течение периода контент блокируется
endCurrentPeriodDate string (или OffsetDateTime – «yyyy-MM-dd’T’HH:mm:ssXXX»)
Дата окончания текущего периода

Формат ответа 

Ответы провайдера для следующих типов уведомлений:

  • Активация подписки
  • Отмена подписки
  • Успешное продление подписки
  • Подписка не продлена
Атрибут Описание
operationType string
Тип операции, по которой отправляется уведомление
smartAppId long
Идентификатор смартапа в платежном сервисе
subscriptionId long
Идентификатор продлеваемой подписки
result boolean
Результат ответа.
• True – подтверждающий ответ
• False – ошибка или отказ в подтверждении
resultMessage string
Содержание ответа. Необязательное поле
code long
Код ответа.
• 200 – подтверждающий ответ
• 500 – ошибка или отказ в подтверждении
partnerSubscriptionId long
Идентификатор подписки у провайдера. Необязательное поле

Примеры

  "smartAppId": "3", "subscriptionId": 111111, "code": 200, "partnerSubscriptionId": null, "operationType": "ACTIVATE", "result": true, "resultMessage": "" > 

Ошибка или отказ в подтверждении

  "smartAppId": "4", "subscriptionId": 589219, "code": 500, "partnerSubscriptionId": null, "operationType": "ACTIVATE", "result": false, "resultMessage": "Подписка не найдена" > 

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.

Документация
Наши продукты
Юридические документы

© 1997–2024 ПАО СберБанк. Генеральная лицензия на осуществление банковских операций от 11 августа 2015 года. Регистрационный номер — 1481

Каким образом произвести настройку callback уведомлений от Сбербанк?

Доброго времени суток!
На данный момент на сайте настроен способ оплаты с помощью сбербанк.
Оплата проходит успешно.
В вариантах оплаты от сбербанка существует возможность произвести оплату с помощью приложения.
1) покупатель на странице оплаты Сбербанка выбирает соответствующий пункт
2) после чего, на указанный номер, приходит пуш уведомление о том, что есть возможность произвести оплату с помощью мобильного приложения Сбербанк
3) покупатель авторизовывается в приложении и производит оплату. Но если перед оплатой покупатель закрыл станицу оплаты на стороне сайта, тогда в Битрикс не приходит информация о том, что произведена оплата.
Сбербанк ответил так:
Плагин изменяет статус заказа в случае, если был успешный редирект на страницу об успешной оплате, таким способом, он получает информацию об успешной оплате заказа.
В случае, если переход не осуществился ( страница была закрыта ) платежный плагин не может получить информацию о статусе заказа.
Для избежания таких ситуаций, мы рекомендуем подключить Callback уведомления ( уведомления, направляемые через программный интерфейс при смене статуса заказа)
Подробнее о функционале CallBack уведомлений, Вы можете прочесть по ссылке: https://securepayments.sberbank.ru/wiki/doku.php/i.

Подскажите, кто-нибудь сталкивался с подобным/ настраивал ли Callback уведомления?

  • Вопрос задан более трёх лет назад
  • 2443 просмотра

Комментировать
Решения вопроса 1
malayamarisha @malayamarisha Автор вопроса

Вдруг кому пригодится.
В Битрикс появилась возможность настройки платежной системы Сбербанк (sberbankonline)
Подробнее можно ознакомиться здесь
Теперь, если на странице оплаты покупатель выбрал оплату с помощью пуш уведомлений и после закрыл страницу оплаты, то в админке у заказа (в случае успешной оплаты) проставляется статус «Оплачено»

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

php

  • PHP
  • +2 ещё

Кодировка и соединение БД битрикс в utf8mb4?

  • 1 подписчик
  • 7 часов назад
  • 54 просмотра

Обработка callback от Cбера как дополнительный инструмент подтверждения оплаты

В модулях эквайринга от Сбера происходит редирект на страницу банка, на которой происходит оплата. После оформления оплаты, Сбер отправляет клиента на страницу удачной или неудачной оплаты. На странице удачной оплаты происходит обработка оплаты на стороне сайта и обновление статусов оплаты. Но если клиент не дождался, пока Сбер перекинет его на страницу удачной оплаты, то банк получит деньги, а сайт об оплате не узнает.

Чтобы избежать такой ситуации, у Сбера есть функционал callback, который обращается к указанной странице на сайте в фоновом режиме, независимо от клиента. И если callback не получил от страницы статус 200, то он будет пытаться сделать это еще шесть раз с интервалом 10 минут.

Описание задачи

Нужно сделать страницу, которая будет получать данные от Cбера об оплате заказа. При благополучной обработке данных, страница должна вернуть код 200, иначе — 500.

Решение

Callback-уведомление обращается к сайту через указанный адрес и передает параметры оплаты через get-запрос вида https://myshop.ru/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&operation=deposited&status=0

Передаваемые параметры

Наименование параметра;Тип;Описание

mdOrder;ANS36;Номер заказа в платежной системе orderNumber;AN..32;Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы operation;N..9;Тип операции:approved — операция холдирования суммы, deposited — операция завершения, reversed — операция отмены, refunded — операция возврата status;N1;Индикатор успешности операции, указанной в параметре operation (1 — операция прошла успешно, 0 — операция завершилась ошибкой)

Код обработчика

  $value) < file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/callback/callback.log", $key . ' - ' . $value . PHP_EOL, FILE_APPEND); >$status = 500; if($_GET['status'] == 1) < $order_id = explode('_',$_GET['orderNumber'])[0]; $arOrder = CSaleOrder::GetByID($order_id); $sberNumber = $_GET['mdOrder']; $sberOperation = $_GET['operation']; $arOrderFields = array('NUM_SBER' =>$sberNumber); if ($sberOperation == 'approved' || $sberOperation == 'deposited') < // Статус заказа CSaleOrder::StatusOrder($order_id, 'P'); CSaleOrder::PayOrder($order_id, "Y", true, true); CSaleOrder::DeliverOrder($order_id, "Y"); AddOrderProperty(21, $sberNumber, $order_id); AddOrderProperty(23, strtoupper($sberOperation), $order_id); CSaleOrder::Update($order_id, $arOrderFields); file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/callback/callback.log", PHP_EOL . 'Заказ '.$order_id . ' - ' . $sberOperation . PHP_EOL, FILE_APPEND); >$status = 200; > file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/callback/callback.log", PHP_EOL . 'log finish' . PHP_EOL, FILE_APPEND); http_response_code($status); 

Если оплата прошла успешно, то полученные в запросе данные добавляем в заказ и меняем статус, возвращаемый страницей на 200 с исходных 500.

Организация тестирования обработчика

Для тестирования обработчика запрашиваем по email у ТП Сбера активировать callback для тестовой среды эквайринга. При подключении эквайринга есть тестовая среда — тестовые логин и пароли, и боевая — с боевыми логинами и паролями для доступа модуля оплаты к API Сбера, при которой происходит обработка настоящих платежей с настоящих карт.
ТП активирует callback для тестовой среды, но для страницы обработчика с боевым доменом. Для других доменов они ничего настроить не могут.

На песочнице в настройках обработчика платежей указываем логины и пароли от тестовой среды.

На боевом сайте делаем редирект со страницы, на которую приходит callback, уведомление на соответствующею страницу на песочнице.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *