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)

CampoDescrizione
url_invianteURL dell'applicazione chiamante, a cui il browser torna a fine pagamento
url_rispostaURL che riceve la comunicazione server-to-server dell'esito
id_esercenteIdentificativo dell'esercente su Pay Steam (intero)
id_transazioneIdentificativo della transazione assegnato dall'esercente (max 64 caratteri, univoco per esercente)
descrizioneBene o servizio (max 255 caratteri)
prezzoImporto 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:

CampoValore
url_inviantequello ricevuto nella richiesta
id_transazionequello ricevuto nella richiesta
esitoOK 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