3.1.4. Zwracanie zamówień#

Ta strona zawiera całą dokumentację do samouczka wideo wyjaśniającego proces zwrotu zamówień i różne terminy związane ze zwrotami.

3.1.4.1. Wideo#

3.1.4.2. Informacje#

Jeśli nie jesteś zaznajomiony z procesem tworzenia zamówień, możesz obejrzeć samouczek Taler merchant creating orders.

3.1.4.3. Wymagania#

Wymagane dla tej serii samouczków:

  • Zaplecze handlowe Taler
    Jeśli potrzebujesz pomocy w korzystaniu z backendu sprzedawcy po raz pierwszy, możesz obejrzeć samouczek Taler merchant introduction.
  • Instancja portfela Taler
    Instrukcje konfiguracji są dostępne na stronie https://wallet.taler.net.
  • Oprogramowanie do zarządzania REST API lub odpowiednie umiejętności programistyczne
    W tej serii wideo będziemy korzystać z bezpłatnego oprogramowania Insomnia, dostępnego do pobrania na stronie https://insomnia.rest.

3.1.4.4. Powiadomienie o wersji demonstracyjnej backendu#

W tym samouczku można skorzystać z własnej usługi zaplecza sprzedawcy lub usługi demonstracyjnej online pod adresem https://backend.demo.taler.net/instances/sandbox/.

3.1.4.5. Więcej informacji na temat zwrotów za zamówienia sprzedawców#

Zwrot w GNU Taler jest sposobem na „cofnięcie” płatności. Musi on zostać autoryzowany przez sprzedawcę. Zwroty mogą dotyczyć dowolnej części pierwotnie zapłaconej kwoty, ale nie mogą przekraczać pierwotnej płatności. Zwroty są ograniczone czasowo i mogą mieć miejsce tylko wtedy, gdy giełda przechowuje środki na daną płatność w depozycie. Czas, w którym zwrot jest możliwy, może być kontrolowany poprzez ustawienie refund_deadline w zamówieniu. Domyślna wartość tego terminu zwrotu jest określona w konfiguracji backendu sprzedawcy.

Frontend może poinstruować backend sprzedawcy, aby autoryzował zwrot pieniędzy poprzez POST do punktu końcowego /private/orders/$ORDER_ID/refund.

Obiekt JSON żądania zwrotu zawiera tylko dwa pola:

  • refund`: Kwota do zwrotu. Jeśli poprzedni zwrot został zatwierdzony dla tego samego zamówienia, nowa kwota musi być wyższa, w przeciwnym razie operacja nie będzie miała żadnego efektu. Wartość wskazuje całkowitą kwotę do zwrotu, nie zwiększenie zwrotu.

  • reason: Czytelne dla człowieka uzasadnienie zwrotu. Powód jest używany tylko przez Back Office i nie jest ujawniany klientowi.

Jeśli żądanie się powiedzie (wskazywane przez kod statusu HTTP 200), odpowiedź zawiera taler_refund_uri. Frontend musi przekierować przeglądarkę klienta na ten adres URL, aby umożliwić przetworzenie zwrotu przez portfel.

Ten fragment kodu ilustruje przyznanie zwrotu pieniędzy:

>>> 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]>

Informacja

Po przyznaniu zwrotu, publiczny punkt końcowy https://example.com/orders/$ORDER_ID zmieni interakcję portfela z żądania płatności na oferowanie zwrotu. W ten sposób frontendy mogą ponownie przekierowywać przeglądarki do tego punktu końcowego. W tym celu należy jednak dołączyć pole h_contract (?h_contract=$H_CONTRACT), ponieważ publiczny punkt końcowy wymaga go do uwierzytelnienia klienta. Wymagana wartość $H_CONTRACT jest zwracana w odpowiedzi na zwrot w polu h_contract.

3.1.4.6. Więcej samouczków#

Aby wyświetlić dodatkowe samouczki, możesz przejrzeć tę stronę lub udać się na https://docs.taler.net, aby uzyskać najnowszą dokumentację dotyczącą usług Taler.