Службы доставки и платёжные системы
Службы доставки и платежные системы реализуются собственными классами-обработчиками на базе Delivery\Services\Base и PaySystem\ServiceHandler. При обработке внешних вебхуков об успешной оплате критически важно валидировать цифровую подпись, валюту и сумму заказа, а также обеспечивать идемпотентность для защиты от повторных списаний.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Обработчики доставок и ограничения
-
2
Обработчики платёжных систем
-
3
Свой обработчик оплаты
-
4
Возвраты и статусы оплат
Материалы
Официальная документация
Материалы BXMax
Проверь себя
Деньги списались, платёжный сервис отчитался об уведомлении, а оплата в заказе не отмечена. С чего начать?
С журнала платёжных систем и getIndicativeFields() обработчика: если он пуст или признаки не совпали с запросом, isMyResponse() не узнает уведомление, и sale_ps_result.php запишет «Pay system not found».
Платёжный сервис прислал одно и то же уведомление трижды. Что должен сделать обработчик?
Проверить подпись, сумму, валюту и статус, и для уже оплаченной оплаты вернуть успешный ServiceResult без типа операции. Сервис не тронет статус, а sendResponse() ответит OK, чтобы сервис перестал повторять.
Заказчик жалуется, что покупатель выбрал доставку, которая для его города недоступна. Где ошибка в коде?
Служба взята через getObjectById() по идентификатору из запроса. Список нужно получать через getRestrictedList() менеджера служб доставки с MODE_CLIENT для отгрузки, и только потом загружать выбранную.
Чем строгое ограничение платёжной системы отличается от мягкого?
Строгое исключает систему из списка в любом режиме, мягкое в режиме менеджера оставляет её с признаком RESTRICTED. PersonType и Site строгие всегда, Price и PercentPrice мягкие всегда.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить