इस पेज पर, कैननिकल गड़बड़ी कोड के बारे में बताया गया है. Universal Commerce Protocol (यूनिवर्सल कॉमर्स प्रोटोकॉल) का इस्तेमाल करके, Google के साथ इंटिग्रेट करते समय, आपको अपनी एपीआई प्रतिक्रियाओं में ये कोड देने होंगे. गड़बड़ी के कोड एक जैसे होने से, साफ़ तौर पर जानकारी मिलती है. साथ ही, Google को अलग-अलग स्थितियों को सही तरीके से हैंडल करने में मदद मिलती है.
कारोबार से जुड़ी गड़बड़ी होने पर, आपके एपीआई को ऐसा जवाब देना चाहिए जिसमें टेबल में दिया गया सही code शामिल हो. गड़बड़ी के कुछ कोड के लिए, जवाब में messages ऐरे के लिए खास JSON स्ट्रक्चर का इस्तेमाल करने का सुझाव दिया जाता है. ये उदाहरण, टेबल के नीचे दिए गए गड़बड़ी के कोड के उदाहरण सेक्शन में दिए गए हैं. इन उदाहरणों में, आपको path फ़ील्ड का इस्तेमाल करना चाहिए. इससे अनुरोध या जवाब ऑब्जेक्ट में गड़बड़ी की जगह के बारे में ज़्यादा जानकारी दी जा सकती है.
गड़बड़ी ठीक करना
गड़बड़ियों की शिकायत करने का तरीका, गड़बड़ी के टाइप पर निर्भर करता है:
प्रोटोकॉल/सर्वर से जुड़ी गड़बड़ियां:
- अनुरोधों के गलत फ़ॉर्मैट में होने, पुष्टि न हो पाने या सर्वर के उपलब्ध न होने जैसी समस्याओं के लिए, स्टैंडर्ड एचटीटीपी स्टेटस कोड का इस्तेमाल करें. जैसे, क्लाइंट की गड़बड़ियों के लिए 4xx और सर्वर की गड़बड़ियों के लिए 5xx.
- ज़्यादा जानकारी के लिए, यूसीपी स्पेसिफ़िकेशन देखें.
कारोबार के लॉजिक से जुड़ी गड़बड़ियां/चेतावनी:
- HTTP 200 OK स्टेटस दिखाएं. इसमें पेमेंट अस्वीकार होने और धोखाधड़ी की वजह से पेमेंट खारिज होने के मामले शामिल हैं. भले ही, डाउनस्ट्रीम पेमेंट गेटवे से 4xx या 5xx गड़बड़ी का मैसेज मिला हो.
- JSON रिस्पॉन्स बॉडी में मौजूद
messagesकलेक्शन में समस्या के बारे में जानकारी दें. messagesकलेक्शन में मौजूद हर ऑब्जेक्ट में ये शामिल होने चाहिए:type:"error"या"warning"code: इस गाइड से लिया गया स्टैंडर्ड कोड."invalid"जैसे सामान्य या पहचाने न जाने वाले कोड का इस्तेमाल न करें.content: ऐसा ब्यौरा जिसे आसानी से पढ़ा जा सके.severity:typeकी वैल्यू"error"होने पर, यह एट्रिब्यूट ज़रूरी है. इस फ़ील्ड से साफ़ तौर पर पता चलता है कि गड़बड़ी गंभीर (unrecoverable) है या इससे खरीदार को समस्या ठीक करने के लिए कहा जा सकता है (recoverable). इसके लिए, गड़बड़ी कोड पर भरोसा करने की ज़रूरत नहीं होती.
मैसेज के टाइप: गड़बड़ी बनाम चेतावनी
मैसेज ऐरे में मौजूद type फ़ील्ड से, समस्या की गंभीरता का पता चलता है. यूसीपी, मुख्य तौर पर दो तरह के होते हैं:
error: इससे पता चलता है कि अनुरोध की गई कार्रवाई पूरी नहीं की जा सकी. ऐसा हो सकता है कि प्लैटफ़ॉर्म या उपयोगकर्ता को कार्रवाई करनी पड़े और फिर से कोशिश करनी पड़े. message-error specification देखें.- किसी गड़बड़ी के गंभीर होने का पता, गड़बड़ी
codeसे नहीं, बल्किseverityफ़ील्ड (unrecoverableयाrecoverable) से चलता है.
- किसी गड़बड़ी के गंभीर होने का पता, गड़बड़ी
warning: इससे पता चलता है कि कार्रवाई को ब्लॉक नहीं किया गया है, लेकिन उपयोगकर्ता को कुछ ज़रूरी जानकारी देनी चाहिए. इससे प्रोसेस रुकती नहीं है, लेकिन ज़रूरी जानकारी मिलती है. message-warning specification देखें.
गड़बड़ी के कोड की जानकारी
| गड़बड़ी का कोड | सुझाया गया टाइप | ब्यौरा |
|---|---|---|
out_of_stock |
गड़बड़ी | यह आइटम उपलब्ध नहीं है. आम तौर पर, इससे ucp.status: “error” होता है. एक से ज़्यादा आइटम के चेकआउट में आइटम इंडेक्स की जानकारी देने के लिए, path फ़ील्ड का इस्तेमाल करें. यहां दिया गया उदाहरण देखें. |
item_unavailable |
गड़बड़ी | आइटम नहीं मिला. आम तौर पर, इस वजह से आइटम से जुड़ी गड़बड़ियों के लिए ucp.status: “error” मिलता है. |
item_ineligible |
गड़बड़ी | यह आइटम मौजूद है, लेकिन इसे यूसीपी का इस्तेमाल करके नहीं खरीदा जा सकता. |
quantity_invalid_limit_exceeded |
गड़बड़ी | अनुरोध की गई संख्या, तय सीमा से ज़्यादा है. यहां दिया गया उदाहरण देखें. |
quantity_invalid_minimum_not_met |
गड़बड़ी | मांगी गई संख्या, कम से कम ज़रूरी संख्या से कम है. |
totals_changed |
चेतावनी | पिछले चरण के बाद से, कीमत या अन्य कुल रकम में बदलाव हुआ है. path फ़ील्ड का इस्तेमाल करके यह बताएं कि कौनसे कुल योग में बदलाव हुआ है. यहां दिया गया उदाहरण देखें. |
totals_invalid_minimum_not_met |
गड़बड़ी | ऑर्डर वैल्यू, कम से कम ज़रूरी शर्त को पूरा नहीं करती. |
missing_buyer_info |
गड़बड़ी | खरीदार की ज़रूरी जानकारी मौजूद नहीं है. path फ़ील्ड का इस्तेमाल करके, छूटे हुए फ़ील्ड की जानकारी दें. यहां दिया गया उदाहरण देखें. |
address_undeliverable |
गड़बड़ी | यह यूसीपी का स्टैंडर्ड गड़बड़ी कोड है. path फ़ील्ड का इस्तेमाल करके, किसी खास डेस्टिनेशन या पाबंदी वाले सामान के बारे में बताएं. यहां दिया गया उदाहरण देखें. |
address_unverifiable |
गड़बड़ी | दिए गए पते की पुष्टि नहीं की जा सकी. path फ़ील्ड का इस्तेमाल करके यह बताएं कि यह पता, सामान भेजने का पता है या बिलिंग पता. यहां दिया गया उदाहरण देखें. |
missing_fulfillment_info |
गड़बड़ी | आइटम भेजने के लिए ज़रूरी जानकारी मौजूद नहीं है. path फ़ील्ड का इस्तेमाल करके, छूटे हुए फ़ील्ड की जानकारी दें. |
eligibility_invalid |
गड़बड़ी | उपयोगकर्ता या ऑर्डर, कार्रवाई के लिए ज़रूरी शर्तें पूरी नहीं करता. यह यूसीपी का स्टैंडर्ड गड़बड़ी कोड है. ज़्यादा जानकारी के लिए, path फ़ील्ड का इस्तेमाल करें. |
discount_code_invalid |
चेतावनी | छूट का कोड अमान्य है. कोड नहीं मिला या गलत है. |
discount_code_expired |
चेतावनी | छूट के कोड की समयसीमा खत्म हो गई है. |
discount_code_already_applied |
चेतावनी | छूट का कोड पहले ही लागू किया जा चुका है. |
discount_code_combination_disallowed |
चेतावनी | इस छूट वाले कोड को अन्य ऑफ़र के साथ इस्तेमाल नहीं किया जा सकता. |
discount_code_user_not_logged_in |
चेतावनी | छूट का कोड इस्तेमाल करने के लिए, उपयोगकर्ता को लॉग इन करना होगा. |
discount_code_user_ineligible |
चेतावनी | उपयोगकर्ता, छूट का कोड इस्तेमाल करने के लिए योग्य नहीं है. |
missing_billing_info |
गड़बड़ी | बिलिंग की ज़रूरी जानकारी मौजूद नहीं है. बिलिंग पते के छूटे हुए फ़ील्ड की जानकारी देने के लिए, path फ़ील्ड का इस्तेमाल करें. यहां दिया गया उदाहरण देखें. |
identity_required |
गड़बड़ी | अनुरोध की गई कार्रवाई के लिए, उपयोगकर्ता की पहचान ज़रूरी है. हालांकि, यह मौजूद नहीं थी, अमान्य थी, इसकी समयसीमा खत्म हो गई थी या इसकी पुष्टि नहीं की जा सकी. REST के लिए, स्टेटस कोड 401 का इस्तेमाल करें. यहां दिया गया उदाहरण देखें. |
insufficient_scope |
गड़बड़ी | उपयोगकर्ता की पहचान करने वाला टोकन मान्य है, लेकिन इसमें वे स्कोप नहीं हैं जिनकी ज़रूरत इस कार्रवाई के लिए है. REST के लिए, 403 स्टेटस कोड का इस्तेमाल करें. यहां दिया गया उदाहरण देखें. |
payment_declined |
गड़बड़ी | कार्ड जारी करने वाले बैंक या कंपनी ने पेमेंट अस्वीकार कर दिया है. इसकी वजहें ये हो सकती हैं: खाते में ज़रूरी रकम न होना, धोखाधड़ी का शक होना या कार्ड से जुड़ी समस्याएं. यहां दिया गया उदाहरण देखें. |
payment_failed |
गड़बड़ी | प्रोसेसिंग के दौरान तकनीकी समस्या की वजह से पेमेंट पूरा नहीं हो सका. जैसे, नेटवर्क की गड़बड़ी, गेटवे टाइम आउट या इंटिग्रेशन की समस्या. इस वजह से, बैंक फ़ैसला नहीं ले सका. |
payment_ineligible |
गड़बड़ी | चुना गया पेमेंट का तरीका स्वीकार नहीं किया जाता. यह तब इस्तेमाल किया जाता है, जब उपयोगकर्ता को पेमेंट का कोई दूसरा तरीका आज़माना हो. |
rejected_for_fraud |
गड़बड़ी | धोखाधड़ी की आशंका की वजह से, ऑर्डर अस्वीकार कर दिया गया. यहां दिया गया उदाहरण देखें. |
गड़बड़ी के कोड के उदाहरण
इस सेक्शन में, खास गड़बड़ी कोड के लिए messages कलेक्शन के JSON उदाहरण दिए गए हैं.
out_of_stock
एक आइटम के लिए चेकआउट:
{
"type": "error",
"severity": "unrecoverable",
"code": "out_of_stock",
"content": "Unfortunately, the item 'Example Product 1' is out of stock."
}
एक से ज़्यादा आइटम के लिए चेकआउट:
path फ़ील्ड का इस्तेमाल करके, उस आइटम का इंडेक्स बताएं जो स्टॉक में नहीं है.
{
"type": "error",
"severity": "recoverable",
"code": "out_of_stock",
"path": "$.checkout.line_items[1]",
"content": "The item 'Example Product 2' is out of stock. Remove it from your cart to continue."
}
quantity_invalid_limit_exceeded
{
"type": "error",
"severity": "recoverable",
"code": "quantity_invalid_limit_exceeded",
"path": "$.checkout.line_items[0].quantity",
"content": "The requested quantity for 'Example Product 2' exceeds the maximum allowed limit of 5."
}
totals_changed
{
"type": "warning",
"code": "totals_changed",
"path": "$.totals[2]",
"content": "Shipping cost has changed."
}
missing_buyer_info
{
"type": "error",
"severity": "recoverable",
"code": "missing_buyer_info",
"path": "$.buyer.first_name",
"content": "Missing buyer first name."
}
address_undeliverable
ऑर्डर-लेवल की पाबंदी (जैसे, पिन कोड इस्तेमाल नहीं किया जा सकता):
{
"type": "error",
"severity": "recoverable",
"code": "address_undeliverable",
"content": "Delivery is not supported for the provided zipcode."
}
सामान के लेवल पर पाबंदी:
path फ़ील्ड का इस्तेमाल करके, यह बताएं कि कोई खास आइटम, चुनी गई जगह पर डिलीवर नहीं किया जा सकता. जैसे, किसी राज्य में प्रॉडक्ट की बिक्री पर पाबंदी.
{
"type": "error",
"severity": "recoverable",
"code": "address_undeliverable",
"path": "$.checkout.line_items[1]",
"content": "The item 'Example Product 2' cannot be delivered to the selected address."
}
address_unverifiable
बिलिंग पता:
{
"type": "error",
"severity": "recoverable",
"code": "address_unverifiable",
"path": "$.payment.instruments[0].billing_address",
"content": "Invalid billing address. Update the address before trying again."
}
आइटम भेजने का पता:
{
"type": "error",
"severity": "recoverable",
"code": "address_unverifiable",
"path": "$.fulfillment.methods[0].destinations[0]",
"content": "The fulfillment address couldn't be verified. Update the address and try again."
}
missing_billing_info
बिलिंग पते में मौजूद छूटे हुए फ़ील्ड की जानकारी देने के लिए, path फ़ील्ड का इस्तेमाल करें.
{
"type": "error",
"severity": "recoverable",
"code": "missing_billing_info",
"path": "$.payment.instruments[0].billing_address.street_address",
"content": "Missing billing street address."
}
identity_required
REST API में, इस गड़बड़ी को एचटीटीपी स्टेटस कोड 401 के साथ दिखाना चाहिए.
{
"type": "error",
"severity": "requires_buyer_review",
"code": "identity_required",
"content": "User identity is required to access order history."
}
insufficient_scope
REST API में, यह गड़बड़ी एचटीटीपी स्टेटस कोड 403 के साथ दिखनी चाहिए.
{
"type": "error",
"severity": "requires_buyer_review",
"code": "insufficient_scope",
"content": "This operation requires scopes: dev.ucp.shopping.order:read, dev.ucp.shopping.order:manage"
}
पेमेंट से जुड़ी गड़बड़ियां
payment_declined
{
"type": "error",
"severity": "recoverable",
"code": "payment_declined",
"path": "$.payment.instruments[0]",
"content": "Payment was declined by the issuer. Try a different payment method or contact your bank."
}
rejected_for_fraud
{
"type": "error",
"severity": "recoverable",
"code": "rejected_for_fraud",
"path": "$.payment.instruments[0]",
"content": "The order was rejected due to suspected fraud. Try a different payment method."
}