Method: getDisputeInquiryReport

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

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

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

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


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA",
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

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


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "googleClaimId": "138431383281",
  "report": {
    "customerAccount": {
      "customerEmail": "example@gmail.com",
      "customerName" : "Example Customer"
    },
    "order": {
      "timestamp": "1517992525972",
      "orderId": "SOP.8976-1234-1234-123456..99",
      "currencyCode": "USD",
      "subTotalAmount": "206990000",
      "totalAmount": "212990000",
      "shippingAddress": {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "taxes": [
        {
          "description": "Colorado Sales Tax",
          "amount": "6000000"
        }
      ],
      "items": [
        {
          "description": "Super cool gizmo",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "2",
          "totalPrice": "198000000"
        },
        {
          "description": "Gizmo charger",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "1",
          "totalPrice": "8990000"
        }
      ]
    },
    "payment": {
      "billingAddress" : {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "amount": "100000000",
      "refunds": [
        {
          "amount": "9250000",
          "initiatedTimestamp": "1518811245384"
        }
      ],
      "cardDetails": {
        "authResult": "APPROVED"
      }
    }
  }
}

HTTP-запрос

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

Тело запроса

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

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

object ( RequestHeader )

ТРЕБУЕТСЯ : Общий заголовок для всех запросов.

paymentIntegratorAccountId

string

ТРЕБУЕТСЯ : идентификатор учетной записи платежного интегратора, который идентифицирует вызывающую сторону, и связанные договорные ограничения для этого взаимодействия.

paymentLookupCriteria

object ( PaymentLookupCriteria )

НЕОБХОДИМО : критерии, указывающие платеж, который необходимо найти для этого запроса.

existingGoogleClaimId

string

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

Если его нет, будет сгенерирован новый идентификатор заявки. Вызывающий может предоставить googleClaimId , который был возвращен предыдущим вызовом getDisputeInquiryReport , если это продолжение того же спора с клиентом.

Идентификатор утверждения, который заполняется здесь или создается, будет возвращен в поле googleClaimId ответа.

Недопустимо указывать googleClaimId , который не был возвращен предыдущим вызовом getDisputeInquiryReport . В этом случае будет возвращен неверный запрос HTTP 400.

requestOriginator

object ( RequestOriginator )

ТРЕБУЕТСЯ : Информация об организации или организационной подгруппе, которая инициировала этот запрос.

Тело ответа

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

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

Представление JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Поля
responseHeader

object ( ResponseHeader )

ТРЕБУЕТСЯ : Общий заголовок для всех ответов.

result

enum ( GetDisputeInquiryReportResultCode )

НЕОБХОДИМО : результат этого вызова.

googleClaimId

string

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

Если в запросе был указан existingGoogleClaimId , это будет то же значение. В противном случае это будет новое сгенерированное значение. Это значение может быть предоставлено в будущих запросах getDisputeInquiryReport , если они являются частью одного и того же спора с клиентом.

report

object ( PurchaseReport )

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

ОплатаПоискКритерии

Контейнер для критериев, которые могут однозначно искать платеж. Одно (и только одно) поле участника должно быть заполнено.

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

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

criteria поля объединения.

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

arnCriteria

object ( ArnCriteria )

ДОПОЛНИТЕЛЬНО : поиск на основе ссылочного номера эквайера (ARN).

googleTransactionReferenceNumberCriteria

object ( GoogleTransactionReferenceNumberCriteria )

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

captureRequestCriteria

object ( CaptureRequestCriteria )

ДОПОЛНИТЕЛЬНО : Поиск на основе идентификатора запроса захвата.

АрнКритерии

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

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

string

ТРЕБУЕТСЯ : Ссылочный номер эквайера (ARN), который однозначно идентифицирует платеж. Должен состоять из 23 цифр.

authorizationCode

string

ТРЕБУЕТСЯ : Код авторизации для транзакции.

GoogleTransactionReferenceNumberCriteria

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

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

string

ТРЕБУЕТСЯ : сгенерированный Google ссылочный номер транзакции, который однозначно идентифицирует платеж.

authorizationCode

string

ТРЕБУЕТСЯ : Код авторизации для транзакции.

Критерии захвата запроса

Критерии поиска платежа на основе исходного запроса захвата.

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

string

ТРЕБУЕТСЯ : уникальный идентификатор для этой транзакции. Это requestId , сгенерированный Google во время вызова capture , который просматривается.

RequestOriginator

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

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

string

ТРЕБУЕТСЯ : Идентификатор компании, организации или организационной группы, от которой исходит этот запрос. Должен быть уникальным в рамках этого paymentIntegratorAccountId .

organizationDescription

string

ТРЕБУЕТСЯ . Удобочитаемое название или описание организации, которые можно использовать для облегчения общения между сотрудниками Google и интегратором в отношении этой организации.

agentId

string

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

GetDisputeInquiryReportResultCode

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

перечисления
UNKNOWN_RESULT Никогда не устанавливайте это значение по умолчанию!
SUCCESS Платеж найден, отчет предоставлен.
PAYMENT_NOT_FOUND Запрошенный платеж не найден.
PAYMENT_TOO_OLD Запрошенный платеж был найден, но отчет не был предоставлен из-за давности платежа.
ORDER_CANNOT_BE_RETURNED Запрошенный платеж относится к существующему заказу, но не может быть возвращен. К причинам относятся случаи, когда заказ был удален по требованию его владельца.
NO_ADDITIONAL_DETAILS Запрошенный платеж найден, но отчет недоступен.

Отчет о покупке

Отчет, содержащий соответствующие сведения о покупке, связанной с запрошенным платежом.

Представление JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Поля
customerAccount

object ( CustomerAccount )

ТРЕБУЕТСЯ : Информация о клиенте и его счете.

order

object ( Order )

ТРЕБУЕТСЯ : Информация о заказе, по которому была произведена оплата.

payment

object ( Payment )

ДОПОЛНИТЕЛЬНО : Информация о платеже. Примечание. В одном заказе возможны несколько платежей, но он будет содержать только информацию о платеже, указанном в исходном запросе. Доступно не для всех типов заказов.

Счет клиента

Информация о счете клиента

Представление JSON
{
  "customerEmail": string,
  "customerName": string
}
Поля
customerEmail

string

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

customerName

string

ТРЕБУЕТСЯ : Имя клиента.

Заказ

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

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

string ( int64 format)

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

orderId

string

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

currencyCode

string

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

subTotalAmount

string ( Int64Value format)

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

totalAmount

string ( Int64Value format)

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

shippingAddress

object ( Address )

НЕОБЯЗАТЕЛЬНО : адрес доставки физических товаров в этом заказе.

items[]

object ( Item )

НЕОБХОДИМО : список товаров, которые были частью этого заказа.

taxes[]

object ( Tax )

НЕОБХОДИМО : список товаров, которые были частью этого заказа. Этот список может быть пуст.

Адрес

Структура, содержащая информацию об адресе.

Представление JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Поля
name

string

НЕОБЯЗАТЕЛЬНО : полное имя клиента.

addressLine[]

string

НЕОБЯЗАТЕЛЬНО : содержит неструктурированный текст адреса.

localityName

string

ДОПОЛНИТЕЛЬНО : это довольно нечеткий термин, но обычно он относится к части адреса, относящейся к городу/населенному пункту. В регионах мира, где населенные пункты плохо определены или плохо вписываются в эту структуру (например, Япония и Китай), оставьте localityName пустым и используйте адресную строку.

Примеры: город США, IT-коммуна, почтовый город Великобритании.

administrativeAreaName

string

НЕОБЯЗАТЕЛЬНО : административная единица высшего уровня в этой стране. Примеры: штат США, ИТ-регион, провинция Си-Эн, префектура Японии.

postalCodeNumber

string

НЕОБЯЗАТЕЛЬНО : несмотря на название, значения postalCodeNumber часто являются буквенно-цифровыми. Примеры: «94043», «SW1W», «SW1W 9TQ».

countryCode

string

ДОПОЛНИТЕЛЬНО : Код страны адреса клиента, ожидается, что это будет ISO-3166-1 Alpha-2.

Элемент

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

Представление 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 .

Оплата

Информация об оплате.

Представление JSON
{
  "billingAddress": {
    object (Address)
  },
  "amount": string,
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
Поля
billingAddress

object ( Address )

НЕОБХОДИМО : платежный адрес для этого платежа.

amount

string ( Int64Value format)

ТРЕБУЕТСЯ : сумма этого платежа, представленная в виде микродолей валюты, указанной в order.currencyCode . Примечание. Может не совпадать с order.totalAmount , если заказ был оплачен несколькими платежами.

refunds[]

object ( Refund )

ТРЕБУЕТСЯ : Список возмещений по этому платежу. Этот список может быть пуст.

Поле объединения fopDetails .

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

cardDetails

object ( PaymentCardDetails )

НЕОБЯЗАТЕЛЬНО : Платежные реквизиты для кредитных и дебетовых карт FoPs.

Возвращать деньги

Информация о возврате средств по платежу.

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

string ( Int64Value format)

ТРЕБУЕТСЯ : возвращаемая сумма, положительное число микро в валюте, указанной в order.currencyCode .

initiatedTimestamp

string ( int64 format)

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

ОплатаCardDetails

Платежные реквизиты для кредитных и дебетовых карт.

Представление JSON
{
  "authResult": enum (AuthResult)
}
Поля
authResult

enum ( AuthResult )

ТРЕБУЕТСЯ : Результат авторизации платежа.

AuthResult

Результаты аутентификации платежа.

перечисления
UNKNOWN_RESULT Никогда не устанавливайте это значение по умолчанию!
APPROVED Авторизация одобрена.
DENIED Авторизация запрещена.
NOT_ATTEMPTED Авторизация не предпринималась.