Method: echo

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 (RequestHeader)
  },
  "clientMessage": string
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

clientMessage

string

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 (ResponseHeader)
  },
  "clientMessage": string,
  "serverMessage": string
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

clientMessage

string

REQUIRED: messaggio ricevuto nella richiesta.

serverMessage

string

FACOLTATIVO: messaggio del server, indipendentemente dall'eco di clientMessage.

RequestHeader

Oggetto intestazione definito in tutte le richieste inviate al server.

Rappresentazione JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campi
requestId

string

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

string (int64 format)

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
(deprecated)

string

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 userMessage nella risposta.

protocolVersion

object (Version)

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

integer

REQUIRED: versione principale. Questo stato è contrassegnato perché non è garantita la compatibilità delle richieste di compatibilità con versioni diverse.

minor

integer

REQUIRED: versione secondaria. Indica correzioni di bug significative.

revision

integer

REQUIRED: versione secondaria. Indica correzioni di bug minori.