API нового заказа
В примерах использована авторизация под администратором и выполнение функций с правами клиента. О способах авторизации вы можете узнать в статье взаимодействие через API.
Глоссарий
cart — новая корзина. Каждый клиент имеет одну корзину для каждого провайдера. Например, клиент относится к одному провайдеру, значит он имеет одну корзину и все позиции, которые он заказывает, попадают в эту корзину.
lineitem.id — позиция новой корзины.
order — заказ — одна или несколько позиций из корзины, для которых создаётся платёж.
Добавление позиции в корзину
API нового заказа похож на API старого заказа, поэтому значения дополнений и параметров передаются аналогично, дополнительные и отличающиеся параметры описаны ниже в таблице.
Для типов продукта SSL и Домен используйте функции вида {ITEMTYPE}.order.param. Чтобы добавить в корзину эти услуги через API с помощью быстрого заказа, используйте API старого заказа с параметрами clicked_button=quickbasket и force_use_new_cart=on.
Имя | Описание | Значение | Пример |
---|---|---|---|
func * | Функция заказа | v2.{ITEMTYPE}.order.param {ITEMTYPE} — внутреннее имя типа продукта | func=v2.soft.order.param func=v2.vds.order.param func=v2.dedic.order.param |
order_period * | Период заказа | Принимает одно из следующих значений:
| order_period=1 |
pricelist * | Идентификатор тарифного плана | Целочисленное значение | pricelist=111 |
sok * | Подтверждение операции | ok | sok=ok |
clicked_button * | Подтип операции | order | clicked_button=order |
autoprolong | Включить автопродление Флаг | Принимает одно из следующих значений:
| autoprolong=on |
datacenter | Идентификатор дата-центра, в котором будет открываться услуга | Целочисленное значение | datacenter=2 |
force_use_new_cart | Включить использование новой корзины Флаг | Принимает одно из следующих значений:
| force_use_new_cart=on |
out | Формат ответа | Принимает одно из следующих значений:
| out=xml |
addon_{ADDON_PRICELIST_ID} | Значение дополнения | Значение зависит от настройки дополнения в тарифном плане Дополнения тарифного плана по API передаются через параметр addon_. Например, addon_5=10, где
Чтобы найти код дополнения, перейдите в Продукты → Тарифные планы → кнопка Конфиг. → поле Id | addon_12=126 |
skipbasket | Включить оплату услуги с лицевого счёта без помещения в корзину Флаг | Принимает одно из следующих значений:
| skipbasket=on |
* — обязательный параметр
Пример запроса добавления позиции в корзину:
Ответ будет содержать id позиции новой корзины lineitem.id.
Пример ответа
Операции с корзиной
Имя | Описание | Значение | Пример |
---|---|---|---|
func * | Функция корзины | cart | func=cart |
clicked_button | Подтип операции | Принимает одно из следующих значений: activate — активация выбранных бесплатных позиций delete — удаление выбранных позиций apply_promocode — применение промокода ко всей корзине, независимо от выбранных позиций (нужен параметр promocode) | clicked_button=activate clicked_button=delete clicked_button=apply_promocode |
selected | Позиции (lineitem) выбранные для совершения операции | Список целочисленных значений Разделитель ',' | selected=105,106,107 |
sok | Подтверждение операции Необходимо указать в запросе, если присутствует параметр clicked_button | ok | sok=ok |
promocode | Промокод Необходимо указать, если параметр clicked_button=apply_promocode | Промокод | promocode=IDDQD |
* — обязательный параметр
Сводная информация по заказу
Функция: Cartorder
Возвращает сводную информацию по созданному заказу для отображения в интерфейсе:
где elid — идентификатор заказа (billorder)
Примеры
После добавления позиции в корзину возможны разные варианты взаимодействия с клиентом. Ниже приведены следующие примеры:
- отображение формы корзины, где клиент самостоятельно перейдёт к оформлению;
- активация бесплатной позиции;
- создание заказа и его оплата.
Отображение формы корзины
Для отображения формы корзины отправьте пользователя по ссылке вида:
Перейдя по ссылке клиент окажется в корзине с выбранной позицией (lineitem.id) и её стоимостью и сможет перейти к оплате заказанной позиции либо продолжить покупки.
Используйте этот вариант взаимодействия, если:
- для оплаты необходим плательщик, но клиент ещё не создавал его. При оформлении заказа клиент укажет все необходимые данные для плательщика через интерфейс биллинговой платформы;
- необходимо подтверждение телефона или почты перед оплатой. При оформлении заказа клиенту будет предложено пройти верификацию.
Активация бесплатной позиции
Активировать бесплатную позицию можно двумя путями: указать skipbasket=on при заказе услуги либо воспользоваться запросом:
Пример запроса
Если запрос завершился успешно, то позиции объединятся в заказ (billorder) и будут обработаны в ближайшее время.
Пример ответа
Создание и оплата заказа
Для получения ссылки на оплату необходимо создать и подтвердить заказ выбранных позиций (lineitem).
Имя | Описание | Значение | Пример |
---|---|---|---|
func * | Функция создания заказа для выбранных позиций | cartorder.create.confirm | func=cartorder.create.confirm |
elid * | Позиции (lineitem), выбранные для заказа | Список целочисленных значений разделитель ',' | elid=105,106,107 |
sok * | Подтверждение операции | ok | sok=ok |
Способ оплаты * paymethod_id или storedmethod_id Обратите внимание! Параметры взаимоисключающие, укажите в запросе только один из них | paymethod_id — идентификатор метода оплаты. Для метода оплаты могут требоваться дополнительные параметры, например, для ЮKassa нужно указать payment_method Для определения таких параметров см. статью Взаимодействие через API storedmethod_id — идентификатор сохранённого способа оплаты клиента | Целочисленное значение Укажите paymethod_id=0, чтобы в качестве метода оплаты использовать лицевой счёт | paymethod_id=15 storedmethod_id=455 |
profile_id | Идентификатор плательщика Указывается, если плательщик требуется для выбранного метода оплаты | Целочисленное значение | profile_id=42 |
store_paymethod | Если параметр принимает значение "on" и метод оплаты поддерживает возможность сохранить выбранный метод оплаты, то для клиента метод этой оплаты будет сохранён Флаг | Принимает одно из следующих значений:
| store_paymethod=on |
* — обязательный параметр
Пример запроса
Пример ответа