Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

रेकरिंग पेमेंट कैसे सेट करें

by
Difficulty:IntermediateLength:MediumLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

यह संभावना है कि, किसी बिंदु पर, आप SaaS या अन्य सर्विस के लिए रेकरिंग या सब्सक्रिप्शन पेमेंट लागू करना चाहेंगे। शुक्र है, PayPal उन टूल्स को प्रदान करता है जिन्हें हमें पूरी तरह से इंटीग्रेटेड सब्सक्रिप्शन पेमेंट सलूशन लागू करने की आवश्यकता है।


हम किस चीज़ का निर्माण करेंगे

नोट: मैं इस ट्यूटोरियल में Laravel का उपयोग कर रहा हूं, लेकिन आप इन कॉन्सेप्ट्स को अन्य भाषाओं और फ़्रेमवर्क्स में भी लागू कर सकते हैं।

हम सब्सक्रिप्शन पेमेंट स्वीकार करने और हमारी इंस्टेंट पेमेंट नोटिफिकेशन (IPN) लिस्टनेर को कॉन्फ़िगर करने के लिए PayPal सेट अप करेंगे। एक बार जब हम साइन-अप कॉम्पोनेन्ट पूरा कर लेंगे, तो हम PayPal के API के माध्यम से कैंसलेशन प्रोसेस देखेंगे। मैं सिंपल रजिस्ट्रेशन और लॉगिन के साथ एक बेयरबोन Laravel ऐप से शुरू कर रहा हूं, और हम उन कंपोनेंट्स में जोड़ देंगे जिन्हें हमें सब्सक्रिप्शन पेमेंट शुरू करने की आवश्यकता है क्योंकि हम ट्यूटोरियल के साथ साथ आगे बढ़ते हैं।


स्टेप 1: अपना सब्सक्रिप्शन बटन सेट अप करना

PayPal एक कस्टम फ़ील्ड प्रदान करता है जिसे हम यूजर की ID पास करने के लिए उपयोग कर सकते हैं।

शुरू करने से पहले, सुनिश्चित करें कि आपके पास PayPal बिज़नेस अकाउंट है। यह मुफ़्त है, लेकिन आपकी साइट पर सब्सक्रिप्शन पेमेंट लागू करने के लिए आपके पास एक बिज़नेस अकाउंट होना चाहिए।

PayPal कई प्रकार के बटन प्रदान करता है जिनका हम उपयोग कर सकते हैं, जिनमें शामिल हैं: Buy Now, Subscribe, और Automatic Billing। आज, हम सब्सक्राइब बटन देखेंगे। सब्सक्रिप्शन बटन आपको बिलिंग अमाउंट, साथ ही रेकरिंग पेमेंट पीरियड निर्धारित करने की अनुमति देते हैं। आप ट्रायल पीरियड भी सेट कर सकते हैं और PayPal को अपना सर्वर पिंग करते समय यूजर अकाउंट बना सकते हैं।

सबसे पहले, अपने PayPal अकाउंट में लॉगिन करें और Profie -> My Selling Preferences पर नेविगेट करें। फिर PayPal Buttons सेक्शन देखें और ड्रॉप डाउन सूची से Subscriptions को सेलेक्ट करें। शेष इंफोमशन भरना सुनिश्चित करें।

मैं रेकमेंड करता हूं कि "Have PayPal create user names and passwords for customers" बॉक्स को अनचेक ही छोड़ दें और "Use my secure merchant account ID" ऑप्शन को सेलेक्ट करें।

हम यूज़र्स को एक मुफ्त अकाउंट के लिए साइन अप करने और बाद में अपग्रेड करने की अनुमति देने जा रहे हैं।

अपना बटन बनाएं और जेनरेट कोड को कॉपी करें; आप इसे अपने एप्लीकेशन में इस्तेमाल करेंगे।

अतिरिक्त जानकारी को पास करना

चूंकि हम एकाउंट्स में सब्सक्रिप्शन को जोड़ रहे हैं, हमें यह जानना होगा कि पेमेंट कौन करता है। ऐसा करने का सबसे आसान तरीका है की PayPal ट्रांसक्शन के ईमेल एड्रेस से आपकी एप्लीकेशन में साइन इन के लिए उपयोग किये गए ईमेल अकाउंट से मैच करें। यह मूर्खतापूर्ण नहीं है, हालांकि, कई लोग विभिन्न ईमेल एड्रेस का उपयोग करते हैं। तो हमें अपने एप्लीकेशन से यूजर की ID को PayPal में पास करने की आवश्यकता है।

शुक्र है, PayPal एक कस्टम फ़ील्ड प्रदान करता है जिसे हम यूजर की ID पास करने के लिए उपयोग कर सकते हैं। इसकी 256 करैक्टर की लिमिट है। तो मैं एक JSON स्ट्रक्चर का उपयोग करने जा रहा हूं, जिससे हमें अतिरिक्त जानकारी पास करने की इजाजत मिलनी चाहिए।

एक्सेप्टेड HTML वेरिएबल की पूरी लिस्ट को जांचना सुनिश्चित करें।


स्टेप 2: अपनी एप्लीकेशन को पढ़ना

हमें सबसे पहले अपनी पेमेंट टेबल को सेट अप करने की आवश्यकता है, जहां हम अपने लेनदेन को स्टोर करेंगे। आइए इसे निम्नलिखित कॉलम के साथ बनाएं:

  • id: एक ऑटो-इन्क्रीमेंट इन्टिजर और हमारी प्राइमरी की।
  • txn_id: हमारी ट्रांसक्शन id जो PayPal हमें देगा। इसे एक varchar के रूप में सेट करें।
  • user_id: हम यूजर टेबल में हमारे रिलेशनशिप स्थापित करने के लिए इसका उपयोग करेंगे, एक इन्टिजर इसे करेगा।
  • paypal_id: PayPal प्रोफाइल ID जिसे हमें बाद में कांसलेशन्स को संभालने के लिए आवश्यकता होगी। इसे एक varchar के रूप में सेट करें।
  • created_at: ट्रांसक्शन पूरा होने और सब्सक्रिप्शन शुरू करने के लिए हम इसका उपयोग करेंगे।

साथ ही, अपनी user टेबल में subscription कॉलम जोड़ें। मैं इसे कई स्तरों की अनुमति देने के लिए एक इन्टिजर के रूप में अतिरिक्त फीचर को अनलॉक करने के लिए सेट करने जा रहा हूं: एक, दो, और तीन। मैंने आगे बढ़कर मॉडल बनाया है जो हमें पेमेंट टेबल से इंटरैक्ट करने की अनुमति देगा।


स्टेप 3: आपका लिस्टनेर लिखना

PayPal प्रोसेस होने पर हमें सूचित करने के लिए एक आसान समाधान प्रदान करता है; वे इसे इंस्टेंट पेमेंट नोटिफिकेशन (IPN) कहते हैं। IPN का लाभ उठाने के लिए, हमें अपने एप्लीकेशन के लिए एक IPN लिस्टनेर बनाने की जरूरत है। लिस्टनेर डेटा को वैलिडेट करता है, इसे हमारी पेमेंट टेबल में डालता है, और यूजर के सब्सक्रिप्शन लेवल को सेट करता है।

सौभाग्य से हमें इस आसान क्लास के लिए wheel thanks को फिर से शुरू करने की ज़रूरत नहीं है। डेटा को त्वरित रूप से वेरीफाई करने के लिए हम IpnListener क्लास का उपयोग करेंगे, और फिर हम इसे अपने डेटाबेस में डालने के लिए प्रोसेस कर सकते हैं। Laravel के साथ, हम क्लास को हमारे लाइब्रेरीज फ़ोल्डर में रख सकते हैं, जिससे यह हमारे लिए स्वत: लोड हो जाता है।

नया कंट्रोलर या रूट बनाएं और निम्न कोड जोड़ें:

मैंने अपनी फाइल ipn.php को कॉल किया, और मैं इसे /ipn पर मैप कर दूंगा। यह न भूलें कि PayPal इस URL पर पोस्ट करेगा; इसलिए यदि आप HTTP/REST एक्शन्स का उपयोग कर रहे हैं, तो इसे तदनुसार सेट करें। यहां से हम अपने डेटा को प्रोसेस कर सकते हैं:

इस कोड में, हम पहले JSON को हमारे कस्टम फ़ील्ड में पास कर देते हैं, जिससे हमें यूजर ID तक आसानी से पहुंच मिलती है। फिर हमने ट्रांसक्शन अमाउंट के आधार पर सब्सक्रिप्शन लेवल निर्धारित किया और इसे डेटाबेस में स्टोर किया। हम Laravel की Log क्लास का उपयोग करके किसी भी एरर को लॉग करते हैं। यूजर को रिसीप्ट भेजना भी अच्छा हो सकता है, लेकिन मैं इसे आप पर छोड़ दूंगा।


स्टेप 4: IPN को इनेबल करना

इसके बाद, हमें IPN इनेबल करने और हमारे लिस्टनेर को पिंग करने के लिए PayPal सेट अप करने की आवश्यकता है। चूंकि PayPal का एडमिन पैनल नेविगेट करने में मुश्किल हो सकती है, इसलिए मैंने आपको गाइड करने में सहायता के लिए निम्नलिखित स्क्रीनशॉट शामिल किए हैं। Profile -> Selling Preferences पर जाएँ:

फिर इंस्टेंट पेमेंट नोटिफिकेशन्स की तलाश करें:

इसके बाद, Choose IPN Settings पर क्लिक करें:

और फिर अपने लिस्टनेर के लिए URL को एंटर करें:


स्टेप 5: अपना API यूजर नाम, पासवर्ड और हस्ताक्षर प्राप्त करना

जबकि हम डैशबोर्ड में हैं, हम अपनी कैंसलेशन प्रोसेस को हल करने से पहले हमारे API क्रेडेंशियल प्राप्त करने के लायक हैं। Profile -> Selling Preferences पर जाएँ:

API Access की तलाश करें:

option 2 को सेलेक्ट करें:

एक API हस्ताक्षर का अनुरोध करें:

और अपने क्रेडेंशियल पर ध्यान दें:


स्टेप 6: कैंसलेशन को संभालना

सब्सक्रिप्शन पेमेंट इम्प्लीमेंट करने के लिए आपके पास एक बिज़नेस अकाउंट होना चाहिए।

नोट: कैंसलेशन को संभालने के लिए आपको एक SSL सर्टिफिकेट की आवश्यकता होगी, या PayPal को एक एरर थ्रो करने की।

सर्वोत्तम यूजर अनुभव प्रदान करने के लिए, संभवतः आप अपने एप्लिकेशन या सर्विस के अंदर कैंसलेशन को संभालना चाहते हैं। PayPal कुछ API प्रदान करता है जो हमें ऐसा करने की अनुमति देता है: NVP या SOAP। मैं NVP के साथ जाने की सिफारिश करता हूं।

PayPal के डॉक्यूमेंटेशन चीजों को अधिक जटिल बनाते हैं, लेकिन NVP (Name-Value-Pair) अनिवार्य रूप से सिर्फ एक URL एन्कोडेड स्ट्रिंग है जिसे हम cURL कर सकते हैं।

जिस मेथड में हम रुचि रखते हैं वह है ManageRecurringPaymentsProfileStatus। हम निम्नलिखित तीन एक्शन्स में से किसी एक को चुनकर सब्सक्रिप्शन की स्टेट को बदल सकते हैं:

  • Cancel: केवल एक्टिव या सस्पेंडेड सदस्यता कैंसिल की जा सकती है। इस एक्शन का चयन करने से यूजर को बाद में पुनः एक्टिव करने से रोकता है।
  • Suspend: केवल एक्टिव सब्सक्रिप्शन निलंबित की जा सकती है। यह एक्शन यूज़र्स को बाद में अपनी सब्सक्रिप्शन को पुनः एक्टिव करने की अनुमति देती है।
  • Reactivate: केवल सस्पेंडेड सुब्स्क्रिप्शन्स को पुनः एक्टिवेट किया जा सकता है, सब्सक्रिप्शन को पुन: स्थापित किया जा सकता है।

हम कैंसिल करने के एक्शन का उपयोग करने जा रहे हैं, क्योंकि हमारे सब्सक्राइब बटन पूरी तरह से नई सब्सक्रिप्शन बनाते हैं, जिसे यूजर बाद में फिर से एक्टिव करना चाहता है। तो हमारी रिक्वेस्ट इस तरह कुछ दिखती है:

अब हम सब्सक्रिप्शन को आसानी से रद्द कर सकते हैं, लेकिन किसी कारण से PayPal ने IPN रिक्वेस्ट को नहीं भेजा है। हालांकि यह कोई समस्या नहीं है, क्योंकि हम एक expires कॉलम शामिल करने के लिए हमारे ऐप को सेटअप करते हैं। तो हम यह निर्धारित करने के लिए उस फ़ील्ड को देख सकते हैं कि यूजर ने सदस्यता ली है या नहीं।


स्टेप 7: सैंडबॉक्स में प्ले करना

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

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

अब PayPal सैंडबॉक्स पर जाएं, लॉगिन करें, बाईं ओर Test Tools पर क्लिक करें और IPN सिम्युलेटर खोलें।

अपने लिस्टनेर के URL को इनपुट करें और ड्रॉप डाउन से Express Checkout को सेलेक्ट करें। आप अधिकांश डिफ़ॉल्ट डिटेल्स का उपयोग कर सकते हैं, लेकिन अपने JSON को पेज के निचले हिस्से में कस्टम फ़ील्ड में रखना न भूलें।


स्टेप 8: सदस्यता के लिए जाँच करना

इसलिए हमने अपनी सब्सक्रिप्शन और इनेबल्ड यूज़र्स को सर्विस कैंसिल करने के लिए सेट अप किया है, अब हम इसकी जांच कैसे करते हैं? Laravel इसे आसान बनाता है, और इसका मेथड कई भाषाओं और फ़्रेमवर्क्स में अनुवाद करता है। मैं अपने User मॉडल में एक मेथड जोड़ने जा रहा हूं जो हमें Laravel की Auth क्लास का उपयोग करके सब्सक्रिप्शन तक पहुंच प्रदान करता है:

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


निष्कर्ष के तौर पर

उम्मीद है कि इस ट्यूटोरियल ने आपको यह विचार दिया है कि आपके ऍप्लिकेशन्स में रेकरिंग या सब्सक्रिप्शन पेमेंट सेट करना कितना आसान है। PayPal किसी भी तरह का पेमेंट प्रोसेसर नहीं है, लेकिन यह सबसे मान्यता प्राप्त और व्यापक रूप से उपयोग किया जाता है।

यहां से, आप पूरी तरह से इंटीग्रेटेड समाधान बनाने के लिए रिसीप्ट, पेमेंट रिमाइंडर, और कैंसलेशन नोटिफिकेशन जोड़ सकते हैं।

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.