Method: getOrderDetails

Ottieni un ordine che fornisca ai partner di Google la base per l'addebito agli utenti finali.

Se l'endpoint rileva un errore durante l'elaborazione della richiesta, la risposta da questo endpoint sarà di tipo ErrorResponse.

Le risposte a questa query potrebbero essere vuote se questo metodo non restituisce un HTTP 200. Il corpo della risposta è vuoto nelle situazioni in cui è possibile utilizzare un ErrorResponse con una descrizione chiara per aiutare un utente malintenzionato a comprendere l'identificatore dell'account dell'integratore dei pagamenti di altri integratori. In queste situazioni, in cui la chiave di firma non corrisponde, l'identificatore dell'integratore dei pagamenti non è stato trovato o la chiave di crittografia non era nota, questo metodo restituirà un errore HTTP 404 con un corpo vuoto. Se è possibile verificare la firma della richiesta, nel corpo della risposta verranno restituite informazioni aggiuntive sull'errore.

Una richiesta di esempio ha il seguente aspetto:


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

Ecco un esempio di risposta:


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

Richiesta HTTP

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

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

paymentIntegratorAccountId

string

REQUIRED: l'identificatore dell'account dell'integratore dei pagamenti che identifica il chiamante e i vincoli contrattuali associati per questa interazione.

orderLookupCriteria

object (OrderLookupCriteria)

REQUIRED: criteri che indicano l'ordine da cercare.

requestOriginator

object (RequestOriginator)

FACOLTATIVO: informazioni sull'organizzazione o sul sottogruppo dell'organizzazione che ha originato questa richiesta (se l'integratore ci chiama per conto di un'altra organizzazione).

Corpo della risposta

Payload della risposta per il metodo getOrderDetails.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetOrderDetailsResultCode),
  "order": {
    object (Order)
  }
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

result

enum (GetOrderDetailsResultCode)

OBBLIGATORIO: risultato di questa chiamata.

order

object (Order)

FACOLTATIVO: informazioni relative all'ordine con il quale è stato effettuato il pagamento. (Presenta solo se result ha SUCCESSO).

RequestHeader

Oggetto intestazione definito in tutte le richieste inviate al server.

Rappresentazione JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
Campi
requestId

string

REQUIRED: identificatore univoco della richiesta.

Si tratta di una stringa con una lunghezza massima di 100 caratteri e contenente solo i caratteri "a-z", "A-Z", "0-9", ":", "-" e "_".

requestTimestamp

string (int64 format)

REQUIRED: timestamp di questa richiesta espresso in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi rispetto a "now". Questo timestamp della richiesta non è idempotente al momento dei nuovi tentativi.

userLocale
(deprecated)

string

OBSOLETO: un codice lingua ISO 639-2 Alpha 3 a due o tre lettere facoltativamente seguito da un trattino e da un codice paese Alpha-2 ISO 3166-1, ad esempio "pt", "pt-BR", "fil" o "fil-PH". Utilizzalo per generare più campi userMessage nella risposta.

protocolVersion

object (Version)

REQUIRED: la versione della richiesta.

Versione

Oggetto versione, che è una forma strutturata della struttura della versione classica di a.b.c. È garantita la compatibilità delle versioni principali dello stesso numero. Tieni presente che le revisioni e le revisioni possono cambiare spesso e senza preavviso. L'integratore deve supportare tutte le richieste per la stessa versione principale.

Rappresentazione JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
Campi
major

integer

REQUIRED: versione principale. Questo stato è contrassegnato perché non è garantita la compatibilità delle richieste di compatibilità con versioni diverse.

minor

integer

REQUIRED: versione secondaria. Indica correzioni di bug significative.

revision

integer

REQUIRED: versione secondaria. Indica correzioni di bug minori.

OrderLookupCriteria

Criteri di ricerca dell'ordine.

Rappresentazione 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.
}
Campi

Campo di unione criteria.

criteria può essere solo uno dei seguenti:

dcb3CorrelationId

string

Ricerca basata sull'ID di correlazione DCB generato da Google che identifica in modo univoco il pagamento. Questo valore è stato generato da Google e inviato all'integratore dei pagamenti tramite fatturazione con l'operatore durante la chiamata di autenticazione.

arnCriteria

object (ArnCriteria)

Ricerca basata sul numero di riferimento dell'acquirente (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

Ricerca basata sul numero di riferimento della transazione Google.

ArnCriteria

Criteri di ricerca dei pagamenti basati sul numero di riferimento dell'acquirente (ARN).

Rappresentazione JSON
{
  "acquirerReferenceNumber": string,
  "authorizationCode": string
}
Campi
acquirerReferenceNumber

string

OBBLIGATORIO: il numero di riferimento dell'acquirente (ARN) che identifica in modo univoco il pagamento. Deve avere una lunghezza di 23 cifre.

authorizationCode

string

REQUIRED: il codice di autorizzazione per la transazione.

GoogleTransactionReferenceNumberCriteria

Criteri di ricerca dei pagamenti basati sul numero di riferimento della transazione generato da Google.

Rappresentazione JSON
{
  "googleTransactionReferenceNumber": string,
  "authorizationCode": string
}
Campi
googleTransactionReferenceNumber

string

OBBLIGATORIO: il numero di riferimento della transazione generato da Google che identifica in modo univoco il pagamento.

authorizationCode

string

REQUIRED: il codice di autorizzazione per la transazione.

RequestOriginator

Informazioni sull'organizzazione o sul sottogruppo dell'organizzazione da cui ha avuto origine questa richiesta. In questo modo Google può identificare problemi o comportamenti illeciti e implementare controlli a un livello più granulare rispetto a paymentIntegratorAccountId. È particolarmente importante quando il chiamante è un fornitore di servizi intermediario che recupera le richieste da più client esterni.

Rappresentazione JSON
{
  "organizationId": string,
  "organizationDescription": string
}
Campi
organizationId

string

OBBLIGATORIO: un identificatore dell'azienda, dell'organizzazione o del gruppo di organizzazioni da cui ha avuto origine la richiesta. Deve essere univoco all'interno di questo paymentIntegratorAccountId.

organizationDescription

string

OBBLIGATORIO: un nome o una descrizione leggibile dell'organizzazione che può essere utilizzato per facilitare la comunicazione tra i dipendenti di Google e l'integratore in merito a tale organizzazione.

ResponseHeader

Oggetto intestazione definito su tutte le risposte inviate dal server.

Rappresentazione JSON
{
  "responseTimestamp": string
}
Campi
responseTimestamp

string (int64 format)

REQUIRED: timestamp di questa risposta espresso in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi rispetto a "now".

GetOrderDetailsResultCode

Il risultato della chiamata al metodo getOrderDetails.

Enum
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN Non impostare mai questo valore predefinito.
SUCCESS L'ordine è stato trovato e restituito.
ORDER_CANNOT_BE_RETURNED

L'ordine richiesto esiste, ma non può essere restituito. Tra le possibili cause rientrano i casi in cui l'ordine è stato rimosso su richiesta del relativo proprietario.

PAYMENT_TOO_OLD È stato trovato il pagamento richiesto, ma i dettagli dell'ordine non sono stati forniti a causa della data del pagamento.
PAYMENT_NOT_FOUND Il pagamento richiesto non è stato trovato.
NO_ADDITIONAL_DETAILS È stato trovato il pagamento richiesto, ma i dettagli dell'ordine non sono disponibili.

Ordine

Informazioni sull'ordine.

Rappresentazione JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
Campi
timestamp

string (int64 format)

FACOLTATIVO: timestamp relativo a quando è stato effettuato l'ordine, espresso in millisecondi dall'epoca. Non disponibile per tutti i tipi di ordine.

orderId

string

FACOLTATIVO: una stringa che identifica in modo univoco l'ordine. Non disponibile per tutti i tipi di ordine.

currencyCode

string

FACOLTATIVO: codice valuta ISO 4217 di tre lettere per tutti gli importi dell'ordine. Non disponibile per tutti i tipi di ordine.

subTotalAmount

string (Int64Value format)

FACOLTATIVO: l'importo totale di questo ordine al netto delle imposte, espresso in micro della valuta specificata in order.currencyCode. È uguale a SUM(items.totalPrice). Non disponibile per tutti i tipi di ordine.

totalAmount

string (Int64Value format)

FACOLTATIVO: l'importo totale di questo ordine, tasse incluse, espresso in micro della valuta specificata in order.currencyCode. È uguale a subTotalAmount + SUM(taxes.amount). Non disponibile per tutti i tipi di ordine.

items[]

object (Item)

OBBLIGATORIO: elenco degli articoli che facevano parte dell'ordine.

taxes[]

object (Tax)

FACOLTATIVO: elenco delle imposte incluse nell'ordine.

Articolo

Informazioni su un articolo dell'ordine.

Rappresentazione JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
Campi
description

string

FACOLTATIVO: una descrizione dell'articolo acquistato. Non disponibile per tutti i tipi di ordine.

merchant

string

OBBLIGATORIO: il venditore, l'artista o il produttore dell'articolo.

quantity

string (Int64Value format)

FACOLTATIVO: la quantità ordinata dell'articolo.

Questo campo verrà omesso se le quantità intere non sono applicabili al prodotto (ad esempio, i prodotti dosatori possono avere quantità frazionarie).

totalPrice

string (Int64Value format)

FACOLTATIVO: il prezzo totale dell'elemento, espresso in micro della valuta specificata in order.currencyCode. Se il campo quantity è compilato, riflette il prezzo totale dell'intera quantità. Non disponibile per tutti i tipi di ordine.

googleProductName

string

OBBLIGATORIO: nome del servizio prodotti Google per l'articolo.

Tasse

Informazioni su un'imposta applicabile a questo ordine.

Rappresentazione JSON
{
  "description": string,
  "amount": string
}
Campi
description

string

REQUIRED: una descrizione dell'imposta.

amount

string (Int64Value format)

REQUIRED: importo dell'imposta espresso in micro della valuta specificata in order.currencyCode.