Method: captureResultNotification

capture या asynchronousCapture तरीके से कॉल करने के बाद, कैप्चर किए गए नतीजे के बारे में Google को सूचना दें.

इस captureRequestId के लिए captureResult वैल्यू अलग-अलग है. इसलिए, इस तरीके को बाद में किए जाने वाले कॉल से, इसकी वैल्यू में बदलाव नहीं किया जा सकता.

अगर अनुरोध को प्रोसेस करते समय एंडपॉइंट को कोई गड़बड़ी मिलती है, तो इस एंडपॉइंट से मिलने वाला रिस्पॉन्स ErrorResponse का होगा.

अगर यह तरीका एचटीटीपी 200 नहीं दिखाता है, तो इस क्वेरी के रिस्पॉन्स खाली हो सकते हैं. जवाब का मुख्य हिस्सा उन स्थितियों में खाली होता है जिनमें साफ़ तौर पर जानकारी के साथ ErrorResponse का इस्तेमाल किया जा सकता है. इससे हमलावर को दूसरे इंटिग्रेटर के पेमेंट इंटिग्रेटर खाते के आइडेंटिफ़ायर को समझने में मदद मिलती है. इन स्थितियों में, जब या तो साइनिंग पासकोड मेल नहीं खाता, पेमेंट इंटिग्रेटर आइडेंटिफ़ायर नहीं मिला या एन्क्रिप्शन कुंजी की जानकारी नहीं थी. ऐसे में, यह तरीका खाली पेज के साथ एचटीटीपी 404 दिखाएगा. अगर अनुरोध के हस्ताक्षर की पुष्टि की जा सकती है, तो गड़बड़ी के बारे में ज़्यादा जानकारी जवाब के मुख्य हिस्से में दी जाएगी.

अनुरोध का एक उदाहरण यह दिखता है:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

जवाब का एक उदाहरण ऐसा दिखता है:


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

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

POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/:PIAID

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

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

JSON के काेड में दिखाना
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
फ़ील्ड
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

ज़रूरी है: पेमेंट इंटिग्रेटर खाते का आइडेंटिफ़ायर, जिस पर कैप्चर किया गया.

captureRequestId

string

ज़रूरी है: इस लेन-देन के लिए एक यूनीक आइडेंटिफ़ायर. Google ने इस अनुरोध से जुड़े capture या asynchronousCapture कॉल के दौरान यह requestId जनरेट किया है.

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

captureResult

object (CaptureResult)

ज़रूरी है: इस कैप्चर का नतीजा.

paymentIntegratorTransactionId

string

ज़रूरी नहीं: यह आइडेंटिफ़ायर खास तौर पर इंटिग्रेटर के लिए होता है और इसे इंटिग्रेटर से जनरेट किया जाता है. यह वह आइडेंटिफ़ायर है जिसके ज़रिए इंटिग्रेटर को इस ट्रांज़ैक्शन के बारे में पता चलता है.

सुविधा के लिए, भेजे जाने वाले पैसे की जानकारी में यह आइडेंटिफ़ायर शामिल होता है

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

captureResultNotification तरीके के लिए रिस्पॉन्स ऑब्जेक्ट.

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

JSON के काेड में दिखाना
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
फ़ील्ड
responseHeader

object (ResponseHeader)

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

result

enum (CaptureResultNotificationResultCode)

ज़रूरी: इस कॉल का नतीजा.

CaptureResult

कैप्चर करने के आखिरी नतीजे के बारे में जानकारी.

JSON के काेड में दिखाना
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
फ़ील्ड
captureResultCode

enum (CaptureResultCode)

ज़रूरी है: इस कैप्चर के नतीजे का कोड.

rawResult

object (RawResult)

ज़रूरी नहीं: इस कैप्चर का रॉ नतीजा. इस डेटा का इस्तेमाल, Google के रिस्क इंजन और आंकड़ों की जानकारी देने के लिए किया जाता है. कोड-मैपिंग अस्वीकार करने की स्थितियों में, कभी-कभी डेटा मिट जाता है. इंटिग्रेटर के पास Google को रॉ कोड देने का विकल्प होता है. उदाहरण के लिए, क्रेडिट कार्ड गेटवे (इंटीग्रेटर) इस फ़ील्ड का इस्तेमाल करके, Google को अस्वीकार करने के लिए उसी कोड का इस्तेमाल कर सकता है जो VISA नेटवर्क से मिला है. इस मामले में, scope "वीज़ा" होगा और VISA नेटवर्क से मिलने वाली रकम rawCode होगी.

अगर result, SUCCESS नहीं है, तो यह वैल्यू ज़रूरी है.

यूनियन फ़ील्ड FailureDetail.

FailureDetail इनमें से सिर्फ़ एक हो सकता है:

transactionMaxLimit

string (Int64Value format)

ज़रूरी नहीं: अगर captureResultCode CHARGE_EXCEEDS_TRANSACTION_LIMIT है, तो यह सबसे ज़्यादा मान्य लेन-देन की वैल्यू है. इसका इस्तेमाल स्ट्रक्चर्ड, उपयोगकर्ताओं को दिखने वाले मैसेज, और अस्वीकार किए जाने की दर का विश्लेषण करने के लिए किया जाता है.

यह रकम capture या asynchronousCapture तरीके से किए गए कॉल के currencyCode के माइक्रो हैं.

transactionMinLimit

string (Int64Value format)

ज़रूरी नहीं: अगर captureResultCode CHARGE_UNDER_TRANSACTION_LIMIT है, तो यह उस लेन-देन की कम से कम वैल्यू है जिसे मंज़ूरी दी जा सकती है. इसका इस्तेमाल स्ट्रक्चर्ड, उपयोगकर्ताओं को दिखने वाले मैसेज, और अस्वीकार किए जाने की दर का विश्लेषण करने के लिए किया जाता है.

यह रकम capture या asynchronousCapture तरीके से किए गए कॉल के currencyCode के माइक्रो हैं.

currentBalance

string (Int64Value format)

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

यह वैल्यू, अनुरोध किए गए currencyCode की मुद्रा में ही होनी चाहिए.

CaptureResultCode

कैप्चर करने के लिए नतीजों के कोड.

Enums
UNKNOWN_RESULT कभी भी इस डिफ़ॉल्ट वैल्यू को सेट न करें!
SUCCESS कैप्चर हो गया.
CHARGE_UNDER_TRANSACTION_LIMIT कैप्चर की गई रकम, इंटिग्रेटर की हर लेन-देन के लिए तय की गई कम से कम रकम से कम है. अगर इस कोड का इस्तेमाल किया जाता है, तो transactionMinLimit फ़ील्ड में यह जानकारी डालें कि उपयोगकर्ताओं को मैसेज भेजने के लिए, कम से कम कितने पैसे चुकाने पड़ेंगे.
CHARGE_EXCEEDS_TRANSACTION_LIMIT कैप्चर की गई रकम, इंटिग्रेटर के लिए तय की गई हर लेन-देन की ज़्यादा से ज़्यादा सीमा से ज़्यादा है. अगर इस कोड का इस्तेमाल किया जाता है, तो transactionMaxLimit फ़ील्ड में लेन-देन की सीमा डालें, ताकि उपयोगकर्ता मैसेज सेवा का इस्तेमाल कर सकें.
CHARGE_EXCEEDS_DAILY_LIMIT उपयोगकर्ता के खाते का इस्तेमाल अभी खरीदारी के लिए नहीं किया जा सकता, क्योंकि उसकी रोज़ाना की सीमा पूरी हो चुकी है.
CHARGE_EXCEEDS_MONTHLY_LIMIT उपयोगकर्ता के खाते का इस्तेमाल अभी खरीदारी के लिए नहीं किया जा सकता, क्योंकि उसकी हर महीने की सीमा पूरी हो चुकी है.
INSUFFICIENT_FUNDS इस कैप्चर की गारंटी के लिए इस खाते में काफ़ी रकम नहीं है.
SUSPECTED_FRAUD इंटिग्रेटर को शक है कि यह लेन-देन धोखाधड़ी वाला है.
ACCOUNT_CLOSED इंटिग्रेटर के पास मौजूद उपयोगकर्ता का खाता बंद कर दिया गया है. इस वापसी मान की वजह से उपयोगकर्ता का डिवाइस Google के पास बंद हो जाएगा. उपयोगकर्ता को नया इंस्ट्रुमेंट जोड़ना होगा.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER इंटिग्रेटर के साथ काम करने वाले उपयोगकर्ता का खाता बंद कर दिया गया है. संदिग्ध खाते का अधिग्रहण कर लिया गया है. इस वापसी मान की वजह से उपयोगकर्ता का डिवाइस Google के पास बंद हो जाएगा. उपयोगकर्ता को नया इंस्ट्रुमेंट जोड़ना होगा.
ACCOUNT_CLOSED_FRAUD धोखाधड़ी की वजह से, इंटिग्रेटर के पास मौजूद उपयोगकर्ता का खाता बंद कर दिया गया है. इस वापसी मान की वजह से उपयोगकर्ता का डिवाइस Google के पास बंद हो जाएगा. उपयोगकर्ता को नया इंस्ट्रुमेंट जोड़ना होगा.
ACCOUNT_ON_HOLD उपयोगकर्ता के खाते पर रोक लगाई गई है.
OTP_NOT_MATCHED ओटीपी मेल नहीं खाता. यह इंटिग्रेटर ने भेजा है.
OTP_ALREADY_USED ओटीपी पहले ही इस्तेमाल कर लिया गया है.
CAPTURE_REQUEST_EXPIRED इंटिग्रेटर को उपयोगकर्ता के फ़ंड को कैप्चर करने में बहुत ज़्यादा समय लगा. Google इस लेन-देन को आखिरी स्थिति मानेगा. इसलिए, इंटिग्रेटर को यह पक्का करना होगा कि उपयोगकर्ता का फ़ंड बाद में कैप्चर न किया जाए. इसके अलावा, अगर खरीदारी पूरी नहीं हो पाती है, तो उपयोगकर्ता को अपने-आप रिफ़ंड मिल जाएगा.
INVALID_PIN उपयोगकर्ता ने गलत पिन दिया है.
OS_LOCK_FAILED इस पेमेंट फ़्लो के लिए, ओएस लॉक चैलेंज की ज़रूरत होती है और उपयोगकर्ता डिवाइस को अनलॉक नहीं कर सका.
PIN_ENTRY_ATTEMPTS_EXHAUSTED इस पेमेंट फ़्लो के लिए, उपयोगकर्ता का पिन डालना ज़रूरी है. उपयोगकर्ता ने कई बार पिन नहीं डाला. कई बार कोशिश करने के बाद भी पिन नहीं डाला जा सका.
USER_EXITED_PAYMENT_FLOW उपयोगकर्ता ने पेमेंट की पूरी कोशिश रद्द कर दी है (ओएस लॉक या पिन एंट्री स्क्रीन पर).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED इस समय खरीदारी के लिए उपयोगकर्ता के खाते का इस्तेमाल नहीं किया जा सकता, क्योंकि उसने हर महीने के लेन-देन की कोशिश करने की सीमा पार कर ली है.
DECLINED_BY_ISSUER

अस्वीकार करने वाले इस कोड का इस्तेमाल, कभी भी स्थिर स्थिति में नहीं किया जाना चाहिए. इसे अस्थायी कैच-ऑल कोड के रूप में तब इस्तेमाल किया जाता है, जब इंटिग्रेटर को उपयोगकर्ता के इंस्ट्रुमेंट को जारी करने वाले से, अस्वीकार किए जाने वाले ऐसे कोड की जानकारी मिलती है जिसकी जानकारी नहीं है. नतीजों के इस कोड का इस्तेमाल तब किया जा सकता है, जब इंटिग्रेटर इस जानकारी के लिए, नतीजों के लिए बेहतर कोड तय करता है या इस जानकारी में नया नतीजा कोड जोड़ने के लिए बातचीत करता है.

अहम बात यह है कि अस्वीकार करने वाले इस कोड की वजह से, खरीदारी में काफ़ी ज़्यादा असल गिरावट आई है. Google के हिसाब से, यह लेन-देन हमेशा के लिए अस्वीकार किया जाएगा. अगर इंटिग्रेटर इसे लौटाता है, तो यह उन्हें ट्रैक करना है कि जारी करने वाले के कोड का असल में क्या मतलब है. साथ ही, अगर कोड के सही होने की जानकारी मिलती है, तो यह उपयोगकर्ता को रिफ़ंड करता है SUCCESS.

अगर अस्वीकार करने के इस कोड का इस्तेमाल कुछ दिनों से ज़्यादा समय तक एक ही कोड के लिए किया जाता है, तो Google इसे एक बग मानेगा और बग को ठीक करने के संबंध में अनुबंध के हिसाब से लगने वाले दंड के हिसाब से इसे ट्रैक करेगा.

RawResult

नतीजे से जुड़ा रॉ ऑब्जेक्ट.

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

string

ज़रूरी नहीं: rawCode का स्कोप खाली हो सकता है.

rawCode

string

ज़रूरी है: इंटिग्रेटर या उसके सबसिस्टम से मिला रॉ कोड.

CaptureResultNotificationResultCode

captureResultNotification तरीके के लिए नतीजों के कोड.

Enums
UNKNOWN_RESULT कभी भी इस डिफ़ॉल्ट वैल्यू को सेट न करें!
SUCCESS कैप्चर नतीजे की सूचना को प्रोसेस किया गया.