Отправка счёта 1С

Как выставить счёт в 1С

Часто необходимо предоставить клиенту возможность удалённо оплатить заказ, причём не сразу, а тогда, когда будет удобно. В таких случаях, обычно, пользуются выставлением счетов для оплаты. Выставленный счёт высылается клиенту по электронной почте, клиент открывает письмо и переходит по ссылке для оплаты в любое удобное время. Иногда полезно ограничить допустимый срок оплаты, например, при резервировании товара. В случае использования нашего решения такая возможность выставления счетов по электронной почте присутствует изначально, в личном кабинете. Однако, при использовании 1С было бы неплохо автоматизировать процесс, особенно при большом количестве заказов. Это выполнимо с использованием нашего JSON-API.

При выставлении счёта возможно указать следующие параметры:

Тип Параметр Назначение Обязательный
1. pay_amount Сумма заказа к оплате Да
2. clientid Идентификатор клиента Нет
3. orderid Номер заказа Нет
4. service_name Наименование услуги Нет
5. client_email E-mail адрес клиента Да
6. client_phone Телефон клиента Нет
7. expiry Срок действия счёта в формате YYYY-MM-DD (не включительно) Нет
8. token Токен безопасности Да
Таблица 1. Параметры запроса «Подготовка счёта»

Для автоматического выставления счёта через API необходимо сформировать и отправить два запроса к серверу системы с необходимым набором данных из этого списка. Первый — непосредственно для формирования счёта, а второй — для его отправки клиенту.

Рассмотрим алгоритм работы более подробно:

  1. Получить актуальный токен для доступа к JSON API
  2. Подготовить набор данных для формирования запроса
  3. Сформировать запрос для предварительного просмотра с корректными заголовками
  4. Выполнить запрос для предварительного просмотра и проверить корректность ответа
  5. Сформировать запрос для отправки счёта с корректными заголовками
  6. Выполнить запрос для отправки счёта и проверить корректность ответа

Пример кода для 1С

Ниже рассмотрим пример реализации данного алгоритма для 1С:

В функцию ВыгрузитьЗаказыPayKeeper()  передаётся подготовленный массив с заказами, по которым будут отправлены счета.

В этой функции устанавливается соединение с сервером PayKeeper, с использованием логина и пароля любого пользователя личного кабинета, и получается токен для работы с личным кабинетом по JSON API:

Затем созданное соединение используется для отправки счетов:

В функции отправки ОтправитьДанныеPayKeeper();  для каждого элемента в массиве заказов формируется и отправляется POST-запрос с необходимыми данными для метода 3.4 JSON API. Обратите внимание на заголовок Content-Type для данных запросов. Он обязательно должен быть application/x-www-form-urlencoded, иначе система сообщит об ошибке.

В случае успешного завершения данного запроса сразу выполняется запрос 3.5 JSON API для отправки счёта клиенту:

В случае, если вы планируете самостоятельно формировать письмо со счётом клиенту, а не отправлять его средствами PayKeeper, можно исключить эту последнюю секцию кода, осуществляющую запрос 3.5 и использовать параметр invoice_url из ответа по запросу 3.4 для отправки ссылки на оплату клиенту.

Этот код является примером реализации автоматической отправки счетов из 1С с использованием JSON API, однако вполне может использоваться в реальном решении по интеграции с нашей системой.