Visualizza l'eco del clientMessage
trasmesso.
Lo scopo di questo metodo è testare la connettività di base tra l'integratore dei pagamenti e Google.
Questo metodo può essere chiamato da Google più volte al minuto con parametri validi o non validi, per verificare che i vincoli di sicurezza vengano mantenuti correttamente. Google definisce questo metodo anche ad hoc, secondo la direzione dell'integratore e di Google. Google non effettuerà mai chiamate più veloci di una volta ogni 10 secondi e mai più di 30 volte in un lasso di tempo di 15 minuti.
Di seguito sono riportati, a titolo esemplificativo, alcuni test dei vincoli di sicurezza:
- Testa per assicurarti che l'endpoint dell'integratore dei pagamenti non negozi i pacchetti di crittografia deboli.
- Test per garantire che l'endpoint dell'integratore dei pagamenti non negozia solo per TLS 1.2
- Esegui dei test per assicurarti che l'endpoint dell'integratore dei pagamenti non supporti HTTP.
- Testa per assicurarti che l'endpoint dell'integratore dei pagamenti richieda almeno una chiave di firma PGP nota.
- Testa per assicurarti che l'endpoint dell'integratore dei pagamenti supporti più firme di chiavi PGP, sia note che sconosciute, sia scadute che attive.
- Testa per garantire che l'integratore dei pagamenti supporti solo l'analisi JSON rigorosa.
Se l'endpoint rileva un errore durante l'elaborazione della richiesta, il corpo della risposta da questo endpoint deve essere di tipo
.ErrorResponse
Una richiesta di esempio ha il seguente aspetto:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "ZWNobyB0cmFuc2FjdGlvbg",
"requestTimestamp": "1481899949606"
},
"clientMessage": "client message"
}
Ecco un esempio di risposta:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"clientMessage": "client message",
"serverMessage": "server message"
}
Richiesta HTTP
POST https://www.integratorhost.example.com/v1/echo
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{
"requestHeader": {
object ( |
Campi | |
---|---|
requestHeader |
REQUIRED: intestazione comune per tutte le richieste. |
clientMessage |
REQUIRED: messaggio da richiamare nella risposta. |
Corpo della risposta
Oggetto di risposta per il metodo echo.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{
"responseHeader": {
object ( |
Campi | |
---|---|
responseHeader |
REQUIRED: intestazione comune per tutte le risposte. |
clientMessage |
REQUIRED: messaggio ricevuto nella richiesta. |
serverMessage |
FACOLTATIVO: messaggio del server, indipendentemente dall'eco di |
RequestHeader
Oggetto intestazione definito in tutte le richieste inviate al server.
Rappresentazione JSON |
---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object ( |
Campi | |
---|---|
requestId |
REQUIRED: identificatore univoco della richiesta. Si tratta di una stringa con una lunghezza massima di 100 caratteri e contenente solo i caratteri "a-z", "A-Z", "0-9", ":", "-" e "_". |
requestTimestamp |
REQUIRED: timestamp di questa richiesta espresso in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi rispetto a "now". Questo timestamp della richiesta non è idempotente al momento dei nuovi tentativi. |
userLocale |
OBSOLETO: un codice lingua ISO 639-2 Alpha 3 a due o tre lettere facoltativamente seguito da un trattino e da un codice paese Alpha-2 ISO 3166-1, ad esempio "pt", "pt-BR", "fil" o "fil-PH". Utilizzalo per generare più campi |
protocolVersion |
REQUIRED: la versione della richiesta. |
Versione
Oggetto versione, che è una forma strutturata della struttura della versione classica di a.b.c
. È garantita la compatibilità delle versioni principali dello stesso numero. Tieni presente che le revisioni e le revisioni possono cambiare spesso e senza preavviso. L'integratore deve supportare tutte le richieste per la stessa versione principale.
Rappresentazione JSON |
---|
{ "major": integer, "minor": integer, "revision": integer } |
Campi | |
---|---|
major |
REQUIRED: versione principale. Questo stato è contrassegnato perché non è garantita la compatibilità delle richieste di compatibilità con versioni diverse. |
minor |
REQUIRED: versione secondaria. Indica correzioni di bug significative. |
revision |
REQUIRED: versione secondaria. Indica correzioni di bug minori. |