Method: echo

Эхо возвращает переданное clientMessage .

Целью этого метода является проверка базовой связи между платежным интегратором и Google.

Google может вызывать этот метод несколько раз в минуту с действительными или недопустимыми параметрами, чтобы проверить правильность соблюдения ограничений безопасности. Google также называет этот метод специальным по указанию интегратора, а также по указанию Google. Google никогда не будет вызывать это чаще, чем раз в 10 секунд, и никогда не чаще, чем 30 раз в течение 15-минутного окна.

Примерами тестов ограничений безопасности являются (но не ограничиваются):

  • Протестируйте, чтобы убедиться, что конечная точка интегратора платежей не взаимодействует со слабыми наборами шифров.
  • Проверьте, чтобы конечная точка платежного интегратора не согласовывала ничего, кроме TLS 1.2.
  • Проверьте, не поддерживает ли конечная точка интегратора платежей HTTP.
  • Проверьте, чтобы убедиться, что конечная точка платежного интегратора требует хотя бы один известный ключ подписи PGP.
  • Протестируйте, чтобы убедиться, что конечная точка интегратора платежей поддерживает несколько подписей ключей PGP, как известных, так и неизвестных, как с истекшим сроком действия, так и с активными.
  • Проверьте, чтобы интегратор платежей поддерживал только строгий анализ JSON.

Если конечная точка обнаруживает ошибку при обработке запроса, тело ответа от этой конечной точки должно иметь тип ErrorResponse .

Пример запроса выглядит так:


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

Пример ответа выглядит так:


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

HTTP-запрос

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

Тело запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "requestHeader": {
    object (RequestHeader)
  },
  "clientMessage": string
}
Поля
requestHeader

object ( RequestHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов.

clientMessage

string

ОБЯЗАТЕЛЬНО : сообщение для отражения в ответе.

Тело ответа

Объект ответа для метода echo.

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "clientMessage": string,
  "serverMessage": string
}
Поля
responseHeader

object ( ResponseHeader )

ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов.

clientMessage

string

ОБЯЗАТЕЛЬНО : сообщение, полученное в запросе.

serverMessage

string

НЕОБЯЗАТЕЛЬНО : сообщение сервера, независимо от отображаемого clientMessage .

Заголовок запроса

Объект заголовка, который определяется для всех запросов, отправляемых на сервер.

JSON-представление
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Поля
requestId

string

ОБЯЗАТЕЛЬНО : уникальный идентификатор этого запроса.

Это строка максимальной длиной 100 символов, содержащая только символы «az», «AZ», «0-9», «:», «-» и «_».

requestTimestamp

string ( int64 format)

ОБЯЗАТЕЛЬНО : временная метка этого запроса, представленная в миллисекундах с начала эпохи. Получатель должен убедиться, что эта временная метка составляет ± 60 секунд от «сейчас». Эта временная метка запроса не является идемпотентной при повторных попытках.

userLocale
(deprecated)

string

УСТАРЕЛО : двух- или трехбуквенный код языка ISO 639-2 Alpha 3, за которым может следовать дефис и код страны ISO 3166-1 Alpha-2, например «pt», «pt-BR», «fil» или 'фил-PH'. Используйте это, чтобы управлять полями userMessage в ответе.

protocolVersion

object ( Version )

ОБЯЗАТЕЛЬНО : версия этого запроса.

Версия

Объект версии, который представляет собой структурированную форму классической структуры версий abc . Совместимость основных версий одного и того же номера гарантирована. Обратите внимание, что второстепенные и исправленные версии могут изменяться часто и без предварительного уведомления. Интегратор должен поддерживать все запросы на одну и ту же основную версию.

JSON-представление
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Поля
major

integer

ТРЕБУЕТСЯ : Основная версия. Это отмечено для запросов совместимости с разными версиями, совместимость которых не гарантируется.

minor

integer

ТРЕБУЕТСЯ : Дополнительная версия. Это означает существенные исправления ошибок.

revision

integer

ТРЕБУЕТСЯ : Дополнительная версия. Это означает исправление мелких ошибок.