Method: card.verifycard

उपयोगकर्ता के कार्ड की पुष्टि करता है, ताकि यह पता लगाया जा सके कि वह मान्य है या नहीं.

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"
}

एचटीटीपी अनुरोध

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

यह यूआरएल gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य हिस्से में, यहां दिए गए स्ट्रक्चर का डेटा शामिल होता है:

JSON के काेड में दिखाना
{
  "requestHeader": {
    object(RequestHeader)
  },
  "standardCard": {
    object(StandardCard)
  },
  "avsData": {
    object(AvsData)
  }
}
फ़ील्ड
requestHeader

object(RequestHeader)

ज़रूरी: सभी अनुरोधों के लिए सामान्य हेडर.

standardCard

object(StandardCard)

ज़रूरी: उपयोगकर्ता के पेमेंट कार्ड का डेटा.

avsData

object(AvsData)

ज़रूरी नहीं: उपयोगकर्ता के पते की पुष्टि एवीएस से की जानी चाहिए.

जवाब का मुख्य भाग

अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.

पेमेंट इंटिग्रेटर की ओर से होस्ट किए गए card.verifycard तरीके के लिए रिस्पॉन्स ऑब्जेक्ट.

JSON के काेड में दिखाना
{
  "responseHeader": {
    object(ResponseHeader)
  },
  "cardNetworkResult": {
    object(CardNetworkResult)
  },
  "avsResult": {
    object(AvsResult)
  },
  "cvnResult": enum(CvnResult)
}
फ़ील्ड
responseHeader

object(ResponseHeader)

ज़रूरी: सभी जवाबों के लिए सामान्य हेडर.

cardNetworkResult

object(CardNetworkResult)

ज़रूरी: कार्ड नेटवर्क पर अनुमति जारी करने का नतीजा.

avsResult

object(AvsResult)

ज़रूरी नहीं: अनुरोध में भेजे गए पते के फ़ील्ड की पुष्टि करने का नतीजा.

अगर अनुरोध में addressVerificationSystemData सेट किया गया था, तो यह फ़ील्ड ज़रूरी है.

cvnResult

enum(CvnResult)

ज़रूरी: अनुरोध में भेजे गए CVN की पुष्टि करने का नतीजा. अगर अनुरोध पर CVN सेट नहीं किया गया था, तो यह वैल्यू NOT_SENT होनी चाहिए.

RequestHeader

हेडर ऑब्जेक्ट, जो सर्वर को भेजे गए सभी अनुरोधों में तय होता है.

JSON के काेड में दिखाना
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object(Version)
  }
}
फ़ील्ड
requestId

string

ज़रूरी है: इस अनुरोध के लिए यूनीक आइडेंटिफ़ायर.

यह एक ऐसी स्ट्रिंग है, जिसमें ज़्यादा से ज़्यादा 100 वर्ण हो सकते हैं. साथ ही, इसमें सिर्फ़ "a-z", "A-Z", "0-9", ", "-", और "_" वर्ण शामिल होते हैं.

requestTimestamp

string (int64 format)

ज़रूरी: इस अनुरोध के टाइमस्टैंप को epoch के बाद मिलीसेकंड के तौर पर दिखाया जाता है. पाने वाले व्यक्ति को पुष्टि करनी होगी कि यह टाइमस्टैंप 'अब' का ± 60 सेकंड का है. बार-बार कोशिश करने पर, इस अनुरोध का टाइमस्टैंप इस्तेमाल नहीं किया जा सकता.

userLocale
(deprecated)

string

ज़रूरी नहीं: दो या तीन अक्षर वाला ISO 639-2 Alpha 3 भाषा कोड, जिसके बाद हाइफ़न और ISO 3166-1 Alpha-2 देश कोड, जैसे कि 'pt', 'pt-BR', 'fil' या 'Philip-PH' हो. जवाब में user_message फ़ील्ड को ड्राइव करने के लिए इसका इस्तेमाल करें.

protocolVersion

object(Version)

ज़रूरी है: इस अनुरोध का वर्शन.

वर्शन

वर्शन ऑब्जेक्ट जो क्लासिक a.b.c वर्शन स्ट्रक्चर का स्ट्रक्चर्ड फ़ॉर्म है. एक ही नंबर के मेजर वर्शन के साथ काम करने की गारंटी होती है. ध्यान रखें कि मामूली बदलाव और बदलाव, अक्सर और बिना किसी सूचना के बदल सकते हैं. इंटिग्रेटर को एक ही मेजर वर्शन के लिए सभी अनुरोधों के साथ काम करना चाहिए.

JSON के काेड में दिखाना
{
  "major": number,
  "minor": number,
  "revision": number
}
फ़ील्ड
major

number

ज़रूरी: मेजर वर्शन. इसे अलग-अलग वर्शन के साथ काम करने से जुड़े अनुरोधों के लिए मार्क किया गया है. इसलिए, इस बात की कोई गारंटी नहीं है कि वे साथ काम करेंगे.

minor

number

ज़रूरी: छोटा वर्शन. इससे पता चलता है कि अहम गड़बड़ियां ठीक कर दी गई हैं.

revision

number

ज़रूरी: छोटा वर्शन. यह छोटी-मोटी गड़बड़ियों को ठीक करता है.

StandardCard

कार्ड का स्टैंडर्ड रिप्रज़ेंटेशन

JSON के काेड में दिखाना
{
  "accountNumber": string,
  "expiryDate": string,
  "cvn": string
}
फ़ील्ड
accountNumber

string

ज़रूरी है: कार्ड का प्राइमरी खाता नंबर (पैन) सादे टेक्स्ट में.

expiryDate

string

ज़रूरी नहीं: कार्ड की समयसीमा खत्म होने की तारीख MM/YYYY फ़ॉर्मैट में. ज़रूरी नहीं है, क्योंकि कुछ इलाकों में कुछ कार्ड के खत्म होने की तारीख नहीं होती.

cvn

string

ज़रूरी नहीं: अगर Google ने उपयोगकर्ता से CVN इकट्ठा किया है, तो वह यहां दिया गया है. इसकी पुष्टि की जानी चाहिए.

AvsData

इसमें पते के फ़ील्ड शामिल हैं, जिनकी पुष्टि एवीएस से की जाएगी.

JSON के काेड में दिखाना
{
  "streetAddress": string,
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
फ़ील्ड
streetAddress

string

ज़रूरी नहीं: उपयोगकर्ता के बिलिंग पते में दिया गया मोहल्ले का पता. जब उपयोगकर्ता अपने मोहल्ले का पता (जैसे कि अपार्टमेंट नंबर के लिए लाइन) डालने के लिए कई लाइनें देता है, तो लाइनें एक साथ जुड़ जाती हैं.

localityName

string

ज़रूरी नहीं: यह शब्द अधूरा है, लेकिन आम तौर पर यह किसी पते के शहर/कस्बे वाले हिस्से के बारे में बताता है. दुनिया के उन क्षेत्रों के लिए, जहां क्षेत्र अच्छी तरह से परिभाषित नहीं हैं या इस संरचना में ठीक से फ़िट नहीं होते हैं (उदाहरण के लिए, जापान और चीन), localityName को खाली छोड़ दें और address_line का इस्तेमाल करें.

उदाहरण: यूएस शहर, आईटी कम्यून, यूके पोस्ट टाउन.

administrativeAreaName

string

ज़रूरी नहीं: उपयोगकर्ता के बिलिंग पते के लिए, इस देश का टॉप-लेवल एडमिन सबडिविज़न.

उदाहरण: अमेरिका का राज्य, आईटी क्षेत्र, यूनाइटेड किंगडम का आधिकारिक देश, जापान का प्रांत

जब देश == अमेरिका हो, तो इसे अमेरिकी राज्य के लिए दो वर्णों का छोटा रूप माना जाना चाहिए.

postalCodeNumber

string

ज़रूरी नहीं: उपयोगकर्ता की बिलिंग का पिन कोड.

countryCode

string

ज़रूरी नहीं: ISO-3166-1 Alpha-2 फ़ॉर्मैट में उपयोगकर्ता के बिलिंग पते के देश का कोड.

ResponseHeader

हेडर ऑब्जेक्ट, जो सर्वर से भेजे गए सभी रिस्पॉन्स में तय होता है.

JSON के काेड में दिखाना
{
  "responseTimestamp": string
}
फ़ील्ड
responseTimestamp

string (int64 format)

ज़रूरी: इस जवाब के टाइमस्टैंप को epoch के बाद मिलीसेकंड के तौर पर दिखाया जाता है. पाने वाले व्यक्ति को पुष्टि करनी होगी कि यह टाइमस्टैंप 'अब' का ± 60 सेकंड का है.

CardNetworkResult

एक नेटवर्क और उस नेटवर्क से एक रॉ नतीजा कोड शामिल होता है.

JSON के काेड में दिखाना
{
  "network": enum(Network),
  "iso8583Result": string,
  "rawNetworkResult": string
}
फ़ील्ड
network

enum(Network)

ज़रूरी: वह नेटवर्क जिससे नतीजा कोड मिला था.

iso8583Result

string

ज़रूरी है: नेटवर्क से मिला ISO-8583 रिटर्न कोड.

अगर नेटवर्क अपने रिस्पॉन्स कोड का फ़ॉर्मैट इस्तेमाल करता है, तो इंटिग्रेटर को उन रिस्पॉन्स कोड को ISO-8583 रिटर्न कोड से मैप करना होगा.

rawNetworkResult

string

ज़रूरी है: नेटवर्क से मिली रॉ वैल्यू. जो नेटवर्क ISO-8583 रिटर्न कोड का इस्तेमाल करते हैं, उनके लिए इस फ़ील्ड और iso8583Result में पहले से ही वही वैल्यू होगी. इस फ़ील्ड का इस्तेमाल, Google के रिस्क इंजन के बारे में बताने के लिए किया जाता है. यह उन नेटवर्क के लिए सबसे ज़्यादा फ़ायदेमंद है जो अपने रिस्पॉन्स कोड का इस्तेमाल करते हैं.

नेटवर्क

उन संभावित कार्ड नेटवर्क के बारे में बताता है जिनसे शायद rawResult मिले.

Enums
UNKNOWN_NETWORK नेटवर्क की पहचान नहीं की गई
NETWORK_NOT_INVOLVED इस वैल्यू का इस्तेमाल तब करें, जब नेटवर्क की वजह से पेमेंट अस्वीकार न किया गया हो. उदाहरण के लिए, ऐसा तब करें, जब इंटिग्रेटर ने कार्ड नेटवर्क पर खरीदारी को भेजने से पहले ही उसे अस्वीकार कर दिया हो.
AMEX AMEX नेटवर्क
COMPROCARD COMPROCARD नेटवर्क
DANKORT DANKORT नेटवर्क
DINACARD DINACARD नेटवर्क
DINERS_CLUB DINERS_CLUB नेटवर्क
DISCOVER डिस्कवर नेटवर्क
EFTPOS EFTPOS नेटवर्क
ELO ELO नेटवर्क
ENROUTE ENरूट नेटवर्क
FELICA FELICA नेटवर्क
GE_CAPITAL GE_CAPITAL नेटवर्क
HIPERCARD HIPERCARD नेटवर्क
ID आईडी नेटवर्क
INTERAC INTERAC नेटवर्क
JCB JCB नेटवर्क
LASER LASER नेटवर्क
MAESTRO MAESTRO नेटवर्क
MASTERCARD MSTRCARD नेटवर्क
PPT PPT नेटवर्क
QUICPAY QUICPAY नेटवर्क
RUPAY RUPAY नेटवर्क
SBERCARD SBERCARD नेटवर्क
SOLO SOLO नेटवर्क
SYNCHRONY SYNCHRONY नेटवर्क
UNIONPAY UNIONPAY नेटवर्क
VISA VISA नेटवर्क

AvsResult

अनुरोध में दिए गए पता फ़ील्ड की पुष्टि करने का नतीजा.

सभी फ़ील्ड में डेटा डालना ज़रूरी है, क्योंकि हमें हर फ़ील्ड के लिए एक्सप्लिसिट नतीजा चाहिए. नतीजे के तौर पर फ़ील्ड के न होने पर निर्भर करना ज़रूरी नहीं है.

JSON के काेड में दिखाना
{
  "rawAvsResult": string,
  "streetAddress": enum(VerificationResult),
  "localityName": enum(VerificationResult),
  "administrativeAreaName": enum(VerificationResult),
  "postalCodeNumber": enum(VerificationResult),
  "countryCode": enum(VerificationResult)
}
फ़ील्ड
rawAvsResult

string

ज़रूरी है: कार्ड नेटवर्क से मिली रॉ AVS वैल्यू.

streetAddress

enum(VerificationResult)

ज़रूरी: अनुरोध के addressVerificationSystemData फ़ील्ड में भेजे गए streetAddress की पुष्टि करने का नतीजा.

अगर फ़ील्ड को अनुरोध में सेट नहीं किया गया था, तो यह मान "NOT_SENT" होना चाहिए.

localityName

enum(VerificationResult)

ज़रूरी: अनुरोध के addressVerificationSystemData फ़ील्ड में भेजे गए localityName की पुष्टि करने का नतीजा.

अगर फ़ील्ड को अनुरोध में सेट नहीं किया गया था, तो यह मान "NOT_SENT" होना चाहिए.

administrativeAreaName

enum(VerificationResult)

ज़रूरी: अनुरोध के addressVerificationSystemData फ़ील्ड में भेजे गए administrativeAreaName की पुष्टि करने का नतीजा.

अगर फ़ील्ड को अनुरोध में सेट नहीं किया गया था, तो यह मान "NOT_SENT" होना चाहिए.

postalCodeNumber

enum(VerificationResult)

ज़रूरी: अनुरोध के addressVerificationSystemData फ़ील्ड में भेजे गए postalCodeNumber की पुष्टि करने का नतीजा.

अगर फ़ील्ड को अनुरोध में सेट नहीं किया गया था, तो यह मान "NOT_SENT" होना चाहिए.

countryCode

enum(VerificationResult)

ज़रूरी: अनुरोध के addressVerificationSystemData फ़ील्ड में भेजे गए countryCode की पुष्टि करने का नतीजा.

अगर फ़ील्ड को अनुरोध में सेट नहीं किया गया था, तो यह मान "NOT_SENT" होना चाहिए.

VerificationResult

Enums
UNKNOWN_AVS_MATCH कभी भी इस डिफ़ॉल्ट वैल्यू को सेट न करें!
NOT_SENT Google ने यह फ़ील्ड नहीं भेजा है, इसलिए इसके साथ कुछ भी नहीं किया जा सका.
MATCH Google ने इंटिग्रेटर को फ़ील्ड भेजा और एवीएस के ज़रिए इसकी जांच की गई और यह अनुमानित वैल्यू से मैच किया.
MISMATCH Google ने इंटिग्रेटर को फ़ील्ड भेजा और इसकी एवीएस के ज़रिए जांच की गई, लेकिन यह अनुमानित वैल्यू से मेल नहीं खा रही थी.
SKIPPED Google ने फ़ील्ड को इंटिग्रेटर को भेजा, लेकिन इंटिग्रेटर ने फ़ील्ड की जांच नहीं की.
NOT_SPECIFIED Google ने फ़ील्ड को इंटिग्रेटर को भेजा और इंटिग्रेटर ने AVS की मदद से फ़ील्ड की जांच की. हालांकि, एवीएस के नतीजे के कोड से इंटिग्रेटर को यह जानने के लिए ज़रूरी जानकारी नहीं मिलती कि फ़ील्ड, अनुमानित वैल्यू से मेल खाता है या नहीं.

CvnResult

अनुरोध में दिए गए CVN की पुष्टि करने पर नतीजा.

Enums
UNKNOWN_CVN_RESULT कभी भी इस डिफ़ॉल्ट वैल्यू को सेट न करें!
NOT_SENT Google ने CVN नहीं दिया है, इसलिए इसकी पुष्टि नहीं की जा सकी.
NOT_VERIFIED Google ने CVN भेज दिया है, लेकिन उसकी पुष्टि नहीं हुई है. यह "F" वाले नेटवर्क नतीजे के कोड से मेल खाता है
MATCH Google ने CVN भेजा है, उसकी पुष्टि हो गई है, और वह मेल खा रहा है. यह "M" वाले नेटवर्क परिणाम कोड के अनुरूप है.
MISMATCH Google ने CVN भेजा है, उसकी पुष्टि हो गई है, लेकिन वह मेल नहीं खाता. यह "N" वाले नेटवर्क नतीजे कोड के मुताबिक है.