- HTTP-запрос
- Тело запроса
- Тело ответа
- ОплатаПоискКритерии
- АрнКритерии
- GoogleTransactionReferenceNumberCriteria
- Критерии захвата запроса
- RequestOriginator
- GetDisputeInquiryReportResultCode
- Отчет о покупке
- Счет клиента
- Заказ
- Адрес
- Элемент
- налог
- Оплата
- Возвращать деньги
- ОплатаCardDetails
- AuthResult
Получите отчет, который предоставляет информацию для облегчения разговора службы поддержки с пользователем относительно потенциального спора о платеже.
Если конечная точка обнаружит ошибку при обработке запроса, ответ от этой конечной точки будет иметь тип
.ErrorResponse
Ответы на этот запрос могут быть пустыми, если этот метод не возвращает HTTP 200. Тело ответа пусто в ситуациях, когда
с четким описанием может помочь злоумышленнику понять идентификатор учетной записи платежного интегратора других интеграторов. В этих ситуациях, когда либо ключ подписи не совпадает, либо идентификатор интегратора платежей не найден, либо ключ шифрования неизвестен, этот метод вернет HTTP 404 с пустым телом. Если подпись запроса удалось проверить, в теле ответа будет возвращена дополнительная информация об ошибке.ErrorResponse
Пример запроса выглядит так:
{
"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 | ТРЕБУЕТСЯ : идентификатор учетной записи платежного интегратора, который идентифицирует вызывающую сторону, и связанные договорные ограничения для этого взаимодействия. |
paymentLookupCriteria | НЕОБХОДИМО : критерии, указывающие платеж, который необходимо найти для этого запроса. |
existingGoogleClaimId | НЕОБЯЗАТЕЛЬНЫЙ : сгенерированная Google строка, возвращенная предыдущим вызовом Если его нет, будет сгенерирован новый идентификатор заявки. Вызывающий может предоставить Идентификатор утверждения, который заполняется здесь или создается, будет возвращен в поле Недопустимо указывать |
requestOriginator | ТРЕБУЕТСЯ : Информация об организации или организационной подгруппе, которая инициировала этот запрос. |
Тело ответа
Полезные данные ответа для метода getDisputeInquiryReport
.
В случае успеха тело ответа содержит данные со следующей структурой:
Представление JSON |
---|
{ "responseHeader": { object ( |
Поля | |
---|---|
responseHeader | ТРЕБУЕТСЯ : Общий заголовок для всех ответов. |
result | НЕОБХОДИМО : результат этого вызова. |
googleClaimId | НЕОБЯЗАТЕЛЬНО . Строка, сгенерированная Google, которая однозначно идентифицирует этот спор клиента. (Присутствует тогда и только тогда, когда Если в запросе был указан |
report | НЕОБЯЗАТЕЛЬНО : Подробная информация, относящаяся к оспариванию платежа, указанного в запросе. (Присутствует тогда и только тогда, когда |
ОплатаПоискКритерии
Контейнер для критериев, которые могут однозначно искать платеж. Одно (и только одно) поле участника должно быть заполнено.
Представление JSON |
---|
{ // Union field |
Поля | |
---|---|
| |
arnCriteria | ДОПОЛНИТЕЛЬНО : поиск на основе ссылочного номера эквайера (ARN). |
googleTransactionReferenceNumberCriteria | НЕОБЯЗАТЕЛЬНО : поиск на основе ссылочного номера транзакции Google. |
captureRequestCriteria | ДОПОЛНИТЕЛЬНО : Поиск на основе идентификатора запроса захвата. |
АрнКритерии
Критерии поиска платежа на основе ссылочного номера эквайера (ARN).
Представление JSON |
---|
{ "acquirerReferenceNumber": string, "authorizationCode": string } |
Поля | |
---|---|
acquirerReferenceNumber | ТРЕБУЕТСЯ : Ссылочный номер эквайера (ARN), который однозначно идентифицирует платеж. Должен состоять из 23 цифр. |
authorizationCode | ТРЕБУЕТСЯ : Код авторизации для транзакции. |
GoogleTransactionReferenceNumberCriteria
Критерии поиска платежа на основе сгенерированного Google ссылочного номера транзакции.
Представление JSON |
---|
{ "googleTransactionReferenceNumber": string, "authorizationCode": string } |
Поля | |
---|---|
googleTransactionReferenceNumber | ТРЕБУЕТСЯ : сгенерированный Google ссылочный номер транзакции, который однозначно идентифицирует платеж. |
authorizationCode | ТРЕБУЕТСЯ : Код авторизации для транзакции. |
Критерии захвата запроса
Критерии поиска платежа на основе исходного запроса захвата.
Представление JSON |
---|
{ "captureRequestId": string } |
Поля | |
---|---|
captureRequestId | ТРЕБУЕТСЯ : уникальный идентификатор для этой транзакции. Это |
RequestOriginator
Информация об организации или организационной подгруппе и, возможно, о сотруднике, от которого исходит этот запрос. Это позволяет Google выявлять проблемы или злоупотребления и внедрять средства контроля на более детальном уровне, чем paymentIntegratorAccountId
. Это особенно ценно, когда вызывающая сторона является промежуточным поставщиком услуг, который получает запросы от нескольких внешних клиентов.
Представление JSON |
---|
{ "organizationId": string, "organizationDescription": string, "agentId": string } |
Поля | |
---|---|
organizationId | ТРЕБУЕТСЯ : Идентификатор компании, организации или организационной группы, от которой исходит этот запрос. Должен быть уникальным в рамках этого |
organizationDescription | ТРЕБУЕТСЯ . Удобочитаемое название или описание организации, которые можно использовать для облегчения общения между сотрудниками Google и интегратором в отношении этой организации. |
agentId | НЕОБЯЗАТЕЛЬНО : уникальный идентификатор конкретного агента (сотрудника) организации, идентифицированной с помощью |
GetDisputeInquiryReportResultCode
Результат вызова метода getDisputeInquiryReport
.
перечисления | |
---|---|
UNKNOWN_RESULT | Никогда не устанавливайте это значение по умолчанию! |
SUCCESS | Платеж найден, отчет предоставлен. |
PAYMENT_NOT_FOUND | Запрошенный платеж не найден. |
PAYMENT_TOO_OLD | Запрошенный платеж был найден, но отчет не был предоставлен из-за давности платежа. |
ORDER_CANNOT_BE_RETURNED | Запрошенный платеж относится к существующему заказу, но не может быть возвращен. К причинам относятся случаи, когда заказ был удален по требованию его владельца. |
NO_ADDITIONAL_DETAILS | Запрошенный платеж найден, но отчет недоступен. |
Отчет о покупке
Отчет, содержащий соответствующие сведения о покупке, связанной с запрошенным платежом.
Представление JSON |
---|
{ "customerAccount": { object ( |
Поля | |
---|---|
customerAccount | ТРЕБУЕТСЯ : Информация о клиенте и его счете. |
order | ТРЕБУЕТСЯ : Информация о заказе, по которому была произведена оплата. |
payment | ДОПОЛНИТЕЛЬНО : Информация о платеже. Примечание. В одном заказе возможны несколько платежей, но он будет содержать только информацию о платеже, указанном в исходном запросе. Доступно не для всех типов заказов. |
Счет клиента
Информация о счете клиента
Представление JSON |
---|
{ "customerEmail": string, "customerName": string } |
Поля | |
---|---|
customerEmail | ОБЯЗАТЕЛЬНО : адрес электронной почты, связанный с учетной записью Google клиента. |
customerName | ТРЕБУЕТСЯ : Имя клиента. |
Заказ
Информация о заказе.
Представление JSON |
---|
{ "timestamp": string, "orderId": string, "currencyCode": string, "subTotalAmount": string, "totalAmount": string, "shippingAddress": { object ( |
Поля | |
---|---|
timestamp | ДОПОЛНИТЕЛЬНО : Отметка времени, когда заказ был сделан, представленный в миллисекундах с начала эпохи. Доступно не для всех типов заказов. |
orderId | НЕОБЯЗАТЕЛЬНО : строка, однозначно идентифицирующая этот заказ. Доступно не для всех типов заказов. |
currencyCode | ДОПОЛНИТЕЛЬНО : 3-буквенный код валюты ISO 4217 для всех сумм в этом заказе. Доступно не для всех типов заказов. |
subTotalAmount | НЕОБЯЗАТЕЛЬНО : общая сумма этого заказа до налогообложения, представленная в виде микродолей валюты, указанной в |
totalAmount | НЕОБЯЗАТЕЛЬНО : общая сумма этого ордера, включая налог, представленная в виде микродолей валюты, указанной в |
shippingAddress | НЕОБЯЗАТЕЛЬНО : адрес доставки физических товаров в этом заказе. |
items[] | НЕОБХОДИМО : список товаров, которые были частью этого заказа. |
taxes[] | НЕОБХОДИМО : список товаров, которые были частью этого заказа. Этот список может быть пуст. |
Адрес
Структура, содержащая информацию об адресе.
Представление JSON |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Поля | |
---|---|
name | НЕОБЯЗАТЕЛЬНО : полное имя клиента. |
addressLine[] | НЕОБЯЗАТЕЛЬНО : содержит неструктурированный текст адреса. |
localityName | ДОПОЛНИТЕЛЬНО : это довольно нечеткий термин, но обычно он относится к части адреса, относящейся к городу/населенному пункту. В регионах мира, где населенные пункты плохо определены или плохо вписываются в эту структуру (например, Япония и Китай), оставьте localityName пустым и используйте адресную строку. Примеры: город США, IT-коммуна, почтовый город Великобритании. |
administrativeAreaName | НЕОБЯЗАТЕЛЬНО : административная единица высшего уровня в этой стране. Примеры: штат США, ИТ-регион, провинция Си-Эн, префектура Японии. |
postalCodeNumber | НЕОБЯЗАТЕЛЬНО : несмотря на название, значения postalCodeNumber часто являются буквенно-цифровыми. Примеры: «94043», «SW1W», «SW1W 9TQ». |
countryCode | ДОПОЛНИТЕЛЬНО : Код страны адреса клиента, ожидается, что это будет ISO-3166-1 Alpha-2. |
Элемент
Информация о позиции в заказе.
Представление JSON |
---|
{ "description": string, "merchant": string, "quantity": string, "totalPrice": string, "googleProductName": string } |
Поля | |
---|---|
description | НЕОБЯЗАТЕЛЬНО : Описание приобретенного товара. Доступно не для всех типов заказов. |
merchant | ТРЕБУЕТСЯ : Продавец, художник или производитель предмета. |
quantity | НЕОБЯЗАТЕЛЬНО : количество заказанного товара. Это поле будет опущено, если целые количества не применимы к продукту (например, дозированные продукты могут иметь дробное количество). |
totalPrice | НЕОБЯЗАТЕЛЬНО : Общая цена этого предмета, представленная в микродоллах валюты, указанной в |
googleProductName | ОБЯЗАТЕЛЬНО : название службы продукта Google для элемента. |
налог
Информация о налоге, который применяется к этому заказу.
Представление JSON |
---|
{ "description": string, "amount": string } |
Поля | |
---|---|
description | ТРЕБУЕТСЯ : Описание налога. |
amount | ТРЕБУЕТСЯ : сумма налога, представленная в виде микродолей валюты, указанной в |
Оплата
Информация об оплате.
Представление JSON |
---|
{ "billingAddress": { object ( |
Поля | |
---|---|
billingAddress | НЕОБХОДИМО : платежный адрес для этого платежа. |
amount | ТРЕБУЕТСЯ : сумма этого платежа, представленная в виде микродолей валюты, указанной в |
refunds[] | ТРЕБУЕТСЯ : Список возмещений по этому платежу. Этот список может быть пуст. |
Поле объединения | |
cardDetails | НЕОБЯЗАТЕЛЬНО : Платежные реквизиты для кредитных и дебетовых карт FoPs. |
Возвращать деньги
Информация о возврате средств по платежу.
Представление JSON |
---|
{ "amount": string, "initiatedTimestamp": string } |
Поля | |
---|---|
amount | ТРЕБУЕТСЯ : возвращаемая сумма, положительное число микро в валюте, указанной в |
initiatedTimestamp | ТРЕБУЕТСЯ : Отметка времени начала возврата, представленная в миллисекундах с начала эпохи. |
ОплатаCardDetails
Платежные реквизиты для кредитных и дебетовых карт.
Представление JSON |
---|
{
"authResult": enum ( |
Поля | |
---|---|
authResult | ТРЕБУЕТСЯ : Результат авторизации платежа. |
AuthResult
Результаты аутентификации платежа.
перечисления | |
---|---|
UNKNOWN_RESULT | Никогда не устанавливайте это значение по умолчанию! |
APPROVED | Авторизация одобрена. |
DENIED | Авторизация запрещена. |
NOT_ATTEMPTED | Авторизация не предпринималась. |