- Solicitud HTTP
- Cuerpo de la solicitud
- Cuerpo de la respuesta
- RequestHeader
- Versión
- StandardCard
- AvsData
- ResponseHeader
- CardNetworkResult
- Red
- AvsResult
- VerificationResult
- CvnResult
Verifica la tarjeta del usuario para ver si es válida.
Google llama a este método para verificar los detalles de la tarjeta de un usuario y ver si se puede usar para realizar pagos. Esta llamada no transfiere dinero y no debería haber cambios permanentes en la cuenta del usuario.
A continuación, se muestra una solicitud de ejemplo:
{
"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"
}
}
Esta es una respuesta de ejemplo:
{
"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"
}
Solicitud HTTP
POST https://card-verification-service.google.com/v1/card/verifycard
La URL usa la sintaxis de la transcodificación gRPC.
Cuerpo de la solicitud
El cuerpo de la solicitud contiene datos con la siguiente estructura:
Representación JSON | |
---|---|
{ "requestHeader": { object( |
Campos | |
---|---|
requestHeader |
OBLIGATORIO: Encabezado común para todas las solicitudes |
standardCard |
OBLIGATORIO: Son los datos sobre la tarjeta de pago del usuario. |
avsData |
OPTIONAL: Es la dirección del usuario que debe verificar AVS. |
Cuerpo de la respuesta
Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:
Objeto de respuesta para el método card.verifycard alojado por el integrador de pagos.
Representación JSON | |
---|---|
{ "responseHeader": { object( |
Campos | |
---|---|
responseHeader |
OBLIGATORIO: Encabezado común para todas las respuestas |
cardNetworkResult |
REQUIRED: Es el resultado de la emisión de la autorización en la red de tarjetas. |
avsResult |
OPCIONAL: El resultado de verificar los campos de dirección enviados en la solicitud. Este campo es obligatorio si se configuró |
cvnResult |
OBLIGATORIO: Es el resultado de verificar el CVN que se envió en la solicitud. Si no se configuró el CVN en la solicitud, este valor debe ser |
RequestHeader
Es un objeto de encabezado que se define en todas las solicitudes que se envían al servidor.
Representación JSON | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
Campos | |
---|---|
requestId |
REQUIRED: Es el identificador único de esta solicitud. Es una cadena que tiene una longitud máxima de 100 caracteres y solo contiene los caracteres "a-z", "A-Z", "0-9", ":", "-" y "_". |
requestTimestamp |
OBLIGATORIO: Es la marca de tiempo de esta solicitud representada en milisegundos desde el ciclo de entrenamiento. El receptor debe verificar que la marca de tiempo sea de ± 60 s de "ahora". Esta marca de tiempo de solicitud no es idempotente en los reintentos. |
userLocale |
OPCIONAL: Un código de idioma ISO 639-2 Alfa 3 de dos o tres letras, opcionalmente seguido de un guion y un código de país ISO 3166-1 Alfa-2, p.ej., "pt", "pt-BR", "fil" o "fil-PH". Úsalo para ayudar a controlar los campos |
protocolVersion |
OBLIGATORIO: Es la versión de esta solicitud. |
Versión
Un objeto Version, que es una forma estructurada de la estructura de versión clásica de a.b.c
. Se garantiza que las versiones principales de la misma cantidad son compatibles. Ten en cuenta que las revisiones menores y las revisiones pueden cambiar con frecuencia y sin previo aviso. El integrador debe admitir todas las solicitudes de la misma versión principal.
Representación JSON | |
---|---|
{ "major": number, "minor": number, "revision": number } |
Campos | |
---|---|
major |
OBLIGATORIO: Es la versión principal. Esto se marca cuando no se garantiza la compatibilidad de las solicitudes de compatibilidad con diferentes versiones. |
minor |
OBLIGATORIO: Versión secundaria. Esto indica que se corrigieron errores importantes. |
revision |
OBLIGATORIO: Versión secundaria. Esto implica correcciones de errores menores. |
StandardCard
La representación estándar de una tarjeta
Representación JSON | |
---|---|
{ "accountNumber": string, "expiryDate": string, "cvn": string } |
Campos | |
---|---|
accountNumber |
OBLIGATORIO: Es el número de cuenta principal (PAN) de la tarjeta en texto sin formato. |
expiryDate |
OPTIONAL: Es la fecha de vencimiento de la tarjeta en formato MM/AAAA. Opcional porque algunas tarjetas de ciertas regiones no tienen fecha de vencimiento. |
cvn |
OPCIONAL: Si Google recopila el CVN del usuario, se proporciona aquí y debe verificarse. |
AvsData
Contiene campos de dirección que debe verificar AVS.
Representación JSON | |
---|---|
{ "streetAddress": string, "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Campos | |
---|---|
streetAddress |
OPCIONAL: La dirección de la dirección de facturación del usuario Cuando el usuario proporciona varias líneas para ingresar su dirección (p.ej., una línea para el número de departamento), las líneas se concatenan con espacios. |
localityName |
OPCIONAL: Este es un término confuso, pero, por lo general, hace referencia a la parte de ciudad o pueblo de una dirección. En regiones del mundo donde las localidades no están bien definidas o no se ajustan bien a esta estructura (por ejemplo, Japón y China), deja el valor localityName vacío y usa address_line. Ejemplos: ciudad de EE.UU., comuna de Italia o ciudad postal en el Reino Unido. |
administrativeAreaName |
OPCIONAL: Es la subdivisión administrativa de nivel superior de este país para la dirección de facturación del usuario. Ejemplos: Estado de EE.UU., región de TI, nación constituyente del Reino Unido, prefectura de Japón Cuando el país == US, se espera que sea la abreviatura de 2 caracteres del estado de EE.UU. |
postalCodeNumber |
OPCIONAL: El código postal de facturación del usuario. |
countryCode |
OPCIONAL: El código de país de la dirección de facturación del usuario en formato ISO-3166-1 Alfa-2. |
ResponseHeader
Es el objeto de encabezado que se define en todas las respuestas enviadas desde el servidor.
Representación JSON | |
---|---|
{ "responseTimestamp": string } |
Campos | |
---|---|
responseTimestamp |
REQUIRED: Es la marca de tiempo de esta respuesta representada como milisegundos desde la época. El receptor debe verificar que la marca de tiempo sea de ± 60 s de "ahora". |
CardNetworkResult
Contiene una red y un código de resultado sin procesar de esa red.
Representación JSON | |
---|---|
{
"network": enum( |
Campos | |
---|---|
network |
OBLIGATORIO: La red de la que provino el código del resultado. |
iso8583Result |
OBLIGATORIO: El código de retorno ISO-8583 que muestra la red. Si la red usa su propio formato de código de respuesta, el integrador debe asignar esos códigos de respuesta a los códigos de respuesta ISO-8583. |
rawNetworkResult |
REQUIRED: El valor sin procesar que muestra la red. Las redes que usan códigos de retorno ISO-8583 ya tendrán el mismo valor en este campo y en |
Red
Define las posibles redes de tarjetas que pueden haber mostrado las rawResult
.
Enumeradores | |
---|---|
UNKNOWN_NETWORK |
No se reconoció la red |
NETWORK_NOT_INVOLVED |
Usa este valor si el rechazo no provino de la red, por ejemplo, si el integrador rechazó la compra antes de que se enviara a la red de tarjetas. |
AMEX |
Red AMEX |
COMPROCARD |
Red COMPROCARD |
DANKORT |
Red DANKORT |
DINACARD |
Red DINACARD |
DINERS_CLUB |
Red DINERS_CLUB |
DISCOVER |
Red DISCOVER |
EFTPOS |
Red EFTPOS |
ELO |
Red ELO |
ENROUTE |
Red ENROUTE |
FELICA |
Red FELICA |
GE_CAPITAL |
Red GE_CAPITAL |
HIPERCARD |
Red HIPERCARD |
ID |
Red de ID |
INTERAC |
Red INTERAC |
JCB |
JCB Network |
LASER |
Red LASER |
MAESTRO |
MAESTRO Network |
MASTERCARD |
Red MASTERCARD |
PPT |
Red PPT |
QUICPAY |
Red QUICPAY |
RUPAY |
Red RUPAY |
SBERCARD |
Red SBERCARD |
SOLO |
SOLO Network |
SYNCHRONY |
Red SYNCHRONY |
UNIONPAY |
Red UNIONPAY |
VISA |
Red VISA |
AvsResult
El resultado de verificar los campos de dirección proporcionados en la solicitud.
Todos los campos son obligatorios porque queremos un resultado explícito para cada campo en lugar de confiar en la ausencia de un campo como resultado implícito.
Representación JSON | |
---|---|
{ "rawAvsResult": string, "streetAddress": enum( |
Campos | |
---|---|
rawAvsResult |
REQUIRED: Es el valor de AVS sin procesar que muestra la red de tarjetas. |
streetAddress |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT". |
localityName |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT". |
administrativeAreaName |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT". |
postalCodeNumber |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT". |
countryCode |
OBLIGATORIO: Es el resultado de verificar el Si el campo no se estableció en la solicitud, este valor debe ser "NOT_SENT". |
VerificationResult
Enumeradores | |
---|---|
UNKNOWN_AVS_MATCH |
No establezcas nunca este valor predeterminado. |
NOT_SENT |
Google no envió este campo, por lo que no se pudo hacer nada con él. |
MATCH |
Google envió el campo al integrador, se verificó mediante AVS y coincidió con el valor esperado. |
MISMATCH |
Google envió el campo al integrador y se verificó mediante AVS, pero no coincidió con el valor esperado. |
SKIPPED |
Google envió el campo al integrador, pero este no lo revisó. |
NOT_SPECIFIED |
Google envió el campo al integrador y este lo verificó mediante AVS, pero el código de resultado de AVS no proporciona suficiente información para que el integrador sepa si el campo coincidió con el valor esperado. |
CvnResult
El resultado de verificar el CVN que se proporcionó en la solicitud.
Enumeradores | |
---|---|
UNKNOWN_CVN_RESULT |
No establezcas nunca este valor predeterminado. |
NOT_SENT |
Google no proporcionó el CVN, por lo que no se pudo verificar. |
NOT_VERIFIED |
Google envió el CVN, pero no se verificó. Corresponde a un código de resultado de red de "F" |
MATCH |
Google envió el CVN, se verificó y coincidió. Esto corresponde a un código de resultado de red de "M". |
MISMATCH |
Google envió el CVN y este se verificó, pero no coincidió. Esto corresponde a un código de resultado de red de "N". |