Method: getOrderDetails

Ricevi 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 era sconosciuta, questo metodo restituirà un errore HTTP 404 con un corpo vuoto. Se è possibile verificare la firma della richiesta, nel corpo della risposta verranno restituite ulteriori informazioni sull'errore.

Ecco un esempio di richiesta:


{
  "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 pagamenti che identifica il chiamante e i vincoli contrattuali associati a questa interazione.

orderLookupCriteria

object (OrderLookupCriteria)

OBBLIGATORIO: criteri che indicano l'ordine da controllare.

requestOriginator

object (RequestOriginator)

FACOLTATIVO: informazioni sull'organizzazione o sul sottogruppo organizzativo 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)

REQUIRED: il risultato della chiamata.

order

object (Order)

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

RequestHeader

Oggetto intestazione definito su tutte le richieste inviate al server.

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

string

REQUIRED: l'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, rappresentato in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi dalla data corrente. Questo timestamp della richiesta non è idempotente durante i 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 ISO 3166-1 Alpha-2, ad esempio "pt", "pt-BR", "fil" o "fil-PH". Utilizzalo per generare più facilmente i campi userMessage nella risposta.

protocolVersion

object (Version)

REQUIRED: la versione di questa richiesta.

Versione

Oggetto versione, che è una forma strutturata della struttura della versione classica di a.b.c. La compatibilità delle versioni principali di uno stesso numero è garantita. Tieni presente che piccole modifiche e revisioni possono cambiare di frequente 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

RICHIESTA: versione principale. Questa opzione è contrassegnata per la compatibilità delle richieste di compatibilità con versioni diverse.

minor

integer

REQUIRED: versione secondaria. Indicano 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 unione criteria.

criteria può essere solo uno dei seguenti:

dcb3CorrelationId

string

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

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

REQUIRED: il numero di riferimento dell'acquirente (ARN) che identifica in modo univoco il pagamento. Deve essere 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 utile quando il chiamante è un fornitore di servizi intermediario che riceve richieste da più client esterni.

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

string

OBBLIGATORIO: un identificatore dell'azienda, dell'organizzazione o del gruppo organizzativo 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 possa essere utilizzato per facilitare la comunicazione tra i dipendenti di Google e l'integratore in merito all'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, rappresentato in millisecondi dall'epoca. Il destinatario deve verificare che il timestamp sia di ± 60 secondi dalla data corrente.

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. Sono inclusi i casi in cui l'ordine è stato rimosso su richiesta del proprietario.

PAYMENT_TOO_OLD Il pagamento richiesto è stato trovato, ma i dettagli di un 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 del momento in cui è stato effettuato l'ordine, rappresentato in millisecondi dall'epoca. Non disponibile per tutti i tipi di ordine.

orderId

string

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

currencyCode

string

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

subTotalAmount

string (Int64Value format)

FACOLTATIVO: importo totale di questo ordine al netto delle imposte, rappresentato in micro della valuta specificata in order.currencyCode. Questo valore è pari a SUM(items.totalPrice). Non disponibile per tutti i tipi di ordine.

totalAmount

string (Int64Value format)

FACOLTATIVO: importo totale di questo ordine, tasse incluse, rappresentato in micro della valuta specificata in order.currencyCode. Questo valore è pari a subTotalAmount + SUM(taxes.amount). Non disponibile per tutti i tipi di ordine.

items[]

object (Item)

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

taxes[]

object (Tax)

FACOLTATIVO: elenco delle imposte che facevano parte di questo ordine.

Elemento

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 di questo articolo.

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

totalPrice

string (Int64Value format)

FACOLTATIVO: il prezzo totale dell'elemento, rappresentato 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 del prodotto Google associato all'articolo.

Tasse

Informazioni su una tassa applicabile a questo ordine.

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

string

REQUIRED: una descrizione delle tasse.

amount

string (Int64Value format)

REQUIRED: l'importo della tassa, rappresentato in micro della valuta specificata in order.currencyCode.