- HTTP-запрос
- Тело запроса
- Тело ответа
- Заголовок запроса
- Версия
- Стандартная карта
- AvsData
- Заголовок ответа
- КардНетворкРезультат
- Сеть
- AvsResult
- Результат проверки
- CvnResult
Проверяет карту пользователя, чтобы убедиться, что она действительна.
Этот метод вызывается Google для проверки данных карты пользователя и проверки возможности использования карты для платежей. Этот вызов не переносит никаких денег, и в учетной записи пользователя не должно быть никаких постоянных изменений.
Пример запроса выглядит так:
{
"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"
}
}
Пример ответа выглядит так:
{
"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"
}
HTTP-запрос
POST https://card-verification-service.google.com/v1/card/verifycard
URL-адрес использует синтаксис транскодирования gRPC .
Тело запроса
Тело запроса содержит данные следующей структуры:
JSON-представление | |
---|---|
{ "requestHeader": { object( |
Поля | |
---|---|
requestHeader | ОБЯЗАТЕЛЬНО : общий заголовок для всех запросов. |
standardCard | ОБЯЗАТЕЛЬНО : Данные о платежной карте пользователя. |
avsData | НЕОБЯЗАТЕЛЬНО : адрес пользователя, который должен быть проверен AVS. |
Тело ответа
В случае успеха тело ответа содержит данные следующей структуры:
Объект ответа для метода card.verifycard, размещенного в Интеграторе платежей.
JSON-представление | |
---|---|
{ "responseHeader": { object( |
Поля | |
---|---|
responseHeader | ОБЯЗАТЕЛЬНО : общий заголовок для всех ответов. |
cardNetworkResult | ОБЯЗАТЕЛЬНО : результат авторизации в карточной сети. |
avsResult | НЕОБЯЗАТЕЛЬНО : результат проверки полей адреса, отправленных в запросе. Это поле является обязательным, если в запросе был указан |
cvnResult | ОБЯЗАТЕЛЬНО : результат проверки CVN, отправленного в запросе. Если CVN не был установлен в запросе, это значение должно быть |
Заголовок запроса
Объект заголовка, который определяется для всех запросов, отправляемых на сервер.
JSON-представление | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
Поля | |
---|---|
requestId | ОБЯЗАТЕЛЬНО : уникальный идентификатор этого запроса. Это строка максимальной длиной 100 символов, содержащая только символы «az», «AZ», «0-9», «:», «-» и «_». |
requestTimestamp | ОБЯЗАТЕЛЬНО : временная метка этого запроса, представленная в миллисекундах с начала эпохи. Получатель должен убедиться, что эта временная метка составляет ± 60 секунд от «сейчас». Эта временная метка запроса не является идемпотентной при повторных попытках. |
userLocale | ДОПОЛНИТЕЛЬНО : двух- или трехбуквенный код языка ISO 639-2 Alpha 3, за которым может следовать дефис и код страны ISO 3166-1 Alpha-2, например, «pt», «pt-BR», «fil» или 'фил-PH'. Используйте это, чтобы управлять полями |
protocolVersion | ОБЯЗАТЕЛЬНО : версия этого запроса. |
Версия
Объект версии, который представляет собой структурированную форму классической структуры версий abc
. Совместимость основных версий одного и того же номера гарантирована. Обратите внимание, что второстепенные и исправленные версии могут изменяться часто и без предварительного уведомления. Интегратор должен поддерживать все запросы на одну и ту же основную версию.
JSON-представление | |
---|---|
{ "major": number, "minor": number, "revision": number } |
Поля | |
---|---|
major | ТРЕБУЕТСЯ : Основная версия. Это отмечено для запросов совместимости с разными версиями, совместимость которых не гарантируется. |
minor | ТРЕБУЕТСЯ : Дополнительная версия. Это означает существенные исправления ошибок. |
revision | ТРЕБУЕТСЯ : Дополнительная версия. Это означает исправление мелких ошибок. |
Стандартная карта
Стандартное представление карты
JSON-представление | |
---|---|
{ "accountNumber": string, "expiryDate": string, "cvn": string } |
Поля | |
---|---|
accountNumber | ОБЯЗАТЕЛЬНО : Основной номер счета (PAN) карты в текстовом виде. |
expiryDate | НЕОБЯЗАТЕЛЬНО : дата истечения срока действия карты в формате ММ/ГГГГ. Необязательно, поскольку некоторые карты в определенных регионах не имеют срока действия. |
cvn | НЕОБЯЗАТЕЛЬНО : если Google получил CVN от пользователя, он указан здесь и должен быть проверен. |
AvsData
Содержит поля адреса, которые должны быть проверены AVS.
JSON-представление | |
---|---|
{ "streetAddress": string, "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
Поля | |
---|---|
streetAddress | НЕОБЯЗАТЕЛЬНО : почтовый адрес платежного адреса пользователя. Если пользователь предоставил несколько строк для ввода своего адреса (например, строку для номера квартиры), строки объединяются пробелами. |
localityName | НЕОБЯЗАТЕЛЬНО : это довольно расплывчатый термин, но обычно он относится к части адреса, посвященной городу. В регионах мира, где населенные пункты не определены четко или плохо вписываются в эту структуру (например, Япония и Китай), оставьте localityName пустым и используйте адресную_строку. Примеры: город в США, ИТ-коммуна, почтовый город Великобритании. |
administrativeAreaName | НЕОБЯЗАТЕЛЬНО : административное подразделение верхнего уровня этой страны для платежного адреса пользователя. Примеры: штат США, ИТ-регион, государство, входящее в состав Великобритании, префектура Японии. Когда страна == США, ожидается, что это будет двухсимвольная аббревиатура штата США. |
postalCodeNumber | НЕОБЯЗАТЕЛЬНО : почтовый индекс пользователя для выставления счетов. |
countryCode | НЕОБЯЗАТЕЛЬНО : код страны платежного адреса пользователя в формате ISO-3166-1 Alpha-2. |
Заголовок ответа
Объект заголовка, который определяется во всех ответах, отправленных с сервера.
JSON-представление | |
---|---|
{ "responseTimestamp": string } |
Поля | |
---|---|
responseTimestamp | ОБЯЗАТЕЛЬНО : временная метка этого ответа, представленная в миллисекундах с момента начала. Получатель должен убедиться, что эта временная метка составляет ± 60 секунд от «сейчас». |
КардНетворкРезультат
Содержит сеть и необработанный код результата из этой сети.
JSON-представление | |
---|---|
{
"network": enum( |
Поля | |
---|---|
network | ОБЯЗАТЕЛЬНО : сеть, из которой получен код результата. |
iso8583Result | ОБЯЗАТЕЛЬНО : код возврата ISO-8583, возвращаемый сетью. Если сеть использует собственный формат кода ответа, интегратор должен сопоставить эти коды ответа с кодами возврата ISO-8583. |
rawNetworkResult | ОБЯЗАТЕЛЬНО : необработанное значение, возвращенное из сети. Сети, которые используют коды возврата ISO-8583, уже будут иметь одно и то же значение в этом поле и в |
Сеть
Определяет возможные карточные сети, которые могли вернуть rawResult
.
Перечисления | |
---|---|
UNKNOWN_NETWORK | Сеть не распозналась |
NETWORK_NOT_INVOLVED | Используйте это значение, если отказ поступил не от сети, например, если интегратор отклонил покупку еще до того, как она была отправлена в карточную сеть. |
AMEX | Сеть AMEX |
COMPROCARD | Сеть КОМПРОКАРД |
DANKORT | Сеть ДАНКОРТ |
DINACARD | Сеть ДИНАКАРД |
DINERS_CLUB | Сеть DINERS_CLUB |
DISCOVER | ОТКРОЙТЕ Сеть |
EFTPOS | Сеть ЕФТПОС |
ELO | Сеть ЭЛО |
ENROUTE | Сеть ENROUTE |
FELICA | Сеть ФЕЛИКА |
GE_CAPITAL | Сеть GE_CAPITAL |
HIPERCARD | Сеть ГИПЕРКАРТ |
ID | Идентификатор сети |
INTERAC | Сеть ИНТЕРАК |
JCB | Сеть JCB |
LASER | ЛАЗЕРНАЯ Сеть |
MAESTRO | Сеть МАЭСТРО |
MASTERCARD | Сеть МАСТЕРКАРД |
PPT | Сеть PPT |
QUICPAY | Сеть QUICPAY |
RUPAY | Сеть РУПЕЙ |
SBERCARD | Сеть СБЕРКАРТ |
SOLO | СОЛО Сеть |
SYNCHRONY | Сеть СИНХРОНИЯ |
UNIONPAY | Сеть UNIONPAY |
VISA | Сеть ВИЗА |
AvsResult
Результат проверки полей адреса, указанных в запросе.
Все поля являются обязательными, поскольку мы хотим получить явный результат для каждого поля, а не полагаться на отсутствие поля как на подразумеваемый результат.
JSON-представление | |
---|---|
{ "rawAvsResult": string, "streetAddress": enum( |
Поля | |
---|---|
rawAvsResult | ОБЯЗАТЕЛЬНО : необработанное значение AVS, возвращенное из карточной сети. |
streetAddress | ОБЯЗАТЕЛЬНО : результат проверки Если поле не было задано в запросе, это значение должно быть «NOT_SENT». |
localityName | ОБЯЗАТЕЛЬНО : результат проверки Если поле не было задано в запросе, это значение должно быть «NOT_SENT». |
administrativeAreaName | ОБЯЗАТЕЛЬНО : результат проверки Если поле не было задано в запросе, это значение должно быть «NOT_SENT». |
postalCodeNumber | ОБЯЗАТЕЛЬНО : результат проверки Если поле не было задано в запросе, это значение должно быть «NOT_SENT». |
countryCode | ОБЯЗАТЕЛЬНО : результат проверки Если поле не было задано в запросе, это значение должно быть «NOT_SENT». |
Результат проверки
Перечисления | |
---|---|
UNKNOWN_AVS_MATCH | Никогда не устанавливайте это значение по умолчанию! |
NOT_SENT | Google не отправил это поле, поэтому с ним ничего нельзя было сделать. |
MATCH | Google отправил поле интегратору, оно было проверено через AVS и оказалось, что оно соответствует ожидаемому значению. |
MISMATCH | Google отправил поле интегратору, оно было проверено через AVS, но не соответствовало ожидаемому значению. |
SKIPPED | Google отправил поле интегратору, но интегратор не проверил его. |
NOT_SPECIFIED | Google отправил поле интегратору, и интегратор проверил поле через AVS, но код результата AVS не предоставляет интегратору достаточно информации, чтобы узнать, соответствует ли поле ожидаемому значению. |
CvnResult
Результат проверки CVN, указанный в запросе.
Перечисления | |
---|---|
UNKNOWN_CVN_RESULT | Никогда не устанавливайте это значение по умолчанию! |
NOT_SENT | Google не предоставил CVN, поэтому его невозможно проверить. |
NOT_VERIFIED | Google отправил CVN, но он не был проверен. Это соответствует сетевому коду результата «F». |
MATCH | Google отправил CVN, он был проверен и совпал. Это соответствует сетевому коду результата «М». |
MISMATCH | Google отправил CVN, он был проверен, но не совпал. Это соответствует сетевому коду результата «N». |