Documentazione API
Pay Steam può essere chiamato da qualunque applicazione di un esercente registrato. Il flusso ha tre passi: richiesta di pagamento, decisione del consumatore su Pay Steam, comunicazione dell'esito.
1. Richiesta di pagamento
POST https://paysteam.pallassini.com/api/paga.php (form-encoded, dal browser del consumatore)
| Campo | Descrizione |
|---|---|
| url_inviante | URL dell'applicazione chiamante, a cui il browser torna a fine pagamento |
| url_risposta | URL che riceve la comunicazione server-to-server dell'esito |
| id_esercente | Identificativo dell'esercente su Pay Steam (intero) |
| id_transazione | Identificativo della transazione assegnato dall'esercente (max 64 caratteri, univoco per esercente) |
| descrizione | Bene o servizio (max 255 caratteri) |
| prezzo | Importo in euro, decimale con punto, maggiore di zero (es. 12.50) |
Esempio di form:
<form method="post" action="https://paysteam.pallassini.com/api/paga.php"> <input type="hidden" name="url_inviante" value="https://sft.example/ritorno.php"> <input type="hidden" name="url_risposta" value="https://sft.example/esito.php"> <input type="hidden" name="id_esercente" value="1"> <input type="hidden" name="id_transazione" value="ORD-1001"> <input type="hidden" name="descrizione" value="Biglietto Torino-Superga"> <input type="hidden" name="prezzo" value="12.50"> <button>Paga con Pay Steam</button> </form>
Errori: 400 parametri non validi, 403 URL fuori dominio autorizzato, 404 esercente sconosciuto, 409 id_transazione già usato con dati diversi. Una ripetizione identica riprende la stessa richiesta.
2. Comunicazione dell'esito (server-to-server)
Dopo la decisione Pay Steam esegue POST form-encoded su url_risposta:
| Campo | Valore |
|---|---|
| url_inviante | quello ricevuto nella richiesta |
| id_transazione | quello ricevuto nella richiesta |
| esito | OK pagamento effettuato, KO rifiutato o scaduto |
L'applicazione risponde con un qualunque 2xx. Il tentativo è registrato; se fallisce viene ripetuto alla successiva visita della richiesta. Subito dopo il browser è reindirizzato a url_inviante?id_transazione=…&esito=OK|KO.
3. Verifica dello stato
GET https://paysteam.pallassini.com/api/stato.php?id_esercente=1&id_transazione=ORD-1001
{"id_transazione":"ORD-1001","esito":"OK"}
esito: OK, KO, oppure IN_ATTESA se il consumatore non ha ancora deciso (estensione). 404 se la transazione non esiste. Le richieste non decise entro 30 minuti diventano KO.
Note di sicurezza
- L'esercente è identificato dal solo id_esercente; è possibile vincolare gli URL a un dominio autorizzato.
- Il browser raggiunge il pagamento con un token casuale non indovinabile.
- Per decidere l'esito definitivo l'applicazione dovrebbe confermare con stato.php, non fidarsi del solo redirect del browser.
- Pay Steam non vede né memorizza il numero completo delle carte.