5

पर Django प्रतिक्रियाओं का परीक्षण करना मैं परीक्षण करने का एक प्रभावी तरीका जानने का प्रयास कर रहा हूं कि मेरा सर्वर स्ट्रिप से वेबहुक कैसे प्रबंधित करता है। मैं एक ग्राहक के क्रेडिट कार्ड है, जो धारी की वेबसाइट पर बताया गया है करने के लिए कई सदस्यता जोड़ने के लिए एक प्रणाली की स्थापना कर रहा हूँ:स्ट्रिप वेबहूक

https://support.stripe.com/questions/can-customers-have-multiple-subscriptions

मुद्दा मैं पता लगाना है कि कैसे प्रभावी रूप से परीक्षण करने के लिए है कि अपने सर्वर है हो रही है स्क्रिप्ट को सही ढंग से निष्पादित करना (यानी, चालान में सही सदस्यता जोड़ना, मेरे डेटाबेस में ईवेंट रिकॉर्ड करना आदि)। मैं अभी परीक्षण को स्वचालित करने के बारे में बहुत चिंतित नहीं हूं, मैं बस स्क्रिप्ट पर किसी भी अच्छे परीक्षण को प्रभावी ढंग से चलाने के लिए संघर्ष कर रहा हूं। क्या किसी ने पहले डीजेगो के साथ ऐसा किया है? इन परीक्षणों को चलाने के लिए आपने किन संसाधनों और औजारों का उपयोग किया था?

धन्यवाद!

उत्तर

1

मैंने परीक्षण चलाने के लिए किसी भी उपकरण का उपयोग नहीं किया। प्रभाव पट्टी में एक पूर्ण एपीआई संदर्भ है जो आपके द्वारा भेजी गई जानकारी प्रदर्शित करता है और वे त्रुटि भी प्रदर्शित करते हैं। स्ट्रिप सेटअप, सस्ती, और दस्तावेज़ीकरण में पूर्ण विवरण के लिए बहुत आसान है।

मैंने क्या किया है?

  1. सबसे पहले मैं एक पट्टी खाता बना देता हूं। उस खाते में, वे आप दे देंगे:

    • TEST_SECRET_KEY: (परीक्षण के लिए)
    • TEST_PUBS_KEY पट्टी में भुगतान और जानकारी भेजने के लिए उपयोग: अपनी वेबसाइट जब (परीक्षण के लिए)
    • LIVE_SECRET_KEY धारी साथ संवाद स्थापित करने की पहचान करता है: (लाइव के लिए) पट्टी में भुगतान और जानकारी
    • LIVE_PUBS_KEY भेजने के लिए उपयोग करें: जब धारी (लाइव के लिए)
    • API_VERSION के साथ संवाद स्थापित अपनी वेबसाइट की पहचान करता है: "2012-11-07" // इस परीक्षण के लिए संस्करण है केवल
  2. जब आप लॉगिन करते हैं तो आप शीर्ष पर दस्तावेज़ीकरण देखेंगे। प्रलेखन पर क्लिक करें और वे आपको एक फॉर्म कैसे बनाएं, सब्सक्रिप्शन कैसे बनाएं, त्रुटियों को कैसे संभालें और बहुत कुछ कैसे करें, इस पर चरण-दर-चरण ट्यूटोरियल देंगे।

  3. यह जांचने के लिए कि आपकी स्क्रिप्ट निष्पादित हो रही है और पट्टी से कनेक्ट हो रही है या नहीं। पूर्ण एपीआई संदर्भ पर क्लिक करें, फिर पाइथन चुनें। उस पृष्ठ में आप जो जानकारी भेज चुके हैं और आपको मिली त्रुटि दिखाई देगी।

क्या मैं सच की तरह है, अगर धारी एक त्रुटि का पता लगाने प्रणाली बाहर है कि इंगित करें और आप एक समाधान दे देंगे। समाधान बाईं तरफ है और जानकारी भेजना सही तरफ है।

स्ट्रिप दो दुनिया में बांटा गया है: परीक्षण मोड और लाइव। परीक्षण मोड में, आप नए ग्राहक को बनाने, नए चालान जोड़ने, अपनी सदस्यता सेट अप करने और कई अन्य करने में सक्षम हो सकते हैं। टेस्ट मोड में आप जो भी करते हैं, वह वही होता है जब आपका स्ट्रिप लाइव रहता है।

+0

यदि आपके कोई अन्य प्रश्न हैं, तो बेझिझक पूछें। मैं वर्तमान में हमारी साइट में पट्टी और dwolla स्थापित कर रहा हूँ। – catherine

+0

हाय कैथरीन, जानकारी के लिए धन्यवाद। मेरे पास यह मुद्दा है कि वेबहूक के लिए, मेरे सर्वर से प्रतिक्रिया देखने के लिए, या परीक्षण मोड में ग्राहकों, चालान आदि के साथ वास्तविक घटनाओं का परीक्षण करने का एक अच्छा तरीका प्रतीत नहीं होता है। आप खाता डैशबोर्ड से केवल "टेस्ट वेबहूक भेजें" पर क्लिक कर सकते हैं, जो 'आईडी': 'evt_00000000000000' ईवेंट भेजता है, जो आपको वास्तव में किसी भी खाते को अपडेट करने या स्ट्रिप पर कोई वास्तविक कार्य करने की अनुमति नहीं देता है। कोई विचार? – bgmaster

+0

आप अपने ऐप में या स्ट्रिप में नए ग्राहक, उनके चालान, अपनी सदस्यता जोड़ सकते हैं। क्या आपने वहां दस्तावेज़ पढ़ा है। – catherine

1

मुझे सचमुच प्यार है कि पट्टी वेब हुक के लिए लॉग प्रदान करती है, हालांकि, उनसे त्रुटि प्रतिक्रियाओं को देखना मुश्किल है, इसलिए मैंने Requests लाइब्रेरी का उपयोग करके एक स्क्रिप्ट सेट की है। सबसे पहले, मैं स्ट्रिप डैशबोर्ड पर गया और वे भेजे गए अनुरोधों में से एक की प्रतिलिपि बनाई।

घटनाक्रम & Webhooks -> अनुरोधों में से एक पर क्लिक करें -> पूरे अनुरोध

import requests 

data = """ PASTE COPIED JSON REQUEST HERE """ 

# insert the appropriate url/endpoint below 
res = requests.post("http://localhost:8000/stripe_hook/", data=data).text 
output = open("hook_result.html", "w") 
output.write(res) 
output.close() 

अब मैं hook_result.html खोलने के लिए और किसी भी Django त्रुटियों कि ऊपर आया हो सकता है देख सकते हैं कॉपी (दिए गए डीबग = सच django में)।

+0

संकेथ सोना होगा, मैं अनुरोधों से अपरिचित हूं लाइब्रेरी, लेकिन ऐसा लगता है कि यह मेरी ज़रूरत के साथ मेरी मदद कर सकता है। मुझे कुछ जांच करने दो और मैं आपसे वापस आऊंगा। – bgmaster

+0

अनुरोध वास्तव में बिल्टिन [urllib2] (http://docs.python.org/2/library/urllib2.html) का एक अच्छा संस्करण है, यह http अनुरोधों के साथ काम करना बहुत आसान बनाता है। –

0

परीक्षण पट्टी webhooks एक दर्द है। मैं Django का उपयोग नहीं करता, तो मेरा जवाब अधिक सामान्य होगा।

मेरा php webhook हैंडलर वेबहूक डेटा को पार करता है और तदनुसार हैंडलर फ़ंक्शंस भेजता है। मेरे हैंडलर क्लास में, मैंने क्लास प्रॉपर्टीज को सभी आईडी के लिए वैध डेटा के साथ सेट किया है, जो टेस्ट वेबहक्स मैंगल्स हैं। तब मेरे पास मेरे प्रत्येक हैंडलर फ़ंक्शंस में एक शर्त है जो लाइवमोड के लिए परीक्षण करती है। यदि झूठी है, तो मैं मैग्लेड आईडी को कानूनी परीक्षण आईडी के साथ प्रतिस्थापित करता हूं।

मेरे पास $ fakeLiveMode नामक एक और वर्ग संपत्ति भी है, जिसे मैं परीक्षण कर रहा हूं जब मैं परीक्षण कर रहा हूं। यह मुझे लाइव मोड में प्रक्रिया के रूप में संसाधित करने के लिए मजबूर करने की अनुमति देता है।

तो, उदाहरण के लिए, ग्राहक.subscription.updated ईवेंट का परीक्षण करते समय, योजना आईडी और ग्राहक आईडी को बॉट किया जाता है। ताकि हैंडलर में मैं यह कर जाएगा:

if ($event->livemode === true || $this->fakeLivemode) 
{ 
    if ($this->fakeLivemode) 
    { 
     // override botched data returned by test webhook 
     $event->data->object->plan->id = $this->testPlanId; 
     $event->data->object->customer = $this->testCustomerId; 
    } 

    // process webhook 
} 

कि मदद करता है?

1

django-stripe-payments में मेरे पास test suite है कि व्यापक रूप से व्यापक होने के कारण वहां पहुंचने की शुरुआत हुई है। मैं जो करता हूं वह सिर्फ एक वास्तविक वेबहूक के डेटा की प्रतिलिपि बनाता है, इसे संवेदनशील डेटा के लिए साफ़ करता है और इसे परीक्षण में डेटा के रूप में जोड़ता है।

+0

+1 यह ठीक है कि मैंने इसे रेल में कैसे किया है। –

संबंधित मुद्दे