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 del venditore TalerSe avete bisogno di aiuto per usare il backend del venditore per la prima volta, potete guardare il tutorial Taler merchant introduction.
- Un’istanza di portafoglio TalerLe istruzioni per l’installazione sono disponibili su https://wallet.taler.net.
- Un software di gestione API REST o competenze di programmazione pertinentiIn 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 del venditore o il servizio dimostrativo online di https://backend.demo.taler.net/instances/sandbox/.
3.1.4.5. Ulteriori note sui rimborsi degli ordini del venditore#
Un rimborso in GNU Taler è un modo per «annullare» un pagamento. Deve essere autorizzato dal venditore. 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 l’Exchange detiene i fondi per un determinato pagamento in garanzia. Il tempo durante il quale è possibile effettuare un rimborso può essere controllato impostando refund_deadline in un ordine. Il valore predefinito per questa scadenza di rimborso è specificato nella configurazione del backend del venditore.
Il frontend può istruire il backend del venditore 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.motivo: 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. Altri tutorial#
Per visualizzare altre esercitazioni, potete consultare questo sito o visitare https://docs.taler.net per ottenere la documentazione più recente sui servizi Taler.