Method: echo

Faz o reto do clientMessage que foi transmitido.

O objetivo deste método é testar a conectividade básica entre o integrador de pagamentos e o Google.

Esse método pode ser chamado pelo Google várias vezes por minuto com parâmetros válidos ou inválidos para testar se as restrições de segurança estão sendo aplicadas corretamente. O Google também chama esse método de ad hoc seguindo a orientação do integrador e do Google. O Google nunca faz uma chamada mais rápida do que uma vez a cada 10 segundos e nunca mais do que 30 vezes em uma janela de 15 minutos.

Confira alguns exemplos de testes de restrição de segurança:

  • Teste para garantir que o endpoint do integrador de pagamentos não negocia pacotes de criptografia fracos.
  • Teste para garantir que o endpoint do integrador de pagamentos não seja negociado para nada além do TLS 1.2
  • Teste para garantir que o endpoint do integrador de pagamentos não ofereça suporte a HTTP.
  • Teste para garantir que o endpoint do integrador de pagamentos exija pelo menos uma chave de assinatura PGP conhecida.
  • Teste para garantir que o endpoint do integrador de pagamentos ofereça suporte a várias assinaturas de chave PGP, conhecidas e desconhecidas, expiradas e ativas.
  • Teste para garantir que o integrador de pagamentos ofereça suporte apenas a análises JSON rigorosas.

Se o endpoint encontrar um erro ao processar a solicitação, o corpo da resposta desse endpoint precisará ser do tipo ErrorResponse.

Este é um exemplo de solicitação:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "ZWNobyB0cmFuc2FjdGlvbg",
    "requestTimestamp": "1481899949606"
  },
  "clientMessage": "client message"
}

Um exemplo de resposta é semelhante a:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "clientMessage": "client message",
  "serverMessage": "server message"
}

Solicitação HTTP

POST https://www.integratorhost.example.com/v1/echo

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "clientMessage": string
}
Campos
requestHeader

object (RequestHeader)

OBRIGATÓRIO: cabeçalho comum para todas as solicitações.

clientMessage

string

OBRIGATÓRIO: mensagem a ser transmitida na resposta.

Corpo da resposta

Objeto de resposta para o método echo.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "clientMessage": string,
  "serverMessage": string
}
Campos
responseHeader

object (ResponseHeader)

OBRIGATÓRIO: cabeçalho comum para todas as respostas.

clientMessage

string

OBRIGATÓRIO: mensagem recebida na solicitação.

serverMessage

string

OPTIONAL: mensagem do servidor, independente do clientMessage que está sendo ecoado.

RequestHeader

Objeto "Header" definido em todas as solicitações enviadas ao servidor.

Representação JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campos
requestId

string

OBRIGATÓRIO: identificador exclusivo da solicitação.

Essa é uma string com tamanho máximo de 100 caracteres e apenas os caracteres "a-z", "A-Z", "0-9", ":", "-" e "_".

requestTimestamp

string (int64 format)

REQUIRED: carimbo de data/hora da solicitação representado como milissegundos desde a época. O receptor precisa verificar se esse carimbo de data/hora tem ± 60 s de "now". Esse carimbo de data/hora da solicitação não é idempotente em novas tentativas.

userLocale
(deprecated)

string

OBSOLETO: um código de idioma ISO 639-2 Alfa 3 de duas ou três letras opcionalmente seguido por um hífen e um código de país ISO 3166-1 Alfa-2, por exemplo, 'pt', 'pt-BR', 'fil' ou 'fil-PH'. Use isso para ajudar a direcionar os campos userMessage na resposta.

protocolVersion

object (Version)

OBRIGATÓRIO: a versão da solicitação.

Versão

O objeto Version, que é uma forma estruturada da estrutura de versão clássica do a.b.c. As principais versões do mesmo número têm garantia de compatibilidade. Pequenas e revisões podem ser alteradas com frequência e sem aviso prévio. O integrador precisa oferecer suporte a todas as solicitações para a mesma versão principal.

Representação JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campos
major

integer

OBRIGATÓRIO: versão principal. Isso é marcado para solicitações de compatibilidade com versões diferentes.

minor

integer

OBRIGATÓRIO: versão secundária. Isso indica correções de bugs significativas.

revision

integer

OBRIGATÓRIO: versão secundária. Isso indica pequenas correções de bugs.