Протокол взаимодействия#
Для создания нового заказа необходимо вызвать метод CREATE. Помимо обязательных полей указать схему оплаты заказа order/isTwoStagePayment:
true - двухстадийная оплата
false - одностадийная
В «Подели» доступны 2 схемы оплаты заказа: двухстадийная и одностадийная. Различия между ними заключаются в процессе списания с Клиента средств. Схема оплаты заказа не зафиксирована жестко в рамках Партнера, можно использовать любую из двух при создании каждого нового заказа.
Перенаправить Клиента на URL, полученный в ответе метода CREATE для оформления оплаты через «Подели».
Ожидать результатов одобрения Клиенту оплаты через «Подели».
В случае одобрения Клиенту оплаты через «Подели» на URL, указанный в notificationUrl при вызове метода CREATE придет HTTP-нотификация со статусом APPROVED.
Ожидать статус оплаты Клиента по заказу, дальнейшие шаги отличаются в зависимости от выбранной схемы оплаты.
Двухстадийная оплата
На notificationUrl придет HTTP-нотификация со статусом WAIT_FOR_COMMIT (оплата по заказу захолдирована, ожидает подтверждение от Магазина)
2. Для подтверждения оплаты по заказу вызвать метод COMMIT на данном этапе также возможно отменить заказ, вызвав метод CANCEL
На notificationUrl придет HTTP-нотификация со статусом COMMITTED
Ожидать статус оплаты Клиента по заказу
На notificationUrl придет HTTP-нотификация со статусом COMPLETED
Заказ оплачен через «Подели»
Одностадийная оплата
На notificationUrl придет HTTP-нотификация со статусом COMPLETED
Заказ оплачен через «Подели»
Информация по заказу
Для получения детальной информации по заказу используйте метод INFO.
Время жизни заказов
Неоплаченные заказы в «Подели» имеют ограниченный срок жизни, заданный в разрезе каждого Партнера. Если в течение этого времени заказ не перешел в статус COMPLETED (например, по причине того, что Магазин не подтвердил оплату по заказу при двухстадийной схеме оплаты) - он автоматически отменяется. На notificationUrl придет HTTP-нотификация со статусом CANCELED.
Отмена заказа
Для двухстадийной схемы оплаты заказа предусмотрена возможность отменить заказ до того, как с Клиента будут списаны деньги. Для этого вместо подтверждения заказа вызовом метода COMMIT необходимо вызвать метод CANCEL. Заказ будет отменен, а холд средств Клиента - снят.
Возврат по заказу
Для оформления возвратов по заказам, оплаченным через «Подели» необходимо вызвать метод REFUND и указать детали возврата: перечень возвращаемых позиций в секции order/refund/items. Итоговая сумма возврата будет рассчитана автоматически как сумма всех возвращаемых позиций.
Внимание
В случае частичного возврата, клиенту будет пересчитан график платежей. Если возврат по сумме превысит сумму оставшихся платежей, то произойдет возврат денежных средств.
Например:
стоимость заказа 4000 рублей, клиент внес 1000 (следовательно останется 3 платежа по 1000 рублей), возврат на 900 рублей обрабатывается следующим образом: никакого возврата средств клиенту не будет, а пересчитаются последующие платежи в следующем порядке:
1000-> 700
1000-> 700
1000-> 700