अपने सर्वर पर स्टेबलकॉइन भुगतान की पुष्टि कैसे करें
स्टेबलकॉइन भुगतान की पुष्टि के लिए अपने सर्वर को Cosmos Pay के साइन किए गए वेबहुक पर कार्रवाई करने दें, उस पेज पर नहीं जो आपका ग्राहक देखता है। जब नेटवर्क किसी भुगतान की पुष्टि करता है, तो Cosmos Pay आपके एंडपॉइंट पर PAYMENT_INTENT_SUCCEEDED भेजता है, जो उस एंडपॉइंट के सीक्रेट से साइन किया गया होता है। सिग्नेचर जाँचें, 2xx स्टेटस से जवाब दें और हर इवेंट पर ऑर्डर एक ही बार डिलीवर करें।

ब्राउज़र नहीं, आपका सर्वर क्यों
“भुगतान हो गया” दिखाने वाला चेकआउट सिर्फ़ वही है जो आपके ग्राहक का ब्राउज़र दिखाता है। आपकी साइट पर लौटने से पहले टैब बंद हो सकता है, और कोई भी आपका सफलता पेज खुद खोल सकता है। भुगतान को पक्का नेटवर्क की पुष्टि ही बनाती है।
Cosmos Pay आपके लिए नेटवर्क पर नज़र रखता है और भुगतान की पुष्टि होने पर आपके सर्वर को बताता है। ऑर्डर को भुगतान हुआ मार्क करने और उसे डिलीवर करने की सही जगह आपका सर्वर है।
Cosmos Pay क्या भेजता है
- आपके रजिस्टर किए गए एंडपॉइंट पर एक HTTPS POST, एक JSON इवेंट के साथ: id (यह evt_ से शुरू होती है), type, createdAt और data। किसी भुगतान के लिए data वह भुगतान होता है, उसके स्टेटस, राशि, एसेट, नेटवर्क और ट्रांज़ैक्शन के साथ।
- X-Cosmos-Signature हेडर: t=<यूनिक्स समय>,v1=<सिग्नेचर>। सिग्नेचर t, एक डॉट और रॉ बॉडी का HMAC-SHA256 है, जिसकी कुंजी एंडपॉइंट का सीक्रेट है, हेक्साडेसिमल में।
- आपके चुने हुए इवेंट टाइप, जैसे PAYMENT_INTENT_SUCCEEDED, PAYMENT_INTENT_FAILED या ZK_PAYMENT_SUCCEEDED। इन्हें ठीक वैसे ही मिलाएँ जैसे लिखे हैं, अंडरस्कोर वाले कैपिटल अक्षरों में।
- X-Cosmos-Event, X-Cosmos-Event-Id और X-Cosmos-Delivery हेडर, जो इवेंट और डिलीवरी का नाम बताते हैं।
वेबहुक सेट करें, चरण दर चरण
एक एंडपॉइंट जोड़ें
डैशबोर्ड में “वेबहुक” खोलें और अपने सर्वर के किसी रूट का HTTPS पता जोड़ें। पाने के लिए इवेंट चुनें; PAYMENT_INTENT_SUCCEEDED पहले से चुना होता है। पता पब्लिक होना चाहिए: निजी और लोकल पते अस्वीकार कर दिए जाते हैं।
सीक्रेट सहेजें
डैशबोर्ड एंडपॉइंट का सीक्रेट (यह whsec_ से शुरू होता है) सिर्फ़ एक बार दिखाता है। इसे अपने सर्वर के एनवायरनमेंट में रखें, किसी वेब पेज में कभी नहीं।
हर रिक्वेस्ट जाँचें
किसी भी JSON पार्सर से पहले रॉ बॉडी पढ़ें और उसी के सामने X-Cosmos-Signature जाँचें। TypeScript SDK में Webhooks.constructEvent सिग्नेचर जाँचता है, डिफ़ॉल्ट रूप से पाँच मिनट से पुराना सिग्नेचर अस्वीकार करता है और इवेंट लौटाता है।
पहले जल्दी जवाब, फिर काम
सिग्नेचर सही निकलते ही 2xx स्टेटस से जवाब दें, और धीमा काम, जैसे ईमेल या स्टॉक अपडेट, उसके बाद करें।
हर इवेंट को एक ही बार सँभालें
आप जो भी इवेंट सँभालते हैं, उसकी ID सहेजें और पहले देखे गए इवेंट को छोड़ दें: रीट्राई या दोबारा डिलीवरी वही इवेंट फिर से भेजती है।
टेस्ट भेजें
पिंग इवेंट पाने के लिए एंडपॉइंट पर “टेस्ट भेजें” इस्तेमाल करें, फिर सैंडबॉक्स में एक टेस्ट भुगतान करें और एंडपॉइंट की सूची में उसकी डिलीवरी देखें।
जब आपका सर्वर जवाब नहीं देता
सिर्फ़ 2xx जवाब को डिलीवर माना जाता है, और रीडायरेक्ट फ़ॉलो नहीं किए जाते। Cosmos Pay किसी विफल डिलीवरी को बढ़ते अंतराल के साथ तीन बार तक दोबारा भेजता है, फिर बाद के राउंड में फिर से, और हर कोशिश में इवेंट की ID वही रहती है।
डैशबोर्ड में हर एंडपॉइंट अपनी डिलीवरी की सूची दिखाता है, विफल डिलीवरी के लिए एक फ़िल्टर के साथ, और आप उनमें से किसी को भी दोबारा भेज सकते हैं। Cosmos Pay किसी डिलीवरी की बॉडी 30 दिन तक रखता है, इसलिए इसी समय के भीतर दोबारा डिलीवर करें।
या भुगतान खुद जाँचें
आप किसी एक भुगतान के बारे में भी पूछ सकते हैं: उसका स्टेटस पढ़ने के लिए उसे उसकी ID से फ़ेच करें, या उसका ट्रांज़ैक्शन हैश (Solana पर ट्रांज़ैक्शन सिग्नेचर) POST /v1/payment-intents/:id/validate पर भेजें। इसे फ़ॉलबैक के रूप में इस्तेमाल करें, जैसे जब आपका ग्राहक वेबहुक पहुँचने से पहले लौट आए; मुख्य संकेत वेबहुक ही रहता है।
डैशबोर्ड payment_intent.succeeded दिखाता है। इवेंट किस नाम से आता है?
इवेंट का टाइप PAYMENT_INTENT_SUCCEEDED है, अंडरस्कोर वाले कैपिटल अक्षरों में। डैशबोर्ड उसे सिर्फ़ छोटे रूप में दिखाता है।
सीक्रेट रोटेट करने पर क्या होता है?
नया सीक्रेट तुरंत काम करने लगता है और पुराना तुरंत बंद हो जाता है, इसलिए रोटेट करने के ठीक बाद अपना सर्वर अपडेट करें।
अगर मेरा सर्वर बंद था तो?
Cosmos Pay विफल डिलीवरी को दोबारा भेजता है, और आप 30 दिन तक डैशबोर्ड से किसी भी डिलीवरी को फिर से भेज सकते हैं।
क्या मेरे कई एंडपॉइंट हो सकते हैं?
हाँ। हर एंडपॉइंट का अपना पता, अपने इवेंट और अपना सीक्रेट होता है, और हर इवेंट उन सभी एंडपॉइंट पर जाता है जिन्होंने उसे सब्सक्राइब किया है।