- HTTP 요청
- 요청 본문
- 응답 본문
- RequestHeader
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- 버전
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- StandardCard
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- AvsData
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- ResponseHeader
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- CardNetworkResult
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- 네트워크
- AvsResult
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- VerificationResult
- 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 |
REQUIRED: 모든 응답의 공통 헤더입니다. |
cardNetworkResult |
REQUIRED: 카드 네트워크에서 승인을 발행한 결과입니다. |
avsResult |
선택사항: 요청에서 전송한 주소 입력란을 확인한 결과입니다. 요청에서 |
cvnResult |
필수: 요청에 전송된 CVN을 인증한 결과입니다. 요청에 CVN이 설정되지 않은 경우 이 값은 |
RequestHeader
서버로 전송된 모든 요청에 정의된 헤더 객체입니다.
JSON 표현 | |
---|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object( |
필드 | |
---|---|
requestId |
필수: 이 요청의 고유 식별자입니다. 최대 길이가 100자인 문자열이며 'a~z', 'A~Z', '0-9', ':', '-', '_' 문자만 포함됩니다. |
requestTimestamp |
필수: 에포크 이후 밀리초로 표시되는 이 요청의 타임스탬프입니다. 수신자는 이 타임스탬프가 '지금'의 ±60초인지 확인해야 합니다. 이 요청 타임스탬프는 재시도 시 멱등성을 갖지 않습니다. |
userLocale |
선택사항: 두 글자 또는 세 글자로 된 ISO 639-2 Alpha 3 언어 코드이며 원하는 경우 하이픈과 ISO 3166-1 Alpha-2 국가 코드가 뒤에 옵니다(예: 'pt', 'pt-BR', 'fil', 'fil-PH'). 응답에서 |
protocolVersion |
필수: 이 요청의 버전입니다. |
버전
기존 a.b.c
버전 구조의 구조화된 형식인 버전 객체입니다. 동일한 번호의 메이저 버전은 호환성이 보장됩니다. 부수적인 변경사항은 예고 없이 자주 변경될 수 있습니다. 통합업체는 동일한 주 버전에 대한 모든 요청을 지원해야 합니다.
JSON 표현 | |
---|---|
{ "major": number, "minor": number, "revision": number } |
필드 | |
---|---|
major |
REQUIRED: 메이저 버전입니다. 이는 다른 버전의 호환성 요청이 호환된다는 보장이 없는 경우에 표시됩니다. |
minor |
필수: 마이너 버전입니다. 이는 중요한 버그 수정을 나타냅니다. |
revision |
필수: 마이너 버전입니다. 사소한 버그 수정을 나타냅니다. |
StandardCard
카드의 표준 표현
JSON 표현 | |
---|---|
{ "accountNumber": string, "expiryDate": string, "cvn": string } |
필드 | |
---|---|
accountNumber |
필수: 일반 텍스트로 된 카드의 주 계좌 번호 (PAN)입니다. |
expiryDate |
선택사항: MM/YYYY 형식의 카드 만료일입니다. 특정 지역의 특정 카드에는 만료일이 없기 때문에 선택사항입니다. |
cvn |
선택사항: Google이 사용자로부터 CVN을 수집한 경우 여기에 제공되며 인증을 받아야 합니다. |
AvsData
AVS에서 확인할 주소 필드가 포함됩니다.
JSON 표현 | |
---|---|
{ "streetAddress": string, "localityName": string, "administrativeAreaName": string, "postalCodeNumber": string, "countryCode": string } |
필드 | |
---|---|
streetAddress |
선택사항: 사용자 청구서 수신 주소의 상세 주소입니다. 사용자가 상세 주소를 입력하기 위해 여러 줄 (예: 아파트 동호수를 나타내는 줄)을 제공한 경우 이 줄은 공백으로 연결됩니다. |
localityName |
선택사항: 모호한 용어이지만 일반적으로 주소의 시/군/구 부분을 나타냅니다. 지역이 잘 정의되지 않거나 이 구조에 잘 맞지 않는 지역 (예: 일본 및 중국)의 경우 localityName을 비워 두고 address_line을 사용합니다. 예: 미국 도시, IT 코뮤, 영국 우체국 |
administrativeAreaName |
선택사항: 사용자의 청구서 수신 주소에 해당하는 이 국가의 최상위 행정 구역 단위입니다. 예: 미국 주, IT 지역, 영국 선거구, 일본 현 country == US인 경우 미국 주의 2자 약어를 사용해야 합니다. |
postalCodeNumber |
선택사항: 사용자의 청구 우편번호입니다. |
countryCode |
선택사항: 사용자 청구서 수신 주소의 국가 코드입니다(ISO-3166-1 Alpha-2 형식). |
ResponseHeader
서버에서 전송된 모든 응답에 정의된 헤더 객체입니다.
JSON 표현 | |
---|---|
{ "responseTimestamp": string } |
필드 | |
---|---|
responseTimestamp |
필수: 에포크 이후 밀리초로 표시되는 이 응답의 타임스탬프입니다. 수신자는 이 타임스탬프가 '지금'의 ±60초인지 확인해야 합니다. |
CardNetworkResult
네트워크 및 해당 네트워크의 원시 결과 코드를 포함합니다.
JSON 표현 | |
---|---|
{
"network": enum( |
필드 | |
---|---|
network |
필수: 결과 코드의 출처 네트워크입니다. |
iso8583Result |
필수: 네트워크에서 반환된 ISO-8583 반환 코드입니다. 네트워크가 자체 응답 코드 형식을 사용하는 경우 통합자는 이러한 응답 코드를 ISO-8583 반환 코드에 매핑해야 합니다. |
rawNetworkResult |
필수: 네트워크에서 반환된 원시 값입니다. ISO-8583 반환 코드를 사용하는 네트워크는 이미 이 필드와 |
네트워크
rawResult
를 반환했을 수 있는 가능한 카드 네트워크를 정의합니다.
열거형 | |
---|---|
UNKNOWN_NETWORK |
네트워크가 인식되지 않았습니다. |
NETWORK_NOT_INVOLVED |
구매 거부가 네트워크에서 발생하지 않은 경우, 예를 들어 통합업체에서 구매가 카드 네트워크로 전송되기 전에 구매를 거부한 경우 이 값을 사용합니다. |
AMEX |
AMEX 네트워크 |
COMPROCARD |
COMPROCARD 네트워크 |
DANKORT |
DANKORT 네트워크 |
DINACARD |
DINACARD 네트워크 |
DINERS_CLUB |
DINERS_CLUB 네트워크 |
DISCOVER |
디스커버 네트워크 |
EFTPOS |
EFTPOS 네트워크 |
ELO |
ELO 네트워크 |
ENROUTE |
ENROUTE 네트워크 |
FELICA |
FELICA 네트워크 |
GE_CAPITAL |
GE_CAPITAL 네트워크 |
HIPERCARD |
HIPERCARD 네트워크 |
ID |
ID 네트워크 |
INTERAC |
INTERAC 네트워크 |
JCB |
JCB 네트워크 |
LASER |
레이저 네트워크 |
MAESTRO |
MAESTRO 네트워크 |
MASTERCARD |
MASTERCARD 네트워크 |
PPT |
PPT 네트워크 |
QUICPAY |
QUICPAY 네트워크 |
RUPAY |
RUPAY 네트워크 |
SBERCARD |
SBERCARD 네트워크 |
SOLO |
SOLO 네트워크 |
SYNCHRONY |
SYNCHRONY 네트워크 |
UNIONPAY |
UNIONPAY 네트워크 |
VISA |
VISA 네트워크 |
AvsResult
요청에 제공된 주소 필드를 확인한 결과입니다.
암시적 결과로 필드의 부재에 의존하기보다는 각 필드에 명시적 결과를 원하기 때문에 모든 필드가 필요합니다.
JSON 표현 | |
---|---|
{ "rawAvsResult": string, "streetAddress": enum( |
필드 | |
---|---|
rawAvsResult |
필수: 카드 네트워크에서 반환된 원시 AVS 값입니다. |
streetAddress |
필수: 요청의 요청에 필드가 설정되지 않은 경우 이 값은 'NOT_SENT'여야 합니다. |
localityName |
필수: 요청의 요청에 필드가 설정되지 않은 경우 이 값은 'NOT_SENT'여야 합니다. |
administrativeAreaName |
필수: 요청의 요청에 필드가 설정되지 않은 경우 이 값은 'NOT_SENT'여야 합니다. |
postalCodeNumber |
필수: 요청의 요청에 필드가 설정되지 않은 경우 이 값은 'NOT_SENT'여야 합니다. |
countryCode |
필수: 요청의 요청에 필드가 설정되지 않은 경우 이 값은 'NOT_SENT'여야 합니다. |
VerificationResult
열거형 | |
---|---|
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을 보냈고 인증이 확인되었으며 일치합니다. 이는 네트워크 결과 코드 'M'에 해당합니다. |
MISMATCH |
Google에서 CVN을 전송했으며 인증을 받았지만 일치하지 않았습니다. 이 값은 네트워크 결과 코드 'N'에 해당합니다. |