#Приём оплаты
Оплата картой в магазине. Работает через эквайринг Т-Банка.
Настройки → Настройки API → Приём оплаты.
| Поле | Что это |
|---|---|
| Терминал | номер терминала из личного кабинета банка |
| Пароль терминала | он же секретный ключ |
| Формировать чек | нужен, если к терминалу подключена онлайн-касса |
| Система налогообложения | УСН доходы, УСН доходы минус расходы, ОСН, патент, ЕНВД, ЕСХН |
| Ставка НДС | без НДС, 0 %, 10 %, 20 %, 10/110, 20/120 |
Терминал и пароль берутся в личном кабинете Т-Банка, раздел с реквизитами магазина. Пока не заполнены оба — кнопка оплаты не работает.
#Как проходит оплата
покупатель нажал «Оплатить»
→ сайт зовёт банк и получает адрес платёжной страницы
→ покупателя уводит на страницу банка
→ покупатель платит
→ банк присылает уведомление на /shop/pay/notify/
→ заказ помечается оплаченнымЗаказ считается оплаченным по уведомлению от банка, а не по возврату покупателя.
Возврат на «спасибо за оплату» — всего лишь переход по адресу. Его можно открыть руками, ничего не оплатив, а можно и не открыть вовсе, закрыв вкладку сразу после оплаты. Поэтому решает уведомление, и только с верной подписью.
Уведомление принимается, если сходится подпись: значения полей, отсортированные по имени, склеиваются вместе с паролем терминала, и от этого берётся отпечаток. Не сошлась — заказ не трогают, а в журнал пишется строка.
Оплатой считается только статус CONFIRMED. AUTHORIZED — это
заблокированные, но не списанные деньги; для двухстадийной оплаты он
ещё не оплата.
Повторное уведомление ничего не портит: уже отмеченный заказ второй раз не двигают.
#Что происходит после оплаты
- В заказе проставляется дата оплаты.
- Заказ переходит в статус, у которого стоит флажок **«Считать оплаченным»** — первый такой по порядку. Название статуса при этом любое.
- В рабочий чат уходит сообщение с номером заказа и суммой.
#Чек
Включайте «Формировать чек», только если к терминалу подключена онлайн-касса. Если касса есть, а чек выключен — банк вернёт ошибку и платёж не начнётся.
В чек уходят позиции заказа: название, цена, количество, сумма и ставка НДС. Почта и телефон покупателя добавляются, если они есть в заказе, — на них банк отправит чек.
#Проверка
Кнопка «Проверить связь» спрашивает у банка несуществующий заказ.
| Ответ | Что значит |
|---|---|
| «терминал отвечает, подпись принята» | всё в порядке |
| «подпись не принята» | неверный пароль терминала |
| «терминал или пароль не заданы» | заполнено не всё |
Ответ «заказ не найден» — тоже успех: значит банк принял подпись и дошёл до поиска заказа.
Проверка не списывает денег и не создаёт платежей.
#Что чаще всего идёт не так
«Банк не принял платёж». Точную причину банк присылает текстом, она показывается на экране и пишется в журнал сервера. Чаще всего это выключенный чек при подключённой кассе или неверная система налогообложения.
«Покупатель заплатил, заказ не оплачен». Смотрите журнал: строка
payNotify: подпись не сошлась означает, что пароль терминала в панели
не тот, что в банке. Уведомление банк повторяет ещё сутки с нарастающей
задержкой — исправьте пароль, и заказ отметится сам.
«Заказ оплачен, но остался в прежнем статусе». Ни у одного статуса заказа не стоит флажок «Считать оплаченным». Дата оплаты при этом проставляется всё равно.