Method: getDisputeInquiryReport

Pobierz raport zawierający informacje ułatwiające rozmowę z obsługą klienta w sprawie potencjalnego sporu dotyczącego płatności.

Jeśli podczas przetwarzania żądania punkt końcowy otrzyma błąd, odpowiedź z tego punktu końcowego będzie typu ErrorResponse.

Jeśli ta metoda nie zwraca kodu HTTP 200, odpowiedzi na to zapytanie mogą być puste. Treść odpowiedzi jest pusta w sytuacjach, gdy można użyć ErrorResponse z wyraźnym opisem, aby ułatwić atakującemu rozpoznanie identyfikatora konta integratora płatności innych integratorów. W takich przypadkach, jeśli klucz podpisywania nie pasuje, nie znaleziono identyfikatora integratora płatności lub klucz szyfrowania jest nieznany, ta metoda zwraca kod HTTP 404 z pustą treścią. Jeśli będzie można zweryfikować podpis w żądaniu, w treści odpowiedzi zostaną zwrócone dodatkowe informacje o błędzie.

Przykładowe żądanie wygląda tak:


{
  "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"
  }
}

Przykładowa odpowiedź:


{
  "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"
      }
    }
  }
}

Żądanie HTTP

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

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Pola
requestHeader

object (RequestHeader)

REQUIRED: wspólny nagłówek dla wszystkich żądań,

paymentIntegratorAccountId

string

WYMAGANE: identyfikator konta integratora płatności, który identyfikuje rozmówcę i powiązane ograniczenia umowne dotyczące tej interakcji.

paymentLookupCriteria

object (PaymentLookupCriteria)

WYMAGANE: kryteria określające płatność, która ma zostać sprawdzona w ramach tego zapytania.

existingGoogleClaimId

string

OPCJONALNIE: ciąg znaków wygenerowany przez Google, który został zwrócony przez poprzednie wywołanie do użytkownika getDisputeInquiryReport, który jednoznacznie identyfikuje roszczenie od sporu.

Jeśli go nie ma, zostanie wygenerowany nowy identyfikator roszczenia. Rozmówca może podać wartość googleClaimId, która została zwrócona podczas poprzedniej rozmowy z użytkownikiem getDisputeInquiryReport, jeśli jest to kontynuacja tego samego sporu klienta.

Identyfikator roszczenia, który zostanie tu wypełniony lub wygenerowany, zostanie zwrócony w polu googleClaimId odpowiedzi.

Nieprawidłowa wartość googleClaimId, która nie została zwrócona przez poprzednie wywołanie do getDisputeInquiryReport. W takim przypadku zwracane jest nieprawidłowe żądanie HTTP 400.

requestOriginator

object (RequestOriginator)

WYMAGANE: informacje o organizacji lub podgrupie organizacyjnej, z której pochodzi to żądanie.

Treść odpowiedzi

Ładunek odpowiedzi na potrzeby metody getDisputeInquiryReport.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
Pola
responseHeader

object (ResponseHeader)

WYMAGANE: wspólny nagłówek wszystkich odpowiedzi.

result

enum (GetDisputeInquiryReportResultCode)

WYMAGANE: wynik tego połączenia.

googleClaimId

string

OPCJONALNIE: ciąg wygenerowany przez Google, który jednoznacznie identyfikuje spór klienta. Przedstaw prezentację tylko wtedy, gdy result ma wartość SUCCESS.

Jeśli w żądaniu został wpisany element existingGoogleClaimId, będzie on miał taką samą wartość. W przeciwnym razie zostanie ona wygenerowana niedawno. Tę wartość można podać w przyszłych żądaniach getDisputeInquiryReport, jeśli są one sporami tego samego klienta.

report

object (PurchaseReport)

OPCJONALNIE: szczegóły dotyczące sporu dotyczącego płatności zidentyfikowanej w żądaniu. Przedstaw prezentację tylko wtedy, gdy result ma wartość SUCCESS.

kryteria wyszukiwania płatności

Kontener na kryteria, które mogą jednoznacznie wyszukać płatność. Musisz wypełnić jedno (i tylko jedno) pole członka.

Zapis 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.
}
Pola

Pole sumy criteria.

criteria może mieć tylko jedną z tych wartości:

arnCriteria

object (ArnCriteria)

OPCJONALNIE: wyszukiwanie na podstawie numeru referencyjnego firmy przejmującej (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPCJONALNIE: wyszukiwanie na podstawie numeru referencyjnego transakcji Google.

captureRequestCriteria

object (CaptureRequestCriteria)

OPTIONAL: wyszukiwanie na podstawie identyfikatora żądania przechwytywania.

Kryteria Arn

Kryteria wyszukiwania płatności według numeru referencyjnego firmy przejmującej (ARN).

Zapis JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Pola
acquirerReferenceNumber

string

WYMAGANE: niepowtarzalny numer referencyjny centrum autoryzacyjnego (ARN), który jednoznacznie identyfikuje płatność. Musi składać się z 23 cyfr.

authorizationCode

string

WYMAGANE: kod autoryzacji transakcji.

Kryteria liczby transakcji Google

Kryteria wyszukiwania płatności na podstawie wygenerowanego przez Google numeru referencyjnego transakcji.

Zapis JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Pola
googleTransactionReferenceNumber

string

WYMAGANE: wygenerowany przez Google numer referencyjny transakcji, który jednoznacznie identyfikuje płatność.

authorizationCode

string

WYMAGANE: kod autoryzacji transakcji.

Przechwytywanie kryteriów

Kryteria wyszukiwania płatności na podstawie pierwotnego żądania zapisu.

Zapis JSON
{
  "captureRequestId": string
}
Pola
captureRequestId

string

WYMAGANE: unikalny identyfikator tej transakcji. To jest requestId wygenerowany przez Google podczas połączenia capture, które jest wyszukiwane.

RequestOriginator

Informacje o organizacji lub podgrupie organizacyjnej i opcjonalnie pracownika, z którego pochodzi to żądanie. Dzięki temu Google może wykrywać problemy i nadużycia i wdrażać mechanizmy kontroli na bardziej szczegółowym poziomie niż paymentIntegratorAccountId. Jest to szczególnie przydatne, gdy obiekt wywołujący jest pośrednikiem, który pozyskuje żądania od wielu zewnętrznych klientów.

Zapis JSON
{
  "organizationId": string,
  "organizationDescription": string,
  "agentId": string
}
Pola
organizationId

string

WYMAGANE: identyfikator firmy, organizacji lub grupy, z której pochodzi żądanie. Nie może się powtarzać w tym elemencie paymentIntegratorAccountId.

organizationDescription

string

WYMAGANE: czytelna dla człowieka nazwa lub opis organizacji, które mogą ułatwiać komunikację między pracownikami Google a integratorami tej organizacji.

agentId

string

OPTIONAL: unikalny identyfikator określonego agenta (pracownika) organizacji zidentyfikowanej przez firmę organizationId, z której pochodzi to żądanie. Nie może się powtarzać w tym elemencie organizationId.

Uzyskaj wynikowe zapytanie

Wynik wywołania metody getDisputeInquiryReport.

Wartości w polu enum
UNKNOWN_RESULT Nie ustawiaj nigdy tej wartości domyślnej!
SUCCESS Znaleziono płatność i dostarczony raport.
PAYMENT_NOT_FOUND Żądana płatność nie została znaleziona.
PAYMENT_TOO_OLD Żądana płatność została znaleziona, ale raport nie został dostarczony z powodu wieku płatności.
ORDER_CANNOT_BE_RETURNED Żądana płatność należy do zamówienia, które istnieje, ale nie można go zwrócić. Możliwe przyczyny to usunięcie zamówienia na żądanie właściciela.
NO_ADDITIONAL_DETAILS Żądana płatność została znaleziona, ale raport jest niedostępny.

Raport o zakupach

raport zawierający istotne informacje na temat zakupu powiązanego z żądaną płatnością;

Zapis JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
Pola
customerAccount

object (CustomerAccount)

WYMAGANE: informacje o kliencie i jego koncie.

order

object (Order)

WYMAGANE: informacje dotyczące zamówienia, w którym dokonano płatności.

payment

object (Payment)

OPTIONAL: informacje dotyczące płatności. Uwaga: w jednym zamówieniu można dokonać wielu płatności, ale będą one zawierać tylko informacje o płatności określonej w pierwotnym żądaniu. Dostępne w przypadku niektórych typów zamówień.

Konto klienta

Informacje o koncie klienta

Zapis JSON
{
  "customerEmail": string,
  "customerName": string
}
Pola
customerEmail

string

WYMAGANE: adres e-mail powiązany z kontem Google klienta.

customerName

string

WYMAGANE: nazwa klienta.

Zamówienie

Informacje o zamówieniu.

Zapis JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Pola
timestamp

string (int64 format)

OPTIONAL: sygnatura czasowa złożenia zamówienia (w milisekundach od początku epoki). Dostępne w przypadku niektórych typów zamówień.

orderId

string

OPTIONAL: ciąg jednoznacznie identyfikujący to zamówienie. Dostępne w przypadku niektórych typów zamówień.

currencyCode

string

OPCJONALNIE: trzyliterowy kod waluty w standardzie ISO 4217 obejmujący wszystkie kwoty z tego zamówienia. Dostępne w przypadku niektórych typów zamówień.

subTotalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota zamówienia przed opodatkowaniem, podana w postaci mikro waluty podanej w walucie order.currencyCode. Jest to SUM(items.totalPrice). Dostępne w przypadku niektórych typów zamówień.

totalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota zamówienia wraz z podatkami wyrażona jako micros waluty wybranej w order.currencyCode. Jest to subTotalAmount + SUM(taxes.amount). Dostępne w przypadku niektórych typów zamówień.

shippingAddress

object (Address)

OPCJONALNIE: adres dostawy produktów fizycznych w tym zamówieniu.

items[]

object (Item)

WYMAGANE: lista produktów, które były częścią tego zamówienia.

taxes[]

object (Tax)

WYMAGANE: lista produktów, które były częścią tego zamówienia. Ta lista może być pusta.

Adres

Struktura informacji o adresie.

Zapis JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Pola
name

string

OPTIONAL: pełna nazwa klienta.

addressLine[]

string

OPTIONAL: zawiera nieuporządkowany tekst adresu.

localityName

string

OPCJONALNIE: ta nazwa jest niejednoznaczna, ale ogólnie odnosi się do części adresu miasta. W regionach świata, w których miasta nie są dobrze zdefiniowane lub nie pasują do tej struktury (np. w Japonii i Chinach), pozostaw pole localityName puste i użyj atrybutu addressLine.

Przykłady: miasto w USA, dział IT, pocztówka z Wielkiej Brytanii.

administrativeAreaName

string

OPCJONALNIE: podrzędna jednostka administracyjna w tym kraju”. Przykłady: stan USA, region IT, prowincja CN, prefektura JP.

postalCodeNumber

string

OPCJONALNIE: mimo że jej nazwa zawiera często znaki alfanumeryczne. Przykłady: „94043”, „SW1W”, „SW1W 9TQ”.

countryCode

string

OPCJONALNIE: kod kraju powiązany z adresem klienta. Wymagany jest standard ISO-3166-1 alfa-2.

Element

Informacje o elemencie w zamówieniu.

Zapis JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Pola
description

string

OPCJONALNIE: opis zakupionego produktu. Dostępne w przypadku niektórych typów zamówień.

merchant

string

WYMAGANE: sprzedawca, wykonawca lub producent produktu.

quantity

string (Int64Value format)

OPCJONALNIE: liczba zamówionych produktów.

Wartość w tym polu zostanie pominięta, jeśli w przypadku danego produktu nie można użyć liczby całkowitej (np. produkty objęte pomiarem mogą mieć wartości ułamkowe).

totalPrice

string (Int64Value format)

OPCJONALNY: łączna cena produktu wyrażona w micros w walucie określonej w order.currencyCode. Jeśli wypełnisz pole quantity, będzie to łączna cena całej ilości. Dostępne w przypadku niektórych typów zamówień.

googleProductName

string

WYMAGANE: nazwa usługi Google produktu.

Podatek

Informacje dotyczące podatku, który ma zastosowanie do tego zamówienia.

Zapis JSON
{
  "description": string,
  "amount": string
}
Pola
description

string

WYMAGANE: opis podatku.

amount

string (Int64Value format)

WYMAGANE: kwota podatku podana jako micros waluty wybranej w order.currencyCode.

Płatność

Informacje o płatności.

Zapis 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.
}
Pola
billingAddress

object (Address)

WYMAGANE: adres rozliczeniowy tej płatności.

amount

string (Int64Value format)

REQUIRED: kwota tej płatności wyrażona w micros waluty wybranej w order.currencyCode. Uwaga: wartość w polu order.totalAmount może być inna, jeśli zamówienie zostało opłacone kilkoma płatnościami.

refunds[]

object (Refund)

WYMAGANE: lista zwrotów środków za tę płatność. Ta lista może być pusta.

Pole sumy fopDetails.

fopDetails może mieć tylko jedną z tych wartości:

cardDetails

object (PaymentCardDetails)

OPCJONALNIE: dane do płatności związane z konwersjami kart kredytowych i debetowych.

Zwrot środków

Informacje o zwrocie środków dokonanym na rzecz płatności.

Zapis JSON
{
  "amount": string,
  "initiatedTimestamp": string
}
Pola
amount

string (Int64Value format)

WYMAGANE: kwota zwrotu, dodatnia wartość micros waluty wybranej w order.currencyCode.

initiatedTimestamp

string (int64 format)

WYMAGANE: sygnatura czasowa rozpoczęcia zwrotu (w milisekundach od początku epoki).

Karta Płatności

dane do płatności powiązane z kartami kredytowymi i debetowymi;

Zapis JSON
{
  "authResult": enum (AuthResult)
}
Pola
authResult

enum (AuthResult)

WYMAGANE: wynik autoryzacji płatności.

Wynik uwierzytelniania

Wyniki uwierzytelniania płatności.

Wartości w polu enum
UNKNOWN_RESULT Nie ustawiaj nigdy tej wartości domyślnej!
APPROVED Autoryzacja zatwierdzona.
DENIED Autoryzacja odrzucona.
NOT_ATTEMPTED Nie podjęto próby uwierzytelnienia.