इस गाइड में, Google Wallet API के साथ कॉलबैक इस्तेमाल करने का तरीका बताया गया है. जब किसी अहम जानकारी को बनाया या मिटाया जाता है, तो Google आपकी पसंद के एचटीटीपीएस एंडपॉइंट पर कॉलबैक कर सकता है. यह कॉलबैक क्लास के हिसाब से होता है. इसमें इवेंट के बारे में डेटा, जैसे कि क्लास, ऑब्जेक्ट, और इवेंट टाइप शामिल होता है. इसका इस्तेमाल, उपयोगकर्ताओं के जोड़े और मिटाए जाने की संख्या के साथ सिंक रहने के लिए किया जा सकता है. उदाहरण के लिए, कॉलबैक को किसी Analytics ऐप्लिकेशन को इवेंट भेजने के लिए कॉन्फ़िगर किया जा सकता है, ताकि प्रमोशन वाले इवेंट के दौरान ग्राहक के जुड़ाव को ट्रैक किया जा सके.
ज़रूरी शर्तें
शुरू करने से पहले, यहां दी गई शर्तें देखें:
- ऐसा एचटीटीपीएस एंडपॉइंट तैयार करें जो पोस्ट अनुरोधों को मैनेज करता हो. यह एंडपॉइंट सार्वजनिक तौर पर उपलब्ध होना चाहिए.
-
हर क्लास के लिए, प्रोग्राम के हिसाब से कॉलबैक एंडपॉइंट को अपडेट करें. REST API में,
callbackOptions
क्लास के हिसाब से प्रॉपर्टी देखें. - सुझाव: हस्ताक्षर की पुष्टि करने के लिए, Tink लाइब्रेरी का इस्तेमाल करें.
कॉलबैक लागू करना
उपयोगकर्ता के किसी ऑब्जेक्ट पर हर बार जोड़ने या मिटाने के लिए, Google हर क्लास के यूआरएल पर जोड़ने या मिटाने की जानकारी के साथ व्यापारियों/कंपनियों को कॉलबैक करता है. मैसेज सही है या नहीं, इसकी पुष्टि करने के लिए व्यापारियों/कंपनियों को सबसे पहले सार्वजनिक कुंजियों का इस्तेमाल करना होगा. कॉलबैक से मैसेज की पुष्टि होने के बाद, डाउनस्ट्रीम कार्रवाइयों के लिए कॉलबैक का इस्तेमाल किया जा सकता है.
हस्ताक्षर की पुष्टि करना
हमारा सुझाव है कि एचटीटीपीएस एंडपॉइंट लागू करते समय, मैसेज के हस्ताक्षर की पुष्टि करने के लिए, Tink लाइब्रेरी का इस्तेमाल करें. Tink लाइब्रेरी
PaymentMethodTokenRecipient
की सुविधा देती है. यह एक ऐसी सुविधा है जो
हस्ताक्षर की पुष्टि अपने-आप करती है और पुष्टि होने के बाद, असल मैसेज दिखाता है.
इस उदाहरण में, PaymentMethodTokenRecipient
को लागू करने के लिए, Tink लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है:
import java.io.IOException; import javax.servlet.http.*; import com.google.common.io.CharStreams; import com.google.crypto.tink.apps.paymentmethodtoken.*; // Replace ISSUER_ID with your issuer id private static final String RECIPIENT_ID = "ISSUER_ID"; private static final String PUBLIC_KEY_URL = "https://pay.google.com/gp/m/issuer/keys"; private static final String SENDER_ID = "GooglePayPasses"; private static final String PROTOCOL = "ECv2SigningOnly"; private static final GooglePaymentsPublicKeysManager keysManager = new GooglePaymentsPublicKeysManager.Builder() .setKeysUrl(PUBLIC_KEY_URL) .build(); public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { try { // Extract signed message with signature from POST request body. String signedMessage = CharStreams.toString(request.getReader()); PaymentMethodTokenRecipient recipient = new PaymentMethodTokenRecipient.Builder() .protocolVersion(PROTOCOL) .fetchSenderVerifyingKeysWith(keysManager) .senderId(SENDER_ID) .recipientId(RECIPIENT_ID) .build(); String serializedJsonMessage = recipient.unseal(signedMessage); // Use serializedJsonMessage to extract the details } catch (Exception e) { // Handle the error } }
Expected message format
The message format is JSON that's serialized into a string with the following properties:
Identifier | Description |
---|---|
classId |
Fully qualified class ID. Uses the following format: <issuer_id.class_id> objectId
पूरी तरह क्वालिफ़ाइड ऑब्जेक्ट आईडी. इस फ़ॉर्मैट का इस्तेमाल करता है: <issuer_id.object_id> expTimeMillis
EPOCH के बाद से, समयसीमा खत्म होने का समय मिलीसेकंड में. समयसीमा खत्म होने के बाद,
मैसेज को अमान्य माना जाना चाहिए.
eventType
DELETE और SAVE के लिए, del या save हो सकता है.
nonce
डुप्लीकेट डिलीवरी को ट्रैक करने की अनुमति नहीं है.
Google सर्वर से मिलने वाले अनुरोध को मैनेज करनाआपके कॉलबैक एंडपॉइंट पर भेजे गए अनुरोध के हेडर में मौजूद मुख्य फ़ील्ड की सूची नीचे दी गई है:
अपने सर्वर को कॉन्फ़िगर करें, ताकि यह अनुरोध को अस्वीकार न करे. ऐसा करने के लिए, User-agent: Googlebot Disallow: फिर से कोशिश की गईकॉलबैक की कोशिश करें. Google, कुछ समय के लिए हुई गड़बड़ियों को ध्यान में रखते हुए दो बार कोशिश करता है. दो बार कोशिश करने के बाद, Google मैसेज को मिटा देता है और उसे फिर से भेजने की कोशिश नहीं करता. डुप्लीकेट डिलीवरी
कुछ मामलों में, डुप्लीकेट डिलीवरी भी हो सकती हैं. हमारा सुझाव है कि आप उन्हें डुप्लीकेट करने के लिए,
जब तक कुछ अलग से न बताया जाए, तब तक इस पेज की सामग्री को Creative Commons Attribution 4.0 License के तहत और कोड के नमूनों को Apache 2.0 License के तहत लाइसेंस मिला है. ज़्यादा जानकारी के लिए, Google Developers साइट नीतियां देखें. Oracle और/या इससे जुड़ी हुई कंपनियों का, Java एक रजिस्टर किया हुआ ट्रेडमार्क है. आखिरी बार 2024-03-26 (UTC) को अपडेट किया गया.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"वह जानकारी मौजूद नहीं है जो मुझे चाहिए"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"बहुत मुश्किल है / बहुत सारे चरण हैं"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"पुराना"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"अनुवाद से जुड़ी समस्या"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"सैंपल / कोड से जुड़ी समस्या"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"अन्य"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"समझने में आसान है"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"मेरी समस्या हल हो गई"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"अन्य"
}]
|