3.1.4. Відшкодування замовлень#

Ця сторінка містить всю документацію до відеоуроку, що пояснює процес відшкодування замовлень і різні терміни, пов’язані з відшкодуванням.

3.1.4.1. Відео#

3.1.4.2. Інформація#

Якщо ви не знайомі з процесом створення замовлень, ви можете переглянути Створення замовлень продавцем навчальний посібник.

3.1.4.3. Вимоги#

Необхідно для цієї серії уроків:

  • Бекенд торговця Талером
    Якщо вам потрібна допомога з використанням бекенду продавця вперше, ви можете переглянути навчальний посібник Вступ до роботи продавця.
  • Примірник гаманця 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 - це спосіб «скасувати» платіж. Це має бути дозволено продавцем. Відшкодування може становити будь-яку частину від початкової суми, але воно не може перевищувати початковий платіж. Повернення коштів обмежене в часі і може відбуватися тільки до тих пір, поки біржа утримує кошти для конкретного платежу на ескроу. Час, протягом якого можливе відшкодування, можна контролювати, встановивши термін_відшкодування в ордері. Значення за замовчуванням для цього терміну відшкодування вказується в конфігурації бекенду продавця.

Фронт-енд може доручити бекенду продавця авторизувати відшкодування за допомогою POST на кінцеву точку /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.