- Richiesta HTTP
- Corpo della richiesta
- Corpo della risposta
- RequestHeader
- Versione
- PaymentLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- GetDisputeInquiryReportResultCode
- PurchaseReport
- CustomerAccount
- Ordine
- Indirizzo
- Elemento
- Tasse
- Pagamento
- Rimborso
- PaymentCardDetails
- AuthResult
Ricevi un report che fornisca informazioni per facilitare una conversazione con l'assistenza clienti in merito a una potenziale contestazione di un pagamento.
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
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.ErrorResponse
Una richiesta di esempio ha il seguente aspetto:
{
"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"
}
}
Ecco un esempio di risposta:
{
"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"
}
}
}
}
Richiesta HTTP
POST https://vgw.googleapis.com/secure-serving/gsp/v1/getDisputeInquiryReport/:PIAID
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{ "requestHeader": { object ( |
Campi | |
---|---|
requestHeader |
REQUIRED: intestazione comune per tutte le richieste. |
paymentIntegratorAccountId |
REQUIRED: l'identificatore dell'account dell'integratore dei pagamenti che identifica il chiamante e i vincoli contrattuali associati per questa interazione. |
paymentLookupCriteria |
REQUIRED: criteri che indicano il pagamento da verificare per questa richiesta di informazioni. |
existingGoogleClaimId |
FACOLTATIVO: una stringa generata da Google restituita da una precedente chiamata al numero Se non è presente, verrà generato un nuovo ID reclamo. Il chiamante può fornire un L'ID reclamo compilato qui o generato verrà restituito nel campo Non è valido fornire un |
requestOriginator |
OBBLIGATORIO: informazioni sull'organizzazione o sul sottogruppo dell'organizzazione che ha originato questa richiesta. |
Corpo della risposta
Payload della risposta per il metodo getDisputeInquiryReport
.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{ "responseHeader": { object ( |
Campi | |
---|---|
responseHeader |
REQUIRED: intestazione comune per tutte le risposte. |
result |
OBBLIGATORIO: risultato di questa chiamata. |
googleClaimId |
FACOLTATIVO: una stringa generata da Google che identifica in modo univoco questa controversia con un cliente. (Presenta solo se Se nella richiesta è stato compilato |
report |
FACOLTATIVO: dettagli pertinenti alla contestazione del pagamento identificato nella richiesta. (Presenta solo se |
RequestHeader
Oggetto intestazione definito in tutte le richieste inviate al server.
Rappresentazione JSON |
---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object ( |
Campi | |
---|---|
requestId |
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 |
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 |
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 |
protocolVersion |
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 |
REQUIRED: versione principale. Questo stato è contrassegnato perché non è garantita la compatibilità delle richieste di compatibilità con versioni diverse. |
minor |
REQUIRED: versione secondaria. Indica correzioni di bug significative. |
revision |
REQUIRED: versione secondaria. Indica correzioni di bug minori. |
PaymentLookupCriteria
Contenitore di criteri che possono cercare in modo univoco un pagamento. Deve essere compilato un solo campo membro.
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
Campo di unione
|
|
arnCriteria |
FACOLTATIVO: ricerca basata sul numero di riferimento dell'acquirente (ARN). |
googleTransactionReferenceNumberCriteria |
FACOLTATIVO: esegui una 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 |
OBBLIGATORIO: il numero di riferimento dell'acquirente (ARN) che identifica in modo univoco il pagamento. Deve avere una lunghezza di 23 cifre. |
authorizationCode |
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 |
OBBLIGATORIO: il numero di riferimento della transazione generato da Google che identifica in modo univoco il pagamento. |
authorizationCode |
REQUIRED: il codice di autorizzazione per la transazione. |
RequestOriginator
Informazioni sull'organizzazione o sul sottogruppo dell'organizzazione e, facoltativamente, sul dipendente da cui ha avuto origine la 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, "agentId": string } |
Campi | |
---|---|
organizationId |
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 |
organizationDescription |
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. |
agentId |
FACOLTATIVO: un identificatore univoco dell'agente specifico (dipendente) dell'organizzazione identificato da |
GetDisputeInquiryReportResultCode
Il risultato della chiamata al metodo getDisputeInquiryReport
.
Enum | |
---|---|
UNKNOWN_RESULT |
Non impostare mai questo valore predefinito. |
SUCCESS |
Il pagamento è stato trovato e viene fornito un report. |
PAYMENT_NOT_FOUND |
Il pagamento richiesto non è stato trovato. |
PAYMENT_TOO_OLD |
Il pagamento richiesto è stato trovato, ma non è stato fornito un report a causa della data del pagamento. |
ORDER_CANNOT_BE_RETURNED |
Il pagamento richiesto appartiene a un ordine esistente, ma non può essere restituito. Tra le possibili cause rientrano i casi in cui l'ordine è stato rimosso su richiesta del relativo proprietario. |
NO_ADDITIONAL_DETAILS |
È stato trovato il pagamento richiesto, ma non è disponibile alcun report. |
PurchaseReport
Un report contenente i dettagli pertinenti dell'acquisto associato al pagamento richiesto.
Rappresentazione JSON |
---|
{ "customerAccount": { object ( |
Campi | |
---|---|
customerAccount |
OBBLIGATORIO: le informazioni relative al cliente e al suo account. |
order |
OBBLIGATORIO: informazioni relative all'ordine mediante il quale è stato effettuato il pagamento. |
payment |
FACOLTATIVO: informazioni relative al pagamento. Nota: sono possibili più pagamenti per un singolo ordine, ma saranno incluse solo le informazioni relative al pagamento identificato nella richiesta originale. Non disponibile per tutti i tipi di ordine. |
CustomerAccount
Informazioni sull'account del cliente
Rappresentazione JSON |
---|
{ "customerEmail": string, "customerName": string } |
Campi | |
---|---|
customerEmail |
REQUIRED: l'indirizzo email associato all'Account Google del cliente. |
customerName |
REQUIRED: nome del cliente. |
Ordine
Informazioni sull'ordine.
Rappresentazione JSON |
---|
{ "timestamp": string, "orderId": string, "currencyCode": string, "subTotalAmount": string, "totalAmount": string, "shippingAddress": { object ( |
Campi | |
---|---|
timestamp |
FACOLTATIVO: timestamp relativo a quando è stato effettuato l'ordine, espresso in millisecondi dall'epoca. Non disponibile per tutti i tipi di ordine. |
orderId |
FACOLTATIVO: una stringa che identifica in modo univoco l'ordine. Non disponibile per tutti i tipi di ordine. |
currencyCode |
FACOLTATIVO: codice valuta ISO 4217 di tre lettere per tutti gli importi dell'ordine. Non disponibile per tutti i tipi di ordine. |
subTotalAmount |
FACOLTATIVO: l'importo totale di questo ordine al netto delle imposte, espresso in micro della valuta specificata in |
totalAmount |
FACOLTATIVO: l'importo totale di questo ordine, tasse incluse, espresso in micro della valuta specificata in |
shippingAddress |
FACOLTATIVO: indirizzo di spedizione per gli articoli fisici inclusi nell'ordine. |
items[] |
OBBLIGATORIO: elenco degli articoli che facevano parte dell'ordine. |
taxes[] |
OBBLIGATORIO: elenco degli articoli che facevano parte dell'ordine. Questo elenco potrebbe essere vuoto. |
Indirizzo
Struttura con informazioni su un indirizzo.
Rappresentazione JSON |
---|
{ "name": string, "addressLine": [ string ], "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Campi | |
---|---|
name |
FACOLTATIVO: nome completo del cliente. |
addressLine[] |
FACOLTATIVO: contiene il testo non strutturato dell'indirizzo. |
localityName |
FACOLTATIVO: si tratta di un termine generico, ma in genere si riferisce alla parte di un indirizzo relativa a città/paese. Nelle regioni del mondo in cui le località non sono ben definite o non si adattano bene a questa struttura (ad esempio, Giappone e Cina), lascia il campo localtyName vuoto e utilizza addressLine. Esempi: città degli Stati Uniti, comune italiano, città del Regno Unito. |
administrativeAreaName |
FACOLTATIVO: suddivisione amministrativa di primo livello del paese. Esempi: stato USA, regione IT, provincia CN, prefettura Giappone. |
postalCodeNumber |
FACOLTATIVO: a prescindere dal nome, i valori postaliCodeNumber sono spesso alfanumerici. Esempi: "94043", "SW1W", "SW1W 9TQ". |
countryCode |
FACOLTATIVO: il codice paese dell'indirizzo del cliente, che dovrebbe essere ISO-3166-1 Alpha-2. |
Articolo
Informazioni su un articolo dell'ordine.
Rappresentazione JSON |
---|
{ "description": string, "merchant": string, "quantity": string, "totalPrice": string, "googleProductName": string } |
Campi | |
---|---|
description |
FACOLTATIVO: una descrizione dell'articolo acquistato. Non disponibile per tutti i tipi di ordine. |
merchant |
OBBLIGATORIO: il venditore, l'artista o il produttore dell'articolo. |
quantity |
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 |
FACOLTATIVO: il prezzo totale dell'elemento, espresso in micro della valuta specificata in |
googleProductName |
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 |
REQUIRED: una descrizione dell'imposta. |
amount |
REQUIRED: l'importo dell'imposta espresso in micro della valuta specificata in |
Pagamento
Informazioni sul pagamento.
Rappresentazione JSON |
---|
{ "billingAddress": { object ( |
Campi | |
---|---|
billingAddress |
REQUIRED: indirizzo di fatturazione per questo pagamento. |
amount |
OBBLIGATORIO: l'importo di questo pagamento, espresso in micro della valuta specificata in |
refunds[] |
OBBLIGATORIO: elenco dei rimborsi effettuati per questo pagamento. Questo elenco potrebbe essere vuoto. |
Campo di unione
|
|
cardDetails |
FACOLTATIVO: dettagli di pagamento specifici per i FoP di carte di credito e di debito. |
Rimborso
Informazioni su un rimborso effettuato per un pagamento.
Rappresentazione JSON |
---|
{ "amount": string, "initiatedTimestamp": string } |
Campi | |
---|---|
amount |
OBBLIGATORIO: l'importo rimborsato, un numero positivo di micro della valuta specificata in |
initiatedTimestamp |
REQUIRED: timestamp relativo a quando è stato avviato il rimborso, espresso in millisecondi dall'epoca. |
PaymentCardDetails
Dati di pagamento specifici di carte di credito e di debito.
Rappresentazione JSON |
---|
{
"authResult": enum ( |
Campi | |
---|---|
authResult |
OBBLIGATORIO: risultato dell'autenticazione del pagamento. |
AuthResult
Risultati dell'autenticazione dei pagamenti.
Enum | |
---|---|
UNKNOWN_RESULT |
Non impostare mai questo valore predefinito. |
APPROVED |
Autorizzazione approvata. |
DENIED |
Autorizzazione negata. |
NOT_ATTEMPTED |
Autenticazione non tentata. |