इस गाइड में, Google Wallet API के साथ कॉलबैक इस्तेमाल करने का तरीका बताया गया है. जब पास बनाया या मिटाया जाता है, तो Google एचटीटीपीएस पर कॉलबैक कर सकता है आपकी पसंद का एंडपॉइंट होता है. यह कॉलबैक क्लास के हिसाब से है और इसमें डेटा शामिल है इवेंट के बारे में जानकारी, जैसे कि क्लास, ऑब्जेक्ट, और इवेंट टाइप. इसका इस्तेमाल इन कामों के लिए किया जा सकता है उपयोगकर्ता जोड़े जाने और मिटाने की संख्या को ट्रैक कर सकते हैं. इसके लिए उदाहरण के लिए, कॉलबैक को किसी Analytics को इवेंट भेजने के लिए कॉन्फ़िगर किया जा सकता है का इस्तेमाल करें.
ज़रूरी शर्तें
शुरू करने से पहले, यहां दी गई शर्तें देखें:
- एक ऐसा एचटीटीपीएस एंडपॉइंट खड़ा करें जो पोस्ट अनुरोधों को हैंडल करता हो. इस एंडपॉइंट को सार्वजनिक तौर पर उपलब्ध हो.
-
हर क्लास के लिए, कॉलबैक एंडपॉइंट को प्रोग्राम के हिसाब से अपडेट करें. ज़्यादा जानकारी के लिए,
callbackOptions
REST API में क्लास के हिसाब से प्रॉपर्टी. - सुझाव: हस्ताक्षर की पुष्टि करने के लिए Tink लाइब्रेरी का इस्तेमाल करें.
कॉलबैक लागू करना
किसी साइट पर उपयोगकर्ता के हर जोड़ने या मिटाने के लिए एक ऑब्जेक्ट का इस्तेमाल किया है, तो Google, हर क्लास के हिसाब से यूआरएल. व्यापारियों या कंपनियों को सबसे पहले सार्वजनिक पासकोड का इस्तेमाल करके, कारोबार की प्रामाणिकता की पुष्टि करनी होगी तो आपको वह मैसेज दिखाई दे रहा है. कॉलबैक से मैसेज की पुष्टि होने के बाद, कॉलबैक का इस्तेमाल किया जा सकता है डाउनस्ट्रीम कार्रवाइयों के लिए.
हस्ताक्षर की पुष्टि करें
हमारा सुझाव है कि मैसेज के हस्ताक्षर की पुष्टि करने के लिए, Tink लाइब्रेरी का इस्तेमाल करें
लागू करते हैं. कॉन्टेंट बनाने
टिंक लाइब्रेरी
PaymentMethodTokenRecipient
उपलब्ध कराती है. यह एक ऐसी सुविधा है जो
अपने-आप हस्ताक्षर की पुष्टि करता है और
पुष्टि नहीं हुई है.
नीचे दिए गए उदाहरण में, Tink लाइब्रेरी को इस्तेमाल करने का तरीका बताया गया है
PaymentMethodTokenRecipient
:
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 } }
मैसेज का फ़ॉर्मैट सही होना चाहिए
मैसेज का फ़ॉर्मैट JSON है, जिसे स्ट्रिंग में इस तरह से क्रम में लगाया जाता है: प्रॉपर्टी:
पहचानकर्ता | ब्यौरा |
---|---|
classId |
पूरी तरह क्वालिफ़ाइड क्लास आईडी. इस फ़ॉर्मैट का इस्तेमाल करता है: <issuer_id.class_id> |
objectId |
पूरी तरह क्वालिफ़ाइड ऑब्जेक्ट आईडी. इस फ़ॉर्मैट का इस्तेमाल करता है: <issuer_id.object_id> |
expTimeMillis |
EPOCH के बाद से मिलीसेकंड में समयसीमा. समयसीमा खत्म होने के बाद, यह ज़रूरी है कि मैसेज अमान्य हो. |
eventType |
इसके लिए, del या save हो सकता है
DELETE और SAVE .
|
nonce |
डुप्लीकेट डिलीवरी ट्रैक करने के लिए नॉन्स. |
Google सर्वर से अनुरोध मैनेज करना
अनुरोध के हेडर में मौजूद मुख्य फ़ील्ड की सूची नीचे दी गई है आपके कॉलबैक एंडपॉइंट पर भेजा गया:
- उपयोगकर्ता एजेंट:
Googlebot
- कॉन्टेंट किस तरह का है:
application/json
अपने सर्वर को इस तरह से कॉन्फ़िगर करें कि वह अनुरोध को अस्वीकार न करे. ऐसा करने के लिए,
robots.txt
में इसे सेट करें:
User-agent: Googlebot Disallow:
इतनी बार कोशिश की जा रही है
कॉलबैक की पूरी कोशिश की जाती है. Google, फिर से कोशिश करने की सामान्य रणनीतियों का इस्तेमाल करेगा अगर कॉलबैक एंडपॉइंट काम नहीं कर रहा है या और यह सुविधा बंद हो जाएगी.
डुप्लीकेट कॉन्टेंट की डिलीवरी
कुछ मामलों में, डुप्लीकेट डिलीवरी हो सकती हैं. हमारी सलाह है कि आप
उन्हें डुप्लीकेट करने के लिए nonce
.