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
. Значение по умолчанию для этого срока возврата указывается в конфигурации бэкенда продавца.
Фронтенд может дать команду бэкенду продавца разрешить возврат средств, обратившись к конечной точке /private/orders/$ORDER_ID/refund
.
JSON-объект запроса на возврат содержит только два поля:
Возврат
: Сумма, подлежащая возврату. Если предыдущий возврат был разрешен для этого же заказа, новая сумма должна быть больше, иначе операция не имеет эффекта. Значение указывает на общую сумму, подлежащую возврату, не на увеличение суммы возврата.причина
: Человекочитаемое обоснование возврата средств. Причина используется только в бэк-офисе и не передается клиенту.
Если запрос успешен (на это указывает 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.