खोज…


पैरामीटर

पैरामीटर विवरण
billingAgreementAttributes बिलिंग अनुबंध बनाने के लिए कॉन्फ़िगरेशन ऑब्जेक्ट
billingPlan क्वेरी स्ट्रिंग से बिलिंग प्लान आईडी
billingPlanAttribs बिलिंग योजना बनाने के लिए कॉन्फ़िगरेशन ऑब्जेक्ट
billingPlanUpdateAttributes बिलिंग प्लान को सक्रिय स्थिति में बदलने के लिए कॉन्फ़िगरेशन ऑब्जेक्ट
ग्राहक ID आपकी एप्लिकेशन क्लाइंट आईडी (OAuth कुंजियाँ)
एचटीटीपी हमारे सरल सर्वर को सेट करने के लिए http पैकेज का संदर्भ
isoDate सदस्यता प्रारंभ करने की तारीख के लिए आईएसओ तिथि
लिंक HATEOAS लिंक ऑब्जेक्ट को PayPal पर पुनर्निर्देशित URL निकालने के लिए
पैरामीटर क्वेरी स्ट्रिंग पैरामीटर
paypal पेपल SDK का संदर्भ
गुप्त आपका आवेदन गुप्त (OAuth कुंजियाँ)
टोकन बिलिंग समझौते को निष्पादित करने के लिए पेपल रिडायरेक्ट के बाद प्रदान किए गए बिलिंग समझौते की मंजूरी टोकन

टिप्पणियों

ये उदाहरण पेपाल का उपयोग करके सदस्यता / आवर्ती भुगतान प्रणाली बनाने की प्रक्रिया से गुजरते हैं।

सदस्यता बनाने की प्रक्रिया निम्नलिखित है:

  1. बिलिंग योजना बनाएं। यह एक पुन: प्रयोज्य मॉडल है जो सदस्यता के विवरण को रेखांकित करता है।
  2. बिलिंग योजना को सक्रिय करें।
  3. जब आप किसी उपयोगकर्ता के लिए सदस्यता बनाना चाहते हैं, तो आप बिलिंग योजना की आईडी का उपयोग करके बिलिंग अनुबंध बनाते हैं जिसे उन्हें सब्सक्राइब किया जाना चाहिए।
  4. एक बार बनाने के बाद, आप सदस्यता की पुष्टि करने के लिए उपयोगकर्ता को PayPal पर पुनर्निर्देशित करते हैं। पुष्टि होने के बाद, उपयोगकर्ता को व्यापारी की वेबसाइट पर वापस भेज दिया जाता है।
  5. अंत में, आप सदस्यता शुरू करने के लिए बिलिंग समझौते पर अमल करते हैं।

चरण 2: बिलिंग समझौते (नोड नमूना) का उपयोग करके उपयोगकर्ता के लिए एक सदस्यता बनाना

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

जब आप किसी उपयोगकर्ता के लिए सदस्यता बनाने के लिए बिलिंग अनुबंध स्थापित कर रहे हैं, तो आप 3 चरणों का पालन करेंगे, जो एक पेपल भुगतान की प्रक्रिया की याद दिला सकता है:

  1. आप एक बिलिंग अनुबंध बनाते हैं, जो आईडी के माध्यम से अंतर्निहित बिलिंग योजना का संदर्भ देता है।
  2. एक बार बनाने के बाद, आप सदस्यता की पुष्टि करने के लिए उपयोगकर्ता को PayPal (यदि PayPal के माध्यम से भुगतान कर रहे हैं) पर पुनर्निर्देशित करते हैं। एक बार पुष्टि हो जाने के बाद, पेपल अंतर्निहित बिलिंग योजना में दिए गए पुनर्निर्देशन का उपयोग करके उपयोगकर्ता को आपकी साइट पर वापस भेज देता है।
  3. फिर आप पेपल रिडायरेक्ट के माध्यम से वापस दिए गए टोकन का उपयोग करके बिलिंग समझौते को निष्पादित करते हैं।

यह उदाहरण बिलिंग अनुबंध प्रक्रिया को प्रदर्शित करने के लिए एक्सप्रेस आधारित HTTP सर्वर स्थापित कर रहा है।

उदाहरण शुरू करने के लिए, हमें पहले अपना कॉन्फ़िगरेशन सेट करना होगा। हम चार आवश्यकताओं को जोड़ते हैं, PayPal SDK, JSON एन्कोडेड बॉडीज़ को संभालने के लिए body-parser , हमारे सरल सर्वर एकीकरण के लिए http , और express फ्रेमवर्क के लिए express करते हैं। फिर हम अपने क्लाइंट आईडी को परिभाषित करते हैं और एक एप्लिकेशन बनाने से रहस्य करते हैं, सैंडबॉक्स के लिए एसडीके को कॉन्फ़िगर करें, फिर बॉल्सन को संभालने के लिए बॉडीपारर को कॉन्फ़िगर करें।

var paypal = require('paypal-rest-sdk'),
    bodyParser = require('body-parser'),
    http = require('http'),
    app = require('express')();

var clientId = 'YOUR APPLICATION CLIENT ID';
var secret = 'YOUR APPLICATION SECRET';

paypal.configure({
  'mode': 'sandbox', //sandbox or live
  'client_id': clientId,
  'client_secret': secret
});

app.use(bodyParser.json());

बिलिंग समझौते में हमारा पहला कदम बिलिंग अनुबंध के निर्माण को संभालने के लिए एक मार्ग बनाना है, और उस सदस्यता की पुष्टि करने के लिए उपयोगकर्ता को PayPal पर पुनर्निर्देशित करना है। हम मान रहे हैं कि बिलिंग प्लान आईडी को क्वेरी स्ट्रिंग पैरामीटर के रूप में पारित किया जाता है, जैसे कि पिछले उदाहरण से प्लान आईडी के साथ निम्नलिखित URL लोड करके:

http://localhost:3000/createagreement?plan=P-3N543779E9831025ECYGDNVQ

अब हमें बिलिंग अनुबंध बनाने के लिए उस जानकारी का उपयोग करने की आवश्यकता है।

app.get('/createagreement', function(req, res){
    var billingPlan = req.query.plan;
    
    var isoDate = new Date();
    isoDate.setSeconds(isoDate.getSeconds() + 4);
    isoDate.toISOString().slice(0, 19) + 'Z';

    var billingAgreementAttributes = {
        "name": "Standard Membership",
        "description": "Food of the World Club Standard Membership",
        "start_date": isoDate,
        "plan": {
            "id": billingPlan
        },
        "payer": {
            "payment_method": "paypal"
        },
        "shipping_address": {
            "line1": "W 34th St",
            "city": "New York",
            "state": "NY",
            "postal_code": "10001",
            "country_code": "US"
        }
    };

    // Use activated billing plan to create agreement
    paypal.billingAgreement.create(billingAgreementAttributes, function (error, billingAgreement){
        if (error) {
            console.error(error);
            throw error;
        } else {
            //capture HATEOAS links
            var links = {};
            billingAgreement.links.forEach(function(linkObj){
                links[linkObj.rel] = {
                    'href': linkObj.href,
                    'method': linkObj.method
                };
            })

            //if redirect url present, redirect user
            if (links.hasOwnProperty('approval_url')){
                res.redirect(links['approval_url'].href);
            } else {
                console.error('no redirect URI present');
            }
        }
    });
});

हम बिलिंग स्ट्रिंग से बिलिंग प्लान आईडी निकालकर शुरू करते हैं और योजना शुरू होने पर तारीख बनाते हैं।

अगली ऑब्जेक्ट परिभाषा, billingAgreementAttributes , सदस्यता के लिए जानकारी शामिल है। इसमें योजना की पठनीय जानकारी, बिलिंग प्लान आईडी, भुगतान विधि और शिपिंग विवरण (यदि सदस्यता के लिए आवश्यक है) का संदर्भ शामिल है।

इसके बाद, billingAgreement.create(...) लिए एक कॉल किया जाता है, billingAgreementAttributes में उत्तीर्ण किया जाता है। केवल हमारे द्वारा बनाई गई वस्तु की billingAgreementAttributes । यदि सब सफल होता है, तो हमारे पास एक बिलिंग एग्रीमेंट ऑब्जेक्ट होना चाहिए, जिसमें हमारी नई बनाई गई सदस्यता के बारे में विवरण हो। उस ऑब्जेक्ट में हमें अगले चरण प्रदान करने वाले कई HATEOAS लिंक भी शामिल हैं जो इस नए बनाए गए अनुबंध पर लिए जा सकते हैं। हम यहां जिस चीज की परवाह करते हैं, उसे approval_url रूप में लेबल किया जाता है।

हम आसानी से संदर्भित ऑब्जेक्ट में डालने के लिए सभी प्रदान किए गए लिंक के माध्यम से लूप करते हैं। यदि approval_url उन लिंक में से एक है, तो हम उपयोगकर्ता को उस लिंक पर पुनर्निर्देशित करते हैं, जो कि पेपाल है।

इस बिंदु पर उपयोगकर्ता पेपाल पर सदस्यता की पुष्टि करता है, और अंतर्निहित बिलिंग योजना में प्रदान किए गए URL पर वापस भेज दिया जाता है। उस URL के साथ, PayPal क्वेरी स्ट्रिंग के साथ एक टोकन भी पारित करेगा। वह टोकन वह है जिसे हम सब्सक्रिप्शन को निष्पादित (या शुरू) करने के लिए उपयोग करने जा रहे हैं।

चलिए उस कार्यक्षमता को निम्न मार्ग में सेट करते हैं।

app.get('/processagreement', function(req, res){
    var token = req.query.token;
    
    paypal.billingAgreement.execute(token, {}, function (error, billingAgreement) {
        if (error) {
            console.error(error);
            throw error;
        } else {
            console.log(JSON.stringify(billingAgreement));
            res.send('Billing Agreement Created Successfully');
        }
    });
});

हम क्वेरी स्ट्रिंग से टोकन निकालते हैं, फिर billingAgreement.execute कॉल करें। यदि सभी सफल होते हैं, तो अब हमारे पास उपयोगकर्ता के लिए एक वैध सदस्यता है। रिटर्न ऑब्जेक्ट में सक्रिय बिलिंग समझौते के बारे में जानकारी शामिल है।

अंत में, हम अपने मार्गों के लिए ट्रैफ़िक सुनने के लिए अपना HTTP सर्वर सेट करते हैं।

//create server
http.createServer(app).listen(3000, function () {
   console.log('Server started: Listening on port 3000');
});

चरण 1: बिलिंग योजना (नोड सैंपल) का उपयोग करके सदस्यता मॉडल बनाना

किसी उपयोगकर्ता के लिए सदस्यता बनाते समय, आपको पहले बिलिंग योजना बनाने और सक्रिय करने की आवश्यकता होती है, जिसे उपयोगकर्ता को बिलिंग समझौते का उपयोग करने के लिए सदस्यता दी जाती है। सदस्यता बनाने की पूरी प्रक्रिया इस विषय की टिप्पणियों में विस्तृत है।

इस उदाहरण के भीतर, हम PayPal Node SDK का उपयोग करने जा रहे हैं। आप निम्न आदेश का उपयोग कर इसे एनपीएम से प्राप्त कर सकते हैं:

npm install paypal-rest-sdk

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

var paypal = require('paypal-rest-sdk');

var clientId = 'YOUR CLIENT ID';
var secret = 'YOUR SECRET';

paypal.configure({
  'mode': 'sandbox', //sandbox or live
  'client_id': clientId,
  'client_secret': secret
});

अगला, हमें दो JSON ऑब्जेक्ट्स सेट करने की आवश्यकता है। billingPlanAttribs ऑब्जेक्ट में बिलिंग योजना के लिए सूचना और भुगतान टूटना शामिल है जिसे हम उपयोगकर्ताओं को सदस्यता दे सकते हैं, और billingPlanUpdateAttributes ऑब्जेक्ट में बिलिंग योजना को एक सक्रिय स्थिति में सेट करने के लिए मान शामिल हैं, जो इसे उपयोग करने की अनुमति देता है।

var billingPlanAttribs = {
    "name": "Food of the World Club Membership: Standard",
    "description": "Monthly plan for getting the t-shirt of the month.",
    "type": "fixed",
    "payment_definitions": [{
        "name": "Standard Plan",
        "type": "REGULAR",
        "frequency_interval": "1",
        "frequency": "MONTH",
        "cycles": "11",
        "amount": {
            "currency": "USD",
            "value": "19.99"
        }
    }],
    "merchant_preferences": {
        "setup_fee": {
            "currency": "USD",
            "value": "1"
        },
        "cancel_url": "http://localhost:3000/cancel",
        "return_url": "http://localhost:3000/processagreement",
        "max_fail_attempts": "0",
        "auto_bill_amount": "YES",
        "initial_fail_amount_action": "CONTINUE"
    }
};

var billingPlanUpdateAttributes = [{
    "op": "replace",
    "path": "/",
    "value": {
        "state": "ACTIVE"
    }
}];

billingPlanAttribs ऑब्जेक्ट के भीतर कुछ प्रासंगिक जानकारी होती है:

  • नाम / विवरण / प्रकार : योजना का वर्णन करने के लिए मूल दृश्य जानकारी, और योजना का प्रकार।
  • payment_definitions : योजना कैसे काम करे और बिल भेजा जाना चाहिए, इस बारे में जानकारी। यहां खेतों पर अधिक जानकारी।
  • Merchant_preferences : अतिरिक्त शुल्क संरचनाएँ, URL पुनर्निर्देशित करें और सदस्यता योजना के लिए सेटिंग्स। यहां खेतों पर अधिक जानकारी।

उन वस्तुओं के साथ, अब हम बिलिंग योजना बना और सक्रिय कर सकते हैं।

paypal.billingPlan.create(billingPlanAttribs, function (error, billingPlan){
    if (error){
        console.log(error);
        throw error;
    } else {
        // Activate the plan by changing status to Active
        paypal.billingPlan.update(billingPlan.id, billingPlanUpdateAttributes, function(error, response){
            if (error) {
                console.log(error);
                throw error;
            } else {
                console.log(billingPlan.id);
            }
        });
    }
});

हम billingPlan.create(...) , जो हम अभी बनाए गए billingPlanAttribs ऑब्जेक्ट में पास करते हैं। यदि वह सफल होता है, तो रिटर्न ऑब्जेक्ट में बिलिंग योजना के बारे में जानकारी होगी। उदाहरण के लिए, हमें केवल उपयोग के लिए योजना को सक्रिय करने के लिए बिलिंग योजना आईडी का उपयोग करने की आवश्यकता है।

इसके बाद, हम billingPlan.update(...) , जो बिलिंग प्लान आईडी और billingPlanUpdateAttributes वस्तु से billingPlanUpdateAttributes हमने पहले बनाया था। यदि वह सफल है, तो हमारी बिलिंग योजना अब सक्रिय है और उपयोग के लिए तैयार है।

आदेश में एक उपयोगकर्ता (या एक से अधिक उपयोगकर्ता) इस योजना पर के लिए एक सदस्यता बनाने के लिए, हम बिलिंग योजना आईडी (संदर्भ के लिए की आवश्यकता होगी billingPlan.id , तो दुकान है कि एक ही स्थान पर है कि आसानी से संदर्भित किया जा सकता ऊपर)।

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



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow