# Руководство по подключению услуги Безопасная покупка сервиса Наложка

Услугу можно подключить к магазинам на OpenCart, InSales, Битрикс, [установив соответствующий модуль](https://help.nalogka.ru/business/safe-buy/get-started.html).
Данное руководство описывает процесс подключения Безопасной покупки к магазину на CMS, отличной от OpenCart, InSales, Битрикс.
## Добавьте новый способ оплаты
В первую очередь необходимо создать в системе новую платежную систему. Рекомендуемое название «Безопасная покупка (банковской картой)».

В качестве описания можно указать «Гарантия доставки или возврат денег» или более длинное «Оплата производится с использованием сервиса безопасных сделок. Вы сможете вернуть деньги если не получите заказ».
### Настройте прием платежа за заказ
Интернет-магазины бывают по разному устрены. В каких-то магазинах после создания заказа пользователю показывается кнопка «Оплатить», в каких-то, покупатель оправляется на оплату сразу после создания заказа.
Цель одна - отправить пользователя в платежный шлюз. Но прежде чем сделать это, необходимо выполнить ряд действий. Порядок действий как раз зависит от того как в вашем магазине происходит оплата.
#### Кнопка «Оплатить»

В таком случае перед тем как показать пользователю кнопку оплаты, то есть в момент создания заказа, необходимо:
1. Отправить [запрос на создание Безопасной сделки](https://api.nalogka.ru/deals.html#%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B4%D0%B5n%D0%BA%D0%B8-%D0%B4n%D1%8F-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%E2%80%91%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B0) в API сервиса Наложка.
2. Связать ID сделки с ID заказа в базе магазина.
3. Обработать ошибки в случае их возникновения.
4. Отобразить кнопку оплаты.
При нажатии но кнопку оплаты, пользователь должен отправляться на страницу оплаты (адрес страницы оплаты необходимо сгенерировать, информация о том, как это сделать, есть в документации).
TODO: Дать ссылку на документацию
#### Переход к оплате сразу после создания заказа
Если переход на оплату осуществляется сразу после оформления заказа, то первые три пункта совпадают, а четверный пункт будет таким:
4. Перенаправить покупателя на страницу оплаты.
Адрес страницы оплаты, как упоминалось выше, нужно сгенерировать. Инструкция есть в документации.
Со страницы оплаты покупатель будет автоматически перенаправлен на платежный шлюз. С платежного шлюза покупатель отправится на станицу успешной или неуспешной оплаты, адреса этих страниц должны быть переданы на страницу оплаты.
### Настройте отправку изображений товаров
Для осуществления арбитража, небходимо отправлять в сервис Наложка фотографии товаров из заказа. Чтобы не затяигивать процесс оплаты, предлагается прикреплять фотографии асинхронно, после создания и оплаты заказа.
Либо в обработчике уведомлений от сервиса Наложка, в момент когда пришло уведомление об успешной оплате, либо написать скрипт который будет брать все оплаченные заказы, изображения которых еще не были отправлены, и выполнять их отправку. Сам скрипт запускать по cron'у.
Подробнее о том – как работать с хранилищем файлов можно прочитать в соответствующем разделе [документации](https://api.nalogka.ru/misc/files.html).
### Создайте обработчик событий
Если вы хотите после оплаты менять статус заказа на «Оплачен», то вам необходимо создать обработчик событий, сделать его доступным по http и сообщить его адрес нам, например https://mysite.com/nalogka-events. Все уведомления от сервиса Наложка будут отправялять на этот адрес.
В частности, на этот адрес, после того как покупатель оплатит заказ, будет оправлено уведомление с данными сделки, которая была создана по заказу.
Также вы можете настроить изменение статусов заказа в зависимости от состояния сделки. Сервис Наложка отправляет вебхук-уведомления обо всех изменениях статуса сделки.
Посмотрите [диаграмму перехода статусов сделки](https://api.nalogka.ru/deals.html#%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D1%8B%D0%B5-%D1%81%D0%B4%D0%B5n%D0%BA%D0%B8), чтобы лучше понять что и в каком статусе происходит со сделкой.
#### Безопасность уведомлений
Чтоб защитить уведомления от подделки они подписываются электронной подписью по алгоритму RSA.
Подробнее можно прочитать в [документации по получению уведомлений](https://api.nalogka.ru/misc/notifications.html).
### Добавьте возможность указать к заказу трек-номер накладной СДЭК
После того как покупатель оплатил заказ, продавец должен отправить его через службу доставки СДЭК. Номер накладной отправленного заказа, необходимо передать в сервис Наложка. Мы будем отслеживать движение заказа и как только покупатель его заберет – инициируем процедуру выплаты продавцу.
Пример поля для ввода трек-номера в магазине на OpenCart:

Пример из магазина InSales:

API методы по добавлению трек номеров [описаны в документации](https://api.nalogka.ru/deals.html#api-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D1%8B%D1%85-%D1%81%D0%B4%D0%B5n%D0%BE%D0%BA), в пункте «Отслеживание процесса исполнения сделки».
> **Обратите внимание!**
> Для транспортной компании СДЭК, параметр `tracker_short_name` должен принимать значение `cdek`.
### Настройте синхронизацию заказа и сделки
В интернет-магазинах бывает возможность вносить изменения в заказ.
В заказе могут измениться: способ оплаты, способ доставки, количество товаров, информация о покупателе.
В случае если меняется контактная информаци покупателя – нужно обновить эту инфомрацию в сделке через метод обновления сделки.
Если меняется способ оплаты, то прежде чем сохранить изменение способа оплаты, нужно запросить отмену сделки и получить успешный ответ.
Если меняетя инфомация о товарах или тарифе доставки – то необходимо отменить сделку по заказу и создать новую, с новыми ценами. Это обсуловленно невозможностью менять инфомрацию о деньгах в уже созданных сделках.

Если изменился способ доставки на отличный от ТК СДЭК, то сделку тоже нужно отменить. Из схемы этот пункт не очевиден.
### Настройте отмену сделки при отмене заказа
Если отменяется заказ, то должна отмениться и сделка. Иначе покупатель не получит назад деньги, в тех случаях когда отменяется оплаченный заказ.
Отменить сделку можно через API запрос.
**Данное руководство рекомендуется читать параллельно с [документацией по интеграции с сервисами Наложка](https://api.nalogka.ru/).**
Вопросы по интеграции можно присылать на почту **a.endiuskin@nalogka.com**, в Skype: **phantomwd** или телеграм **@ultonic**.