Method: getDisputeInquiryReport

Pobierz raport z informacjami, które ułatwią Ci prowadzenie z obsługą klienta rozmowy na temat potencjalnego sporu dotyczącego płatności.

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

Jeśli ta metoda nie zwróci kodu HTTP 200, odpowiedzi na to zapytanie mogą być puste. Treść odpowiedzi jest pusta w sytuacjach, gdy ErrorResponse z jasnym opisem mógłby pomóc atakującemu zrozumieć identyfikator konta integratora płatności innych integratorów. W takich sytuacjach, gdy klucz podpisywania jest niezgodny, nie znaleziono identyfikatora integratora płatności lub klucz szyfrowania był nieznany, metoda zwraca błąd HTTP 404 z pustą treścią. Jeśli uda się zweryfikować podpis żądania, w treści odpowiedzi pojawią się 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ź wygląda tak:


{
  "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 dzwoniącego oraz powiązane ograniczenia umowne związane z tą interakcją.

paymentLookupCriteria

object (PaymentLookupCriteria)

WYMAGANE: kryteria wskazujące płatność, która ma być szukana w przypadku tego zapytania.

existingGoogleClaimId

string

OPCJONALNIE: ciąg tekstowy wygenerowany przez Google zwrócony przez poprzednie wywołanie funkcji getDisputeInquiryReport, który jednoznacznie identyfikuje roszczenie w związku ze sprzeciwem klienta.

Jeśli go nie podasz, zostanie wygenerowany nowy identyfikator roszczenia. Rozmówca może podać googleClaimId, który został zwrócony przez poprzednie wywołanie getDisputeInquiryReport, jeśli jest on kontynuacją tego samego sporu klienta.

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

Podanie wartości googleClaimId, która nie została zwrócona w ramach poprzedniego wywołania funkcji getDisputeInquiryReport, jest niepoprawna. W takim przypadku zwracany jest kod HTTP 400 Bad Request (Nieprawidłowe żądanie) HTTP 400 (Nieprawidłowe żądanie).

requestOriginator

object (RequestOriginator)

WYMAGANE: informacje o organizacji lub podgrupie organizacyjnej, która wysłała tę prośbę.

Treść odpowiedzi

Ładunek odpowiedzi dla 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)

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

result

enum (GetDisputeInquiryReportResultCode)

REQUIRED: wynik tego wywołania.

googleClaimId

string

OPCJONALNIE: ciąg znaków wygenerowany przez Google, który jednoznacznie identyfikuje spór klienta. (widoczna tylko wtedy, gdy result zakończy się powodzeniem).

Jeśli żądanie zawierało pole existingGoogleClaimId, będzie to ta sama wartość. W przeciwnym razie będzie to nowo wygenerowana wartość. Tę wartość możesz podać w przyszłych żądaniach getDisputeInquiryReport, jeśli są one częścią tego samego sporu klienta.

report

object (PurchaseReport)

OPCJONALNE: szczegóły istotne w odniesieniu do sporu dotyczącego płatności określonego w żądaniu. (widoczna tylko wtedy, gdy result zakończy się powodzeniem).

RequestHeader

Obiekt nagłówka zdefiniowany we wszystkich żądaniach wysyłanych do serwera.

Zapis JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Pola
requestId

string

REQUIRED: unikalny identyfikator tego żądania.

Jest to ciąg o maksymalnej długości 100 znaków, który zawiera tylko znaki „a–z”, „A–Z”, „0–9”, „:”, „-” i „_”.

requestTimestamp

string (int64 format)

REQUIRED: sygnatura czasowa tego żądania w milisekundach od początku epoki. Odbiorca powinien sprawdzić, czy ta sygnatura czasowa mieści się w zakresie ± 60 s „teraz”. Ta sygnatura czasowa żądania nie jest idempotentna przy ponownych próbach.

userLocale
(deprecated)

string

WYCOFANE: opcjonalnie dwu- lub trzyliterowy kod języka w formacie ISO 639-2 alfa 3, po którym następuje łącznik i kod kraju w formacie ISO 3166-1 Alpha-2, np. „pt”, „pt-BR”, „fil” lub „fil-PH”. Ułatwia to obsługę pól userMessage w odpowiedzi.

protocolVersion

object (Version)

REQUIRED: wersja żądania.

Wersja

Obiekt wersji będący ustrukturyzowaną formą klasycznej struktury wersji a.b.c. Główne wersje tego samego numeru zawsze będą zgodne. Pamiętaj, że drobne zmiany i zmiany mogą się zmieniać często i bez powiadomienia. Integrator musi obsługiwać wszystkie żądania tej samej wersji głównej.

Zapis JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Pola
major

integer

REQUIRED: wersja główna. Ten element jest oznaczony w przypadku żądań zgodności z różnymi wersjami Google Workspace.

minor

integer

REQUIRED: wersja podrzędna. To oznacza ważne poprawki błędów.

revision

integer

REQUIRED: wersja podrzędna. Oznaczają poprawki drobnych błędów.

PaymentLookupCriteria

Kontener kryteriów, które mogą jednoznacznie wyszukiwać płatność. Musisz wypełnić jedno (i tylko jedno) pole użytkownika.

Zapis JSON
{

  // Union field criteria can be only one of the following:
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // 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 centrum autoryzacyjnego (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

OPCJONALNIE: wyszukiwanie na podstawie numeru referencyjnego transakcji Google.

ArnCriteria

Kryteria wyszukiwania płatności na podstawie numeru referencyjnego centrum autoryzacyjnego (ARN).

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

string

WYMAGANE: numer referencyjny centrum autoryzacyjnego (ARN), który jednoznacznie identyfikuje płatność. Musi mieć 23 cyfry.

authorizationCode

string

REQUIRED: kod autoryzacji transakcji.

GoogleTransactionReferenceNumberCriteria

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

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

string

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

authorizationCode

string

REQUIRED: kod autoryzacji transakcji.

RequestOriginator

Informacje o organizacji lub podgrupie organizacyjnej oraz opcjonalnie pracownikach, od których pochodzi ta prośba. Dzięki temu możemy wykrywać problemy lub nadużycia i wdrażać rozwiązania kontrolne na bardziej szczegółowym poziomie niż paymentIntegratorAccountId. Jest ona szczególnie przydatna, gdy osoba wywołująca jest pośrednikiem, który pozyskuje żądania od wielu klientów zewnętrznych.

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

string

WYMAGANE: identyfikator firmy, organizacji lub grupy organizacyjnej, z której pochodzi to żądanie. Nie może się powtarzać w obrębie tej wartości (paymentIntegratorAccountId).

organizationDescription

string

WYMAGANE: czytelna dla człowieka nazwa lub opis organizacji, które mogą ułatwić komunikację między pracownikami Google a integratorem w związku z tą organizacją.

agentId

string

OPCJONALNIE: unikalny identyfikator konkretnego agenta (pracownika) organizacji zidentyfikowanej przez użytkownika organizationId, od którego pochodzi żądanie. Nie może się powtarzać w obrębie tej wartości (organizationId).

GetDisputeInquiryReportResultCode

Wynik wywołania metody getDisputeInquiryReport.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Płatność została znaleziona i przesłany jest raport.
PAYMENT_NOT_FOUND Nie znaleziono żądanej płatności.
PAYMENT_TOO_OLD Żądana płatność została znaleziona, ale nie otrzymaliśmy raportu ze względu na datę płatności.
ORDER_CANNOT_BE_RETURNED Żądana płatność należy do zamówienia, które istnieje, ale nie może zostać zwrócone. Obejmuje to przypadki, gdy orzeczenie zostało usunięte na prośbę jego właściciela.
NO_ADDITIONAL_DETAILS Żądana płatność została znaleziona, ale raport nie jest dostępny.

PurchaseReport

raport zawierający istotne szczegóły 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 dotyczące klienta i jego konta.

order

object (Order)

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

payment

object (Payment)

OPCJONALNE: informacje o płatności. Uwaga: w ramach jednego zamówienia można dokonać kilku płatności, ale będą one obejmować tylko informacje dotyczące płatności określonej w pierwotnym żądaniu. Opcja niedostępna w przypadku niektórych typów zamówień.

CustomerAccount

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

REQUIRED: nazwa klienta.

Zamów

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)

OPCJONALNIE: sygnatura czasowa złożenia zamówienia, wyrażona w milisekundach od początku epoki. Opcja niedostępna w przypadku niektórych typów zamówień.

orderId

string

OPCJONALNIE: ciąg znaków jednoznacznie identyfikujący zamówienie. Opcja niedostępna w przypadku niektórych typów zamówień.

currencyCode

string

OPCJONALNIE: 3-literowy kod waluty w formacie ISO 4217 dla wszystkich kwot w tym zamówieniu. Opcja niedostępna w przypadku niektórych typów zamówień.

subTotalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota zamówienia przed opodatkowaniem, wyrażona jako mikro waluty określonej w order.currencyCode. Ta wartość jest równa SUM(items.totalPrice). Opcja niedostępna w przypadku niektórych typów zamówień.

totalAmount

string (Int64Value format)

OPCJONALNIE: łączna kwota zamówienia razem z podatkiem, wyrażona jako mikro waluty podanej w polu order.currencyCode. Ta wartość jest równa subTotalAmount + SUM(taxes.amount). Opcja niedostępna w przypadku niektórych typów zamówień.

shippingAddress

object (Address)

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

items[]

object (Item)

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

taxes[]

object (Tax)

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

Adres

Struktura z informacjami o adresie.

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

string

OPCJONALNIE: imię i nazwisko klienta.

addressLine[]

string

OPCJONALNIE: przechowuje nieuporządkowany tekst adresu.

localityName

string

OPCJONALNIE: jest to przybliżone hasło, ale zwykle dotyczy ono części adresu miasta/miasteczka. W regionach świata, gdzie miejscowości nie są dobrze zdefiniowane lub nie pasują do tej struktury (np. w Japonii i Chinach), pozostaw pole localityName puste i użyj parametru addressLine.

Przykłady: miasto w USA, gmina IT, brytyjska poczta.

administrativeAreaName

string

OPCJONALNIE: najwyższy poziom podziału administracyjnego tego kraju „Przykłady: stan USA, region IT, prowincja CN, prefektura JP”.

postalCodeNumber

string

OPCJONALNIE: wbrew nazwie wartości wartościPostalCodeNumber mają często postać alfanumeryczną. Przykłady: „94043”, „SW1W”, „SW1W 9TQ”.

countryCode

string

OPCJONALNIE: kod kraju w adresie klienta. Oczekiwany kod to ISO-3166-1 Alpha-2.

Element

Informacje o elemencie zamówienia.

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

string

OPCJONALNY: opis zakupionego produktu. Opcja niedostępna w przypadku niektórych typów zamówień.

merchant

string

WYMAGANE: sprzedawca, wykonawca lub producent produktu.

quantity

string (Int64Value format)

OPTIONAL: zamówiona liczba sztuk produktu.

To pole zostanie pominięte, jeśli dane wyświetlane w ilościach całkowitych nie dotyczą danego produktu (produkty z pomiarem mogą być np. przedstawiane w ilościach ułamkowych).

totalPrice

string (Int64Value format)

OPCJONALNIE: łączna cena produktu wyrażona jako mikro waluty określonej w order.currencyCode. Jeśli pole quantity jest wypełnione, odzwierciedla łączną cenę całej ilości. Opcja niedostępna w przypadku niektórych typów zamówień.

googleProductName

string

WYMAGANE: nazwa usługi Google dotyczącej produktu.

Podatek

Informacje o podatku zastosowanym do tego zamówienia.

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

string

REQUIRED: opis podatku.

amount

string (Int64Value format)

WYMAGANE: kwota podatku wyrażona jako mikro waluty podanej w dyrektywie 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)

REQUIRED: adres rozliczeniowy na potrzeby tej płatności.

amount

string (Int64Value format)

WYMAGANE: kwota tej płatności wyrażona jako mikro waluty podanej w specyfikacji order.currencyCode. Uwaga: wartość ta może się różnić od wartości podanej w polu order.totalAmount, jeśli zamówienie zostało opłacone kilkoma płatnościami.

refunds[]

object (Refund)

REQUIRED: lista zwrotów środków w przypadku tej płatności. 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 kontami płatniczymi związanymi z kartami kredytowymi i debetowymi.

Zwrot środków

Informacje o zwrocie środków za płatność.

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

string (Int64Value format)

WYMAGANE: kwota zwrócona jako dodatnia liczba mikro waluty podanej w polu order.currencyCode.

initiatedTimestamp

string (int64 format)

REQUIRED: sygnatura czasowa zainicjowania zwrotu środków, wyrażona w milisekundach od początku epoki.

PaymentCardDetails

Szczegóły płatności dotyczące kart kredytowych i debetowych.

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

enum (AuthResult)

REQUIRED: wynik uwierzytelniania płatności.

AuthResult

Wyniki uwierzytelniania płatności.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
APPROVED Autoryzacja zatwierdzona.
DENIED Odmowa autoryzacji.
NOT_ATTEMPTED Nie podjęto próby autoryzacji.