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 ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.

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

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

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

object(RequestHeader)

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

standardCard

object(StandardCard)

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

avsData

object(AvsData)

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

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

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

Payment Integrator के होस्ट किए गए Card.verifycard तरीके के लिए रिस्पॉन्स ऑब्जेक्ट.

जेएसओएन के काेड में दिखाना
{
  "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

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

जेएसओएन के काेड में दिखाना
{
  "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' या 'fil-PH'. जवाब में, user_message फ़ील्ड को चलाने के लिए इसका इस्तेमाल करें.

protocolVersion

object(Version)

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

वर्शन

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

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

number

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

minor

number

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

revision

number

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

StandardCard

कार्ड का स्टैंडर्ड वर्शन

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

string

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

expiryDate

string

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

cvn

string

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

AvsData

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

जेएसओएन के काेड में दिखाना
{
  "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

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

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

string (int64 format)

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

CardNetworkResult

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

जेएसओएन के काेड में दिखाना
{
  "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 डायनाकार्ड नेटवर्क
DINERS_CLUB DINERS_CLUB नेटवर्क
DISCOVER डिस्कवर नेटवर्क
EFTPOS EFTPOS नेटवर्क
ELO ELO नेटवर्क
ENROUTE नेटवर्क बदलें
FELICA FELICA नेटवर्क
GE_CAPITAL GE_CAPITAL नेटवर्क
HIPERCARD HIPERCARD नेटवर्क
ID आईडी नेटवर्क
INTERAC InterAC नेटवर्क
JCB JCB नेटवर्क
LASER LASER नेटवर्क
MAESTRO MAESTRO नेटवर्क
MASTERCARD MMastercard नेटवर्क
PPT PPT नेटवर्क
QUICPAY QUICPAY नेटवर्क
RUPAY RUPAY नेटवर्क
SBERCARD SBERCARD नेटवर्क
SOLO SOLO नेटवर्क
SYNCHRONY सिंक्रोनी नेटवर्क
UNIONPAY यूनियनपे नेटवर्क
VISA VISA नेटवर्क

AvsResult

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

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

जेएसओएन के काेड में दिखाना
{
  "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 ने फ़ील्ड को इंटिग्रेटर को भेज दिया और AVS के ज़रिए इसकी जांच की गई. यह जांच उम्मीद के मुताबिक वैल्यू से मेल खाती थी.
MISMATCH Google ने फ़ील्ड को इंटिग्रेटर को भेज दिया और AVS के ज़रिए इसकी जांच की गई, लेकिन यह उम्मीद के मुताबिक नहीं थी.
SKIPPED Google ने फ़ील्ड को इंटिग्रेटर को भेज दिया है, लेकिन इंटिग्रेटर ने फ़ील्ड की जांच नहीं की.
NOT_SPECIFIED Google ने फ़ील्ड को इंटिग्रेटर को भेजा और इंटिग्रेटर ने AVS के ज़रिए फ़ील्ड की जांच की. हालांकि, AVS नतीजा कोड इतनी जानकारी नहीं देता जिससे इंटिग्रेटर को यह पता चल सके कि फ़ील्ड, वैल्यू से मेल खाता है या नहीं.

CvnResult

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

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