Method: card.verifycard

Verifica la carta dell'utente per verificarne la validità.

Questo metodo viene chiamato da Google per verificare i dettagli della carta di un utente e per sapere se la carta può essere utilizzata per i pagamenti. Questa chiamata non comporta alcun trasferimento di denaro e non comporta modifiche permanenti all'account dell'utente.

Ecco un esempio di richiesta:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "ZWNobyB0cmFuc2FjdGlvbg",
    "requestTimestamp": "1481855969503"
  },
  "standardCard": {
    "accountNumber": "4123456789101112",
    "expiryDate": "01/2020",
    "cvn": "123"
  },
  "avsData": {
    "streetAddress": "123 Main St APT #200",
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "countryCode": "US"
  }
}

Ecco un esempio di risposta:


{
  "responseHeader": {
    "responseTimestamp": "1481855970403",
  },
  "cardNetworkResult": {
    "network": "VISA",
    "iso8583Result": "00",
    "rawNetworkResult": "00"
  },
  "avsResult": {
    "rawAvsResult": "B",
    "streetAddress": "MATCH",
    "localityName": "MATCH",
    "administrativeAreaName": "MATCH",
    "postalCodeNumber": "NOT_SENT",
    "countryCode": "SKIPPED"
  },
  "cvnResult": "MATCH"
}

Richiesta HTTP

POST https://card-verification-service.google.com/v1/card/verifycard

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "requestHeader": {
    object(RequestHeader)
  },
  "standardCard": {
    object(StandardCard)
  },
  "avsData": {
    object(AvsData)
  }
}
Campi
requestHeader

object(RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

standardCard

object(StandardCard)

OBBLIGATORIO: dati relativi alla carta di pagamento dell'utente.

avsData

object(AvsData)

FACOLTATIVO: l'indirizzo dell'utente che deve essere verificato da AVS.

Corpo della risposta

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

Oggetto risposta per il metodo card.verifycard ospitato da Payment Integrator.

Rappresentazione JSON
{
  "responseHeader": {
    object(ResponseHeader)
  },
  "cardNetworkResult": {
    object(CardNetworkResult)
  },
  "avsResult": {
    object(AvsResult)
  },
  "cvnResult": enum(CvnResult)
}
Campi
responseHeader

object(ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

cardNetworkResult

object(CardNetworkResult)

OBBLIGATORIO: il risultato del rilascio dell'autorizzazione sulla rete della carta.

avsResult

object(AvsResult)

FACOLTATIVO: il risultato della verifica dei campi indirizzo inviati nella richiesta.

Questo campo è obbligatorio se nella richiesta è stato impostato addressVerificationSystemData.

cvnResult

enum(CvnResult)

REQUIRED: il risultato della verifica del CVN inviato nella richiesta. Se il CVN non è stato impostato nella richiesta, questo valore dovrebbe essere NOT_SENT.

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

FACOLTATIVO: un codice lingua ISO 639-2 Alpha 3 a due o tre lettere facoltativamente seguito da un trattino e un codice paese ISO 3166-1 Alpha-2, ad esempio "pt", "pt-BR", "fil" o "fil-PH". Utilizzalo per generare più facilmente i campi user_message 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": number,
  "minor": number,
  "revision": number
}
Campi
major

number

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

minor

number

REQUIRED: versione secondaria. Indicano correzioni di bug significative.

revision

number

REQUIRED: versione secondaria. Indica correzioni di bug minori.

StandardCard

La rappresentazione standard di una carta

Rappresentazione JSON
{
  "accountNumber": string,
  "expiryDate": string,
  "cvn": string
}
Campi
accountNumber

string

REQUIRED: il numero di conto principale (PAN) della carta in testo normale.

expiryDate

string

FACOLTATIVO: la data di scadenza della carta nel formato MM/AAAA. Facoltativo perché alcune carte in determinate regioni non hanno una data di scadenza.

cvn

string

FACOLTATIVO: se Google ha raccolto il codice CVN dall'utente, questo è fornito qui e deve essere verificato.

AvsData

Contiene campi di indirizzi che devono essere verificati da AVS.

Rappresentazione JSON
{
  "streetAddress": string,
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
Campi
streetAddress

string

FACOLTATIVO: la via dell'indirizzo di fatturazione dell'utente. Se l'utente ha fornito più righe per inserire l'indirizzo (ad es. una riga per il numero dell'appartamento), queste sono concatenate da spazi.

localityName

string

FACOLTATIVO: è un termine parziale, ma generalmente si riferisce alla porzione di città di un indirizzo. 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 address_line.

Esempi: città USA, comune in Italia, città postale nel Regno Unito.

administrativeAreaName

string

FACOLTATIVO: la suddivisione amministrativa di primo livello del paese per l'indirizzo di fatturazione dell'utente.

Esempi: stato USA, regione IT, nazione costituente del Regno Unito, prefettura giapponese

Quando il paese == US, dovrebbe essere l'abbreviazione di due caratteri per lo stato degli Stati Uniti.

postalCodeNumber

string

FACOLTATIVO: il codice postale di fatturazione dell'utente.

countryCode

string

FACOLTATIVO: il codice paese dell'indirizzo di fatturazione dell'utente nel formato ISO-3166-1 Alpha-2.

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.

CardNetworkResult

Contiene una rete e un codice risultato non elaborato da quella rete.

Rappresentazione JSON
{
  "network": enum(Network),
  "iso8583Result": string,
  "rawNetworkResult": string
}
Campi
network

enum(Network)

REQUIRED: la rete da cui proviene il codice risultato.

iso8583Result

string

REQUIRED: il codice restituito ISO-8583 restituito dalla rete.

Se la rete utilizza un proprio formato di codice di risposta, l'integratore deve mappare questi codici di risposta ai codici di ritorno ISO-8583.

rawNetworkResult

string

REQUIRED: il valore non elaborato restituito dalla rete. Le reti che utilizzano già codici restituiti ISO-8583 avranno lo stesso valore in questo campo e in iso8583Result. Questo campo viene utilizzato per fornire informazioni al motore dei rischi di Google ed è particolarmente utile per le reti che utilizzano i propri codici di risposta.

Rete

Definisce le possibili reti di carte che potrebbero aver restituito rawResult.

Enum
UNKNOWN_NETWORK Rete non riconosciuta
NETWORK_NOT_INVOLVED Utilizza questo valore se il rifiuto non proviene dalla rete, ad esempio se l'integratore ha rifiutato l'acquisto prima ancora che venisse inviato alla rete della carta.
AMEX Rete AMEX
COMPROCARD COMPROCARD - Rete
DANKORT Rete DANKORT
DINACARD Rete DINACARD
DINERS_CLUB Rete DINERS_CLUB
DISCOVER SCOPRI Rete
EFTPOS Rete EFTPOS
ELO Rete ELO
ENROUTE Rete ENROUTE
FELICA Rete FELICA
GE_CAPITAL Rete GE_CAPITAL
HIPERCARD Rete HIPERCARD
ID Rete di ID
INTERAC Rete INTERAC
JCB Rete JCB
LASER Rete LASER
MAESTRO Rete MAESTRO
MASTERCARD Rete MASTERCARD
PPT Rete PPT
QUICPAY Rete QUICPAY
RUPAY Rete RUPAY
SBERCARD Rete SBERCARD
SOLO Rete SOLO
SYNCHRONY Rete SYNCHRONY
UNIONPAY Rete UNIONPAY
VISA VISA Network

AvsResult

Il risultato della verifica dei campi dell'indirizzo forniti nella richiesta.

Tutti i campi sono obbligatori perché vogliamo un risultato esplicito per ogni campo anziché fare affidamento sull'assenza di un campo come risultato implicito.

Rappresentazione JSON
{
  "rawAvsResult": string,
  "streetAddress": enum(VerificationResult),
  "localityName": enum(VerificationResult),
  "administrativeAreaName": enum(VerificationResult),
  "postalCodeNumber": enum(VerificationResult),
  "countryCode": enum(VerificationResult)
}
Campi
rawAvsResult

string

REQUIRED: il valore AVS non elaborato restituito dalla rete della carta.

streetAddress

enum(VerificationResult)

REQUIRED: il risultato della verifica di streetAddress inviato nel campo addressVerificationSystemData della richiesta.

Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT".

localityName

enum(VerificationResult)

REQUIRED: il risultato della verifica di localityName inviato nel campo addressVerificationSystemData della richiesta.

Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT".

administrativeAreaName

enum(VerificationResult)

REQUIRED: il risultato della verifica di administrativeAreaName inviato nel campo addressVerificationSystemData della richiesta.

Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT".

postalCodeNumber

enum(VerificationResult)

REQUIRED: il risultato della verifica di postalCodeNumber inviato nel campo addressVerificationSystemData della richiesta.

Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT".

countryCode

enum(VerificationResult)

REQUIRED: il risultato della verifica di countryCode inviato nel campo addressVerificationSystemData della richiesta.

Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT".

VerificationResult

Enum
UNKNOWN_AVS_MATCH Non impostare mai questo valore predefinito.
NOT_SENT Google non ha inviato questo campo, quindi non è possibile fare nulla.
MATCH Google ha inviato il campo all'integratore, che è stato controllato tramite AVS e ha trovato il valore previsto.
MISMATCH Google ha inviato il campo all'integratore ed è stato controllato tramite AVS, ma non corrispondeva al valore previsto.
SKIPPED Google ha inviato il campo all'integratore, ma quest'ultimo non ha controllato il campo.
NOT_SPECIFIED Google ha inviato il campo all'integratore e quest'ultimo lo ha controllato tramite AVS, ma il codice risultato AVS non fornisce informazioni sufficienti per consentire all'integratore di sapere se il campo corrispondeva al valore previsto.

CvnResult

Il risultato della verifica del CVN fornito nella richiesta.

Enum
UNKNOWN_CVN_RESULT Non impostare mai questo valore predefinito.
NOT_SENT Google non ha fornito il codice CVN, pertanto non è stato possibile verificarlo.
NOT_VERIFIED Google ha inviato il CVN, ma non è stato verificato. Corrisponde a un codice risultato di rete "F"
MATCH Google ha inviato il CVN, è stato verificato e ha trovato corrispondenza. Corrisponde a un codice risultato di rete "M".
MISMATCH Google ha inviato il CVN, che è stato verificato, ma non corrisponde. Corrisponde a un codice risultato di rete "N".