3.1.4. Rimborso degli ordini#

Questa pagina contiene tutta la documentazione del video tutorial che spiega il processo di rimborso degli ordini e le diverse scadenze previste per i rimborsi.

3.1.4.1. Video#

3.1.4.2. Informazioni#

Se non si ha familiarità con il processo di creazione degli ordini, si può guardare l’esercitazione Taler merchant creating orders.

3.1.4.3. Requisiti#

Necessario per questa serie di esercitazioni:

  • Un backend commerciale Taler
    Se avete bisogno di aiuto per usare il backend del commerciante per la prima volta, potete guardare il tutorial Taler merchant introduction.
  • Un’istanza di portafoglio Taler
    Le istruzioni per l’installazione sono disponibili su https://wallet.taler.net.
  • Un software di gestione API REST o competenze di programmazione pertinenti
    In questa serie di video utilizzeremo il software gratuito Insomnia, disponibile per il download all’indirizzo https://insomnia.rest.

3.1.4.4. Avviso di backend demo#

Per questa esercitazione si può utilizzare il proprio servizio di backend commerciale o il servizio dimostrativo online di https://backend.demo.taler.net/instances/sandbox/.

3.1.4.5. Ulteriori note sui rimborsi degli ordini Merchant#

Un rimborso in GNU Taler è un modo per «annullare» un pagamento. Deve essere autorizzato dall’esercente. I rimborsi possono riguardare qualsiasi frazione dell’importo originale pagato, ma non possono superare il pagamento originale. I rimborsi sono limitati nel tempo e possono avvenire solo mentre la borsa detiene i fondi per un determinato pagamento in deposito. Il tempo durante il quale è possibile effettuare un rimborso può essere controllato impostando la scadenza_rimborso in un ordine. Il valore predefinito per questa scadenza di rimborso è specificato nella configurazione del backend del commerciante.

Il frontend può istruire il backend dell’esercente ad autorizzare un rimborso tramite POST all’endpoint /private/orders/$ORDER_ID/refund.

L’oggetto JSON della richiesta di rimborso ha solo due campi:

  • Rimborso»: Importo da rimborsare. Se è stato autorizzato un rimborso precedente per lo stesso ordine, il nuovo importo deve essere superiore, altrimenti l’operazione non ha effetto. Il valore indica l’importo totale da rimborsare, non un aumento del rimborso.

  • ragione: Giustificazione leggibile per il rimborso. Il motivo viene utilizzato solo dal Back Office e non viene esposto al cliente.

Se la richiesta ha esito positivo (indicato dal codice di stato HTTP 200), la risposta include un taler_refund_uri. Il frontend deve reindirizzare il browser del cliente a tale URL per consentire l’elaborazione del rimborso da parte del portafoglio.

Questo frammento di codice illustra l’erogazione di un rimborso:

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

Nota

Dopo aver concesso un rimborso, l’endpoint pubblico https://example.com/orders/$ORDER_ID cambierà la sua interazione con il portafoglio, passando dalla richiesta di pagamento all’offerta di rimborso. Pertanto, i frontend possono nuovamente reindirizzare i browser a questo endpoint. Tuttavia, per farlo, è necessario aggiungere un campo h_contract (?h_contract=$H_CONTRACT), poiché l’endpoint pubblico lo richiede per autenticare il cliente. Il valore richiesto $H_CONTRACT viene restituito nella risposta di rimborso sotto il campo h_contract.

3.1.4.6. More tutorials#

Per visualizzare altre esercitazioni, potete consultare questo sito o visitare https://docs.taler.net per ottenere la documentazione più recente sui servizi Taler.