- एचटीटीपी अनुरोध
- अनुरोध का मुख्य हिस्सा
- जवाब का मुख्य हिस्सा
- CaptureResult
- CaptureResultCode
- RawResult
- CaptureResultNotificationResultCode
capture या asynchronousCapture तरीके से कॉल करने के बाद, कैप्चर किए गए नतीजे के बारे में Google को सूचना दें.
इस captureRequestId के लिए captureResult वैल्यू अलग-अलग है. इसलिए, इस तरीके को बाद में किए जाने वाले कॉल से, इसकी वैल्यू में बदलाव नहीं किया जा सकता.
अगर अनुरोध को प्रोसेस करते समय एंडपॉइंट को कोई गड़बड़ी मिलती है, तो इस एंडपॉइंट से मिलने वाला रिस्पॉन्स का होगा.ErrorResponse
अगर यह तरीका एचटीटीपी 200 नहीं दिखाता है, तो इस क्वेरी के रिस्पॉन्स खाली हो सकते हैं. जवाब का मुख्य हिस्सा उन स्थितियों में खाली होता है जिनमें साफ़ तौर पर जानकारी के साथ का इस्तेमाल किया जा सकता है. इससे हमलावर को दूसरे इंटिग्रेटर के पेमेंट इंटिग्रेटर खाते के आइडेंटिफ़ायर को समझने में मदद मिलती है. इन स्थितियों में, जब या तो साइनिंग पासकोड मेल नहीं खाता, पेमेंट इंटिग्रेटर आइडेंटिफ़ायर नहीं मिला या एन्क्रिप्शन कुंजी की जानकारी नहीं थी. ऐसे में, यह तरीका खाली पेज के साथ एचटीटीपी 404 दिखाएगा. अगर अनुरोध के हस्ताक्षर की पुष्टि की जा सकती है, तो गड़बड़ी के बारे में ज़्यादा जानकारी जवाब के मुख्य हिस्से में दी जाएगी.ErrorResponse
अनुरोध का एक उदाहरण यह दिखता है:
{
"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 |
ज़रूरी है: पेमेंट इंटिग्रेटर खाते का आइडेंटिफ़ायर, जिस पर कैप्चर किया गया. |
captureRequestId |
ज़रूरी है: इस लेन-देन के लिए एक यूनीक आइडेंटिफ़ायर. Google ने इस अनुरोध से जुड़े यह एक स्ट्रिंग है, जिसमें ज़्यादा से ज़्यादा 100 वर्ण हो सकते हैं. इसमें सिर्फ़ "a-z", "A-Z", "0-9", " ",", और "_" वर्ण शामिल हैं. |
captureResult |
ज़रूरी है: इस कैप्चर का नतीजा. |
paymentIntegratorTransactionId |
ज़रूरी नहीं: यह आइडेंटिफ़ायर खास तौर पर इंटिग्रेटर के लिए होता है और इसे इंटिग्रेटर से जनरेट किया जाता है. यह वह आइडेंटिफ़ायर है जिसके ज़रिए इंटिग्रेटर को इस ट्रांज़ैक्शन के बारे में पता चलता है. सुविधा के लिए, भेजे जाने वाले पैसे की जानकारी में यह आइडेंटिफ़ायर शामिल होता है |
जवाब का मुख्य भाग
captureResultNotification तरीके के लिए रिस्पॉन्स ऑब्जेक्ट.
अगर एपीआई सही से जुड़ जाता है, ताे जवाब के मुख्य भाग में नीचे दिए गए स्ट्रक्चर शामिल होता है.
| JSON के काेड में दिखाना |
|---|
{ "responseHeader": { object ( |
| फ़ील्ड | |
|---|---|
responseHeader |
ज़रूरी: सभी जवाबों के लिए सामान्य हेडर. |
result |
ज़रूरी: इस कॉल का नतीजा. |
CaptureResult
कैप्चर करने के आखिरी नतीजे के बारे में जानकारी.
| JSON के काेड में दिखाना |
|---|
{ "captureResultCode": enum ( |
| फ़ील्ड | |
|---|---|
captureResultCode |
ज़रूरी है: इस कैप्चर के नतीजे का कोड. |
rawResult |
ज़रूरी नहीं: इस कैप्चर का रॉ नतीजा. इस डेटा का इस्तेमाल, Google के रिस्क इंजन और आंकड़ों की जानकारी देने के लिए किया जाता है. कोड-मैपिंग अस्वीकार करने की स्थितियों में, कभी-कभी डेटा मिट जाता है. इंटिग्रेटर के पास Google को रॉ कोड देने का विकल्प होता है. उदाहरण के लिए, क्रेडिट कार्ड गेटवे (इंटीग्रेटर) इस फ़ील्ड का इस्तेमाल करके, Google को अस्वीकार करने के लिए उसी कोड का इस्तेमाल कर सकता है जो VISA नेटवर्क से मिला है. इस मामले में, अगर |
यूनियन फ़ील्ड
|
|
transactionMaxLimit |
ज़रूरी नहीं: अगर यह रकम |
transactionMinLimit |
ज़रूरी नहीं: अगर यह रकम |
currentBalance |
ज़रूरी नहीं: अगर नतीजा यह वैल्यू, अनुरोध किए गए |
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 के हिसाब से, यह लेन-देन हमेशा के लिए अस्वीकार किया जाएगा. अगर इंटिग्रेटर इसे लौटाता है, तो यह उन्हें ट्रैक करना है कि जारी करने वाले के कोड का असल में क्या मतलब है. साथ ही, अगर कोड के सही होने की जानकारी मिलती है, तो यह उपयोगकर्ता को रिफ़ंड करता है अगर अस्वीकार करने के इस कोड का इस्तेमाल कुछ दिनों से ज़्यादा समय तक एक ही कोड के लिए किया जाता है, तो Google इसे एक बग मानेगा और बग को ठीक करने के संबंध में अनुबंध के हिसाब से लगने वाले दंड के हिसाब से इसे ट्रैक करेगा. |
RawResult
नतीजे से जुड़ा रॉ ऑब्जेक्ट.
| JSON के काेड में दिखाना |
|---|
{ "scope": string, "rawCode": string } |
| फ़ील्ड | |
|---|---|
scope |
ज़रूरी नहीं: rawCode का स्कोप खाली हो सकता है. |
rawCode |
ज़रूरी है: इंटिग्रेटर या उसके सबसिस्टम से मिला रॉ कोड. |
CaptureResultNotificationResultCode
captureResultNotification तरीके के लिए नतीजों के कोड.
| Enums | |
|---|---|
UNKNOWN_RESULT |
कभी भी इस डिफ़ॉल्ट वैल्यू को सेट न करें! |
SUCCESS |
कैप्चर नतीजे की सूचना को प्रोसेस किया गया. |