3.1.4. Возврат заказов#
На этой странице собрана вся документация к видеоуроку, объясняющему процесс возврата заказов и различные сроки, связанные с возвратом.
3.1.4.1. Видео#
3.1.4.2. Информация#
Если вы не знакомы с процессом создания заказов, вы можете посмотреть учебник Taler merchant creating orders.
3.1.4.3. Требования#
Требуется для этой серии уроков:
- Бэкенд продавца TalerЕсли вам нужна помощь в использовании бэкенда продавца в первый раз, вы можете посмотреть учебник Taler merchant introduction.
- Экземпляр кошелька TalerИнструкции по настройке доступны на сайте https://wallet.taler.net.
- Знание программного обеспечения для управления REST API или соответствующие навыки программированияВ этой серии видео мы будем использовать свободное программное обеспечение Insomnia, доступное для загрузки на сайте https://insomnia.rest.
3.1.4.4. Уведомление о демонстрационном бэкенде#
Для этого урока вы можете использовать свой собственный бэкенд-сервис продавца или демонстрационный онлайн-сервис на сайте https://backend.demo.taler.net/instances/sandbox/.
3.1.4.5. Дополнительные сведения о возврате средств по заказам продавца#
Возврат в GNU Taler - это способ «отменить» платеж. Он должен быть авторизован продавцом. Возврат может быть осуществлен за любую часть первоначальной суммы, но не может превышать первоначальный платеж. Возврат ограничен по времени и возможен только в то время, когда обменник держит средства для конкретного платежа в эскроу. Время, в течение которого возможен возврат средств, можно контролировать, задав в заказе параметр refund_deadline. Значение по умолчанию для этого срока возврата указывается в конфигурации бэкенда продавца.
Фронтенд может дать команду бэкенду продавца разрешить возврат средств, выполнив запрос POST к конечной точке /private/orders/$ORDER_ID/refund.
JSON-объект запроса на возврат содержит только два поля:
refund: Сумма, подлежащая возврату. Если предыдущий возврат был разрешен для этого же заказа, новая сумма должна быть больше, иначе операция не имеет эффекта. Значение указывает на общую сумму, подлежащую возврату, не на увеличение суммы возврата.reason: Человекочитаемое обоснование возврата средств. Причина используется только в бэк-офисе и не передается клиенту.
Если запрос успешен (на это указывает HTTP-код состояния 200), ответ содержит taler_refund_uri. Фронтенд должен перенаправить браузер клиента на этот URL, чтобы кошелек смог обработать возврат средств.
Этот фрагмент кода иллюстрирует возврат средств:
>>> import requests
>>> refund_req = dict(refund="KUDOS:10",
... reason="Customer did not like the product")
>>> requests.post("https://backend.demo.taler.net/instances/sandbox/private/orders/"
... + order_id + "/refund", json=refund_req,
... headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>
Примечание
После предоставления возврата публичная конечная точка https://example.com/orders/$ORDER_ID изменит свое взаимодействие с кошельком с запроса платежа на предложение возврата. Таким образом, фронтенды могут снова перенаправлять браузеры на эту конечную точку. Однако для этого необходимо добавить поле h_contract (?h_contract=$H_CONTRACT), поскольку публичная конечная точка требует его для аутентификации клиента. Требуемое значение $H_CONTRACT возвращается в ответе на возврат в поле h_contract.
3.1.4.6. Другие учебники#
Для просмотра дополнительных руководств вы можете просмотреть этот сайт или зайти на https://docs.taler.net, чтобы получить самую свежую документацию по сервисам Taler.