API verifyCheckout

[API OPZIONALE]

Verifica dello stato di un pagamento (Server dell'esercente > Tinaba).

Spiegazione degli attributi

Nome campoTipoMandatorioDescrizione
merchantIdStringYesIdentificativo dell'esercente assegnato da TINABA.
externalIdStringYesIdentificativo del pagamento pendente sul server dell'esercente. Deve essere univoco per ogni chiamata.
signatureStringYesFirma di autenticazione e integrità dei dati.

La firma d’integrità dei dati, scambiata nel campo “signature”, è basata su un segreto condiviso, scambiato offline, e generata utilizzando il protocollo SHA256.

signature = base64(SHA256(<merchantId><externalId><secret>))

Per maggiori informazioni su come generare la firma d’integrità consultare:

Integrità dei dati >

Spiegazione degli attributi – risposta

Nome campoTipoMandatorioDescrizione
statusStringYes000 = OK




001 = KO.
checkoutStateStringNoValorizzato solo se status = 000.



000 = completato con successo



001 = completato con errore (pagamento fallito, o pagamento annullato dall'esercente)



002 = pagamento scaduto



003 = non completato (pagamento pendente)



004 = completato senza pagamento (l’utente ha già pagato il prodotto in precedenza). Utilizzato solo se il paymentMode nella initCheckout = MEDIA



005 = pagamento preautorizzato da confermare. Utilizzato solo se il paymentMode nella initCheckout = PREAUTH
errorCodeStringNoValorizzato solo se status = 001.






Codice di errore.
externalIdStringNoIdentificativo del pagamento pendente sul server dell'esercente.
merchantIdStringNoIdentificativo dell'esercente assegnato da TINABA.
amountStringNoImporto in centesimi.
currencyStringNoDivisa (EUR).
userAddressuserAddressYesSe configurata la modalità one-click, contiene le informazioni di spedizione e fatturazione dell’utente che ha concluso il pagamento.
userAddress.nameStringYesNome Tinaba utente
userAddress.surnameStringYesCognome Tinaba utente
userAddress.emailStringYesEmail Tinaba utente
userAddress.shippingAddressshippingAddressNoIndirizzo di spedizione
userAddress.billingAddressbillingAddressYesIndirizzo di fatturazione
shippingAddress.receiverNameStringYesNome e cognome riportato sull’indirizzo
shippingAddress.addressStringYesIndirizzo
shippingAddress.streetNumberStringYesNumero civico
shippingAddress.cityStringYesCittà
shippingAddress.capStringYesCAP
shippingAddress.districtStringYesProvincia
shippingAddress.countryStringYesNazione
shippingAddress.sendAtStringNoPresso
shippingAddress.phoneNumberStringNoNumero di telefono
billingAddress.receiverNameStringYesNome e cognome di fatturazione
billingAddress.addressStringYesIndirizzo
billingAddress.streetNumberStringYesNumero civico
billingAddress.cityStringYesCittà
billingAddress.capStringYesCAP
billingAddress.districtStringYesProvincia
billingAddress.countryStringYesNazione
billingAddress.fiscalCodeStringYesCodice fiscale

Richiesta


{  
   "data":{  
      "request":{  
         "verifyCheckoutRequest":{  
            "merchantId":"12",
            "externalId":"TR_1",
            "signature":"AAIR12345"
         }
      }
   }
}

Risposte

200 Success


{  
   "response":{  
      "verifyCheckoutResponse":{  
         "status":"000",
         "checkoutState":"000",
         "merchantId":"12",
         "externalId":"TR_1",
         "amount":"100",
         "currency":"EUR"
      }
   }
}

400 Errore Validazione


{  
   "response":{  
      "verifyCheckoutResponse":{  
         "status":"001",
         "errorCode":"XXX"
      }
   }
}

$request = new VerifyCheckoutRequest();

$request->setExternalId('TR_01');

$response = $client->verifyCheckout($request);

echo "The checkout status is " . $response->checkoutStatus;

Per l'SDK PHP completo visitare questo link


from sdk.objects import VerifyCheckoutRequest
action = factory.make('verify.checkout')
action.body_params = VerifyCheckoutRequest(externalId='TR_01')
response = action.run()
print('The checkout state is {}'.format(response.checkoutState))

Per l'SDK PHP completo visitare questo link