खोज…


पैरामीटर

पैरामीटर विवरण
ग्राहक ID आपका पेपाल एप्लिकेशन क्लाइंट आईडी (OAuth 2 क्रेडेंशियल)
लिंक पेपल से सभी रिटर्न HateOAS लिंक के लिए सरल संदर्भ वस्तु
paymentId भुगतान पूरा करने के लिए पेपल से भुगतान की आईडी लौटा दी गई है
payerId भुगतान पूरा करने के लिए भुगतानकर्ता की आईडी पेपाल से वापस आ गई
paypal पेपैल नोड एसडीके संदर्भ
payReq JSON लेनदेन के लिए भुगतान की जानकारी युक्त वस्तु
अनुरोध सर्वर अनुरोध से अनुरोध ऑब्जेक्ट
रेस सर्वर अनुरोध से प्रतिक्रिया ऑब्जेक्ट
गुप्त आपका पेपल एप्लीकेशन सीक्रेट (OAuth 2 क्रेडेंशियल्स)

टिप्पणियों

ये सैंपल कवर करते हैं कि पेपाल एसडीके का उपयोग करके, पेपाल के माध्यम से भुगतान कैसे किया जाए। ये सरल अनुरोध नमूने हैं जो इस भुगतान विकल्प की अनुमति देने के लिए बहु-चरण प्रक्रिया को रेखांकित करते हैं।

नोड एक्सप्रेस सर्वर उदाहरण

इस उदाहरण में, हम PayPal नोड SDK का उपयोग करके, PayPal के साथ भुगतान को संसाधित करने के तरीके को प्रदर्शित करने के लिए एक एक्सप्रेस सर्वर एकीकरण स्थापित करने जा रहे हैं। हम संक्षिप्तता के लिए भुगतान विवरण के लिए एक स्थिर JSON संरचना का उपयोग करेंगे।

तीन सामान्य चरण हैं जिनका पालन हम पेपाल भुगतान को संभालने के लिए कार्यों का निर्माण करते समय करेंगे:

  1. हम एक JSON ऑब्जेक्ट बनाते हैं जिसमें भुगतान होता है जिसे हम PayPal के माध्यम से संसाधित करना चाहते हैं। फिर हम भुगतान की पुष्टि करने के लिए उपयोगकर्ता को पुनर्निर्देशित करने के लिए एक लिंक प्राप्त करने के लिए पेपाल को भेजते हैं।
  2. इसके बाद, हम भुगतान की पुष्टि के लिए उपयोगकर्ता को PayPal पर पुनर्निर्देशित करते हैं। एक बार पुष्टि हो जाने के बाद, पेपाल उपयोगकर्ता को हमारे आवेदन पर वापस भेज देता है।
  3. एक बार ऐप पर वापस आने के बाद, हम उपयोगकर्ता की ओर से भुगतान पूरा करते हैं।

सरल नोड ऐप के रूप में इसे तोड़कर, हम एनपीएम से पेपल नोड एसडीके प्राप्त करके शुरू करते हैं:

npm install paypal-rest-sdk

अगला, हम ऐप कॉन्फ़िगरेशन और पैकेज सेट करते हैं।

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

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

//allow parsing of JSON bodies
app.use(bodyParser.json());

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

हमें इस ऐप के लिए चार आवश्यकताओं की आवश्यकता है:

  1. हमारे सर्वर के लिए HTTP पैकेज।
  2. पेपैल नोड एसडीके पैकेज।
  3. JSON एन्कोडेड निकायों के साथ काम करने के लिए बॉडीपारर पैकेज।
  4. हमारे सर्वर के लिए एक्सप्रेस रूपरेखा।

अगली कुछ पंक्तियाँ क्लाइंट ID और गुप्त के लिए वैरिएबल सेट करती हैं जो एप्लिकेशन बनाते समय प्राप्त की गई थीं। फिर हमने JSON एनकोडेड bodyParser लिए अनुमति देने के लिए bodyParser स्थापना की, फिर एप्लिकेशन विवरण का उपयोग करके हमारे एप्लिकेशन को कॉन्फ़िगर करें, और उस पर्यावरण को निर्दिष्ट करें, जिसमें हम काम कर रहे हैं (परीक्षण के लिए उत्पादन या सैंडबॉक्स के लिए लाइव)।

अब PayPal के साथ भुगतान अनुरोध बनाने के लिए मार्ग बनाते हैं।

app.get('/create', function(req, res){
    //build PayPal payment request
    var payReq = JSON.stringify({
        'intent':'sale',
        'redirect_urls':{
            'return_url':'http://localhost:3000/process',
            'cancel_url':'http://localhost:3000/cancel'
        },
        'payer':{
            'payment_method':'paypal'
        },
        'transactions':[{
            'amount':{
                'total':'7.47',
                'currency':'USD'
            },
            'description':'This is the payment transaction description.'
        }]
    });

    paypal.payment.create(payReq, function(error, payment){
        if(error){
            console.error(error);
        } else {
            //capture HATEOAS links
            var links = {};
            payment.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');
            }
        }
    });
});

पहली चीज़ जो हम करते हैं वह भुगतान अनुरोध JSON ऑब्जेक्ट सेट अप करता है, जिसमें भुगतान को बनाने के लिए हमें जो जानकारी प्रदान करने की आवश्यकता होती है, वह पेपाल प्रदान करता है। हम sale के intent को निर्धारित करते हैं, पुनर्निर्देशित URL निर्दिष्ट करते हैं (जहां पेपाल उपयोगकर्ता को भुगतान की पुष्टि / रद्द करने के बाद आगे भेजना चाहिए), paypal payment_method में यह संकेत करने के लिए जोड़ें कि हम एक पेपल भुगतान करेंगे, फिर लेन-देन की जानकारी निर्दिष्ट करें पुष्टि करने वाला।

हम तब payReq payment.create(...) , जो हमारे payReq ऑब्जेक्ट में गुजर रहा है। यह पेपल के लिए भुगतान का अनुरोध भेजेगा। एक बार जब कि रिटर्न, और सफल होता है, हम प्रदान कर सकते हैं के माध्यम से लूप HATEOAS वापसी वस्तु में लिंक यूआरएल है कि हम जिसके तहत लेबल किया गया है करने के लिए उपयोगकर्ता, रीडायरेक्ट करना होगा निकालने के लिए approval_url

HATEOAS लिंक का प्रारूप सीधे उपयोग किए जाने पर नाजुक संदर्भ कोड का कारण बन सकता है, इसलिए हम सभी प्रदान किए गए लिंक के माध्यम से लूप करते हैं और बदलावों के खिलाफ भविष्य के प्रमाण के लिए बेहतर संदर्भ ऑब्जेक्ट में डालते हैं। यदि approval_url उस वस्तु में मिलता है, तो हम उपयोगकर्ता को पुनर्निर्देशित करते हैं।

इस बिंदु पर भुगतान की पुष्टि के लिए उपयोगकर्ता को पेपाल पर पुनर्निर्देशित किया जाता है। एक बार जब वे करते हैं, वे वापस करने के लिए पुनः निर्देशित कर रहे return_url है कि हम में निर्दिष्ट createPayment(...) समारोह।

भुगतान पूरा करने के लिए हमें अब उस वापसी को संभालने के लिए एक मार्ग प्रदान करना होगा।

app.get('/process', function(req, res){
    var paymentId = req.query.paymentId;
    var payerId = { 'payer_id': req.query.PayerID };

    paypal.payment.execute(paymentId, payerId, function(error, payment){
        if(error){
            console.error(error);
        } else {
            if (payment.state == 'approved'){ 
                res.send('payment completed successfully');
            } else {
                res.send('payment not successful');
            }
        }
    });
});

जब उपयोगकर्ता को आपके ऐप पर वापस लौटाया जाएगा, तो तीन क्वेरी स्ट्रिंग पैरामीटर होंगे जो paymentId , PayerID और token साथ भेजे जाएंगे। हमें केवल पहले दो से निपटने की जरूरत है।

हम मापदंडों को निकालते हैं, और भुगतान निष्पादन कदम की आवश्यकता के लिए PayerID को एक साधारण वस्तु में रखते हैं। इसके बाद, एक कॉल करने के लिए किया जाता है payment.execute(...) भुगतान पूरा करने के लिए, उन दो मापदंडों में गुजर,।

एक बार उस अनुरोध किया जाता है, हम अगर भुगतान करता है, तो जाँच करके सफलतापूर्वक पूरा कर लिया देखना payment.state के लिए निर्धारित है approved । यदि ऐसा है, तो हम उस वस्तु को स्टोर कर सकते हैं, जिसे हमें भुगतान की गई वस्तु से वापस चाहिए।

हमारा अंतिम चरण हमारे सर्वर को इनिशियलाइज़ करना है और हमारे द्वारा निर्दिष्ट मार्गों पर आने वाले ट्रैफ़िक को सुनना है।

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

एक बार जब सर्वर को इनिशियलाइज़ किया जाता है, तो http://localhost:3000/create जाकर भुगतान प्रक्रिया आरंभ करता है।



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