- Richiesta HTTP
- Corpo della richiesta
- Corpo della risposta
- RequestHeader
- Versione
- StandardCard
- AvsData
- ResponseHeader
- CardNetworkResult
- Rete
- AvsResult
- VerificationResult
- CvnResult
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( |
Campi | |
---|---|
requestHeader |
REQUIRED: intestazione comune per tutte le richieste. |
standardCard |
OBBLIGATORIO: dati relativi alla carta di pagamento dell'utente. |
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( |
Campi | |
---|---|
responseHeader |
REQUIRED: intestazione comune per tutte le risposte. |
cardNetworkResult |
OBBLIGATORIO: il risultato del rilascio dell'autorizzazione sulla rete della carta. |
avsResult |
FACOLTATIVO: il risultato della verifica dei campi indirizzo inviati nella richiesta. Questo campo è obbligatorio se nella richiesta è stato impostato |
cvnResult |
REQUIRED: il risultato della verifica del CVN inviato nella richiesta. Se il CVN non è stato impostato nella richiesta, questo valore dovrebbe essere |
RequestHeader
Oggetto intestazione definito su tutte le richieste inviate al server.
Rappresentazione JSON | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
Campi | |
---|---|
requestId |
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 |
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 |
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 |
protocolVersion |
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 |
RICHIESTA: versione principale. Questa opzione è contrassegnata per la compatibilità delle richieste di compatibilità con versioni diverse. |
minor |
REQUIRED: versione secondaria. Indicano correzioni di bug significative. |
revision |
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 |
REQUIRED: il numero di conto principale (PAN) della carta in testo normale. |
expiryDate |
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 |
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 |
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 |
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 |
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 |
FACOLTATIVO: il codice postale di fatturazione dell'utente. |
countryCode |
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 |
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( |
Campi | |
---|---|
network |
REQUIRED: la rete da cui proviene il codice risultato. |
iso8583Result |
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 |
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 |
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( |
Campi | |
---|---|
rawAvsResult |
REQUIRED: il valore AVS non elaborato restituito dalla rete della carta. |
streetAddress |
REQUIRED: il risultato della verifica di Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT". |
localityName |
REQUIRED: il risultato della verifica di Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT". |
administrativeAreaName |
REQUIRED: il risultato della verifica di Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT". |
postalCodeNumber |
REQUIRED: il risultato della verifica di Se il campo non è stato impostato nella richiesta, questo valore deve essere "NOT_SENT". |
countryCode |
REQUIRED: il risultato della verifica di 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". |