Method: getOrderDetails

Получите заказ, который предоставит партнерам Google основу для взимания платы с конечных пользователей.

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

Ответы на этот запрос могут быть пустыми, если этот метод не возвращает HTTP 200. Тело ответа пусто в ситуациях, когда ErrorResponse с четким описанием может использоваться, чтобы помочь злоумышленнику понять идентификатор учетной записи интегратора платежей других интеграторов. В таких ситуациях, когда ключ подписи не совпадает, идентификатор интегратора платежей не найден или ключ шифрования неизвестен, этот метод вернет HTTP 404 с пустым телом. Если подпись запроса может быть проверена, в теле ответа будет возвращена дополнительная информация об ошибке.

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "IntegratorFakeAccount",
  "orderLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "order": {
    "timestamp": "1517992525972",
    "orderId": "UPG.DEFC.X6F4.MEOM.CDWF",
    "currencyCode": "USD",
    "subTotalAmount": "399000000",
    "totalAmount": "459000000",
    "taxes": [],
    "items": [
      {
        "description": "YouTube TV membership",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "399000000"
      },
      {
        "description": "Showtime",
        "merchant": "fake org",
        "googleProductName": "YouTube TV",
        "quantity": "1",
        "totalPrice": "6000000"
      }
    ]
  }
}

HTTP-запрос

POST https://vgw.googleapis.com/secure-serving/gsp/v1/getOrderDetails/ :PIAID

Тело запроса

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

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

object ( RequestHeader )

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

paymentIntegratorAccountId

string

ОБЯЗАТЕЛЬНО : идентификатор учетной записи платежного интегратора, который идентифицирует вызывающую сторону и связанные договорные ограничения для этого взаимодействия.

orderLookupCriteria

object ( OrderLookupCriteria )

ОБЯЗАТЕЛЬНО : Критерии, указывающие порядок поиска.

requestOriginator

object ( RequestOriginator )

НЕОБЯЗАТЕЛЬНО : информация об организации или организационной подгруппе, отправившей этот запрос (если интегратор звонит нам от имени другой организации).

Тело ответа

Полезные данные ответа для метода getOrderDetails .

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

JSON-представление
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Поля
responseHeader

object ( ResponseHeader )

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

result

enum ( GetOrderDetailsResultCode )

ОБЯЗАТЕЛЬНО : Результат этого вызова.

order

object ( Order )

НЕОБЯЗАТЕЛЬНО : Информация о заказе, по которому была произведена оплата. (Присутствует тогда и только тогда, когда result УСПЕХ.)

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

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

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

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

Критерии поиска заказа

Критерии поиска заказа.

JSON-представление
{

  // Union field criteria can be only one of the following:
  "dcb3CorrelationId": string,
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // End of list of possible types for union field criteria.
}
Поля

criteria поля Союза.

criteria может быть только один из следующих:

dcb3CorrelationId

string

Поиск на основе сгенерированного Google идентификатора корреляции DCB, который уникально идентифицирует платеж. Это значение было сгенерировано Google и отправлено интегратору платежей по счетам оператора связи во время вызова аутентификации.

arnCriteria

object ( ArnCriteria )

Поиск на основе ссылочного номера эквайера (ARN).

googleTransactionReferenceNumberCriteria

object ( GoogleTransactionReferenceNumberCriteria )

Поиск по ссылочному номеру транзакции Google.

АрнКритерии

Критерии поиска платежа на основе ссылочного номера эквайера (ARN).

JSON-представление
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Поля
acquirerReferenceNumber

string

ОБЯЗАТЕЛЬНО : Справочный номер эквайрера (ARN), который однозначно идентифицирует платеж. Должно быть 23 цифры в длину.

authorizationCode

string

ОБЯЗАТЕЛЬНО : Код авторизации для транзакции.

GoogleTransactionReferenceNumberCriteria

Критерии поиска платежа на основе ссылочного номера транзакции, сгенерированного Google.

JSON-представление
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Поля
googleTransactionReferenceNumber

string

ОБЯЗАТЕЛЬНО : сгенерированный Google ссылочный номер транзакции, который однозначно идентифицирует платеж.

authorizationCode

string

ОБЯЗАТЕЛЬНО : Код авторизации для транзакции.

Инициатор запроса

Информация об организации или организационной подгруппе, от которой исходил данный запрос. Это позволяет Google выявлять проблемы или злоупотребления и осуществлять контроль на более детальном уровне, чем paymentIntegratorAccountId . Это особенно ценно, когда вызывающий абонент является промежуточным поставщиком услуг, который отправляет запросы от нескольких внешних клиентов.

JSON-представление
{
  "organizationId": string,
  "organizationDescription": string
}
Поля
organizationId

string

ОБЯЗАТЕЛЬНО : идентификатор компании, организации или организационной группы, от которой поступил этот запрос. Должен быть уникальным в пределах этого paymentIntegratorAccountId .

organizationDescription

string

ОБЯЗАТЕЛЬНО : удобочитаемое название или описание организации, которое можно использовать для облегчения общения между сотрудниками Google и интегратором относительно этой организации.

Заголовок ответа

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

JSON-представление
{
  "responseTimestamp": string
}
Поля
responseTimestamp

string ( int64 format)

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

GetOrderDetailsResultCode

Результат вызова метода getOrderDetails .

Перечисления
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Никогда не устанавливайте это значение по умолчанию!
SUCCESS Заказ был найден и возвращен.
ORDER_CANNOT_BE_RETURNED

Запрошенный заказ существует, но не может быть возвращен. К причинам относятся случаи, когда заказ был удален по требованию его владельца.

PAYMENT_TOO_OLD Запрошенный платеж был найден, но детали заказа не были предоставлены из-за давности платежа.
PAYMENT_NOT_FOUND Запрошенный платеж не найден.
NO_ADDITIONAL_DETAILS Запрошенный платеж найден, но детали заказа недоступны.

Заказ

Информация о заказе.

JSON-представление
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Поля
timestamp

string ( int64 format)

НЕОБЯЗАТЕЛЬНО : отметка времени создания заказа, выраженная в миллисекундах с момента создания. Доступно не для всех типов заказов.

orderId

string

НЕОБЯЗАТЕЛЬНО : строка, однозначно идентифицирующая этот заказ. Доступно не для всех типов заказов.

currencyCode

string

ДОПОЛНИТЕЛЬНО : трехбуквенный код валюты ISO 4217 для всех сумм в этом заказе. Доступно не для всех типов заказов.

subTotalAmount

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : общая сумма этого заказа до уплаты налогов, выраженная в микро валютах, указанных в order.currencyCode . Это равно SUM(items.totalPrice) . Доступно не для всех типов заказов.

totalAmount

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : общая сумма этого заказа, включая налоги, выраженная в микро валютах, указанных в order.currencyCode . Это равно subTotalAmount + SUM(taxes.amount) . Доступно не для всех типов заказов.

items[]

object ( Item )

ОБЯЗАТЕЛЬНО : Список товаров, которые были частью этого заказа.

taxes[]

object ( Tax )

НЕОБЯЗАТЕЛЬНО : список налогов, которые были частью этого заказа.

Элемент

Информация о позиции в заказе.

JSON-представление
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Поля
description

string

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

merchant

string

ТРЕБУЕТСЯ : Продавец, художник или изготовитель предмета.

quantity

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : количество заказанного товара.

Это поле будет опущено, если целые количества неприменимы к продукту (например, дозируемые продукты могут иметь дробные количества).

totalPrice

string ( Int64Value format)

НЕОБЯЗАТЕЛЬНО : общая цена этого товара, выраженная в микро валютах, указанных в order.currencyCode . Если quantity указано, оно отражает общую цену всего количества. Доступно не для всех типов заказов.

googleProductName

string

ОБЯЗАТЕЛЬНО : название службы продукта Google для элемента.

Налог

Информация о налоге, который применяется к данному заказу.

JSON-представление
{
  "description": string,
  "amount": string
}
Поля
description

string

ОБЯЗАТЕЛЬНО : Описание налога.

amount

string ( Int64Value format)

ОБЯЗАТЕЛЬНО : сумма налога, выраженная в микро валюте, указанной в order.currencyCode .