Qui troverai una semplice descrizione per iniziare a sviluppare una connessione a ricardo.ch.
Per garantire la sicurezza degli utenti finali, non devono mai inserire il nome utente e la password di ricardo.ch al di fuori di un'applicazione ufficiale ricardo.ch. Pertanto, per consentire alla vostra applicazione di accedere a questi dati, abbiamo messo in atto un processo di autenticazione bidirezionale:
1. Devi creare un token temporaneo: call SecurityService.CreateTemporaryCredential
Non obbligatorio: Puoi aggiungere a questa ValidationUrl il tuo postback url nel parametro querystring "partnerurl".
JSON Example
POST https://ws.betaqxl.com/ricardoapi/SecurityService.Json.svc/CreateTemporaryCredential HTTP/1.1
Content-Type: application/json
Ricardo-Username: [YOUR_PARTNERSHIP_ID]
Ricardo-Password: [YOUR_PARTNERSHIP_PWD]
Host: ws.betaqxl.com
{
"createTemporaryCredentialParameter": {}
}
Dovresti ricevere qualcosa del genere:
{
"CreateTemporaryCredentialResult": {
"TemporaryCredential": {
"ExpirationDate": "\/Date(1385462160000+0100)\/",
"TemporaryCredentialKey": "[TEMPORARY_TOKEN]",
"ValidationUrl": "blablabla"
}
}
}
2. Dovresti quindi reindirizzare l'utente finale alla ValidationUrl ricevuta, e inserire le tue "normali" credenziali ricardo.ch (quelle che usi per accedere al sito web). Quando clicchi su "Autorizza" dovresti vedere una pagina che indica se ha funzionato o se si è verificato un errore o se devi essere reindirizzato al "partnerurl" che hai definito in precedenza.
3. Quindi chiama il “vero” token: call SecurityService.CreateTokenCredential, fornendo il [TEMPORARY_TOKEN] precedentemente ricevuto.
JSON Example
POST https://ws.betaqxl.com/ricardoapi/SecurityService.Json.svc/CreateTokenCredential HTTP/1.1
Content-Type: application/json
Ricardo-Username: [YOUR_PARTNERSHIP_ID]
Ricardo-Password: [YOUR_PARTNERSHIP_PWD]
Host: ws.betaqxl.com
{
"createTokenCredentialParameter": {
"TemporaryCredentialKey": "[TEMPORARY_TOKEN]"
}
}
4. Dovresti ricevere qualcosa del genere:
{
"CreateTokenCredentialResult": {
"TokenCredential": {
"SessionDuration": 30,
"TokenCredentialKey": "[REAL_TOKEN]",
"TokenExpirationDate": "\/Date(1386664920000+0100)\/"
}
}
}
5. È quindi possibile chiamare gli altri metodi forniti dall'API usando questo [REAL_TOKEN].
POST https://ws.betaqxl.com/ricardoapi/SellerAccountService.Json.svc/GetTemplates HTTP/1.1
Content-Type: application/json
Ricardo-Username: [YOUR_PARTNERSHIP_ID]
Ricardo-Password: [YOUR_PARTNERSHIP_PWD]
Host: ws.betaqxl.com
{
"getTemplatesParameter": {}
}
L'idea di base è che si dovrebbe chiedere un nuovo token ogni volta ogni sei mesi per ogni cliente. Per fare questo, l'applicazione dovrebbe avere un oggetto token interno con le seguenti proprietà:
Chiave corrente (aggiornata ogni volta che si deve aggiornare il token)
Data di scadenza (una volta inizializzato, questo valore non cambierà mai)
Durata della sessione (una volta inizializzata, questo valore non cambierà mai)
Data di scadenza della sessione corrente (aggiornata ogni volta che si utilizza il token)
Quando create il vostro token per la prima volta (la chiamata a CreateTokenCredential), inizializzate tutte le proprietà del vostro oggetto con i valori ricevuti.
Più tardi, quando proverai ad usare il tuo token.
Controlla che il tuo token non sia scaduto (DateTime.Now < YourToken.ExpirationDate). Se è scaduto, segui la procedura per ottenerne uno nuovo.
Verifica che la sessione del tuo token sia ancora valida (DateTime.Now < YourToken.SessionExpirationDate). Se è scaduto, aggiorna il tuo token (metodo SecurityService.RefreshTokenCredential) e aggiorna il tuo Token.Key e il tuo Token.SessionExpirationDate con i nuovi valori ricevuti.
Chiama tutti i metodi che vuoi, e aggiorna il tuo Token.SessionExirationDate (Token.SessionExirationDate = DateTime.Now.AddMinutes(Token.SessionDuration)).
Di questo passo, si dovrebbe avere anche un processo che cattura le eccezioni, per capire se l'API restituisce un'eccezione. Per esempio, se l'utente modifica manualmente la data o l'ora del proprio dispositivo/computer, l'applicazione potrebbe pensare che il token sia ancora valido mentre in realtà non lo è (e viceversa).
Passare all'ambiente live
Vi preghiamo di contattarci non appena avete finito di sviluppare e testare la vostra applicazione. Ti forniamo quindi le credenziali di partnership per il nostro ambiente live. Assicurati di utilizzare questo URL per il go-live: https://ws.ricardo.ch/ .