PayPal
क्रेडिट कार्ड से भुगतान (नोड)
खोज…
पैरामीटर
| पैरामीटर | विवरण |
|---|---|
| card_data | JSON लेनदेन के लिए भुगतान की जानकारी युक्त वस्तु |
| क्रेडिट कार्ड की जानकारी | JSON ऑब्जेक्ट में क्रेडिट कार्ड डेटा होता है जिसे पेपल पर भेजा जाता है |
| ग्राहक ID | आपका पेपाल एप्लिकेशन क्लाइंट आईडी (OAuth 2 क्रेडेंशियल) |
| paypal | पेपैल नोड एसडीके संदर्भ |
| गुप्त | आपका पेपल एप्लीकेशन सीक्रेट (OAuth 2 क्रेडेंशियल्स) |
| UUID | नोड-uuid पैकेज का संदर्भ |
टिप्पणियों
यह नमूना उपयोगकर्ता को पेपाल एसडीके का उपयोग करके एक सरल क्रेडिट कार्ड लेनदेन का श्रेय देता है।
नोड नमूना
एनपीएम से पेपाल नोड मॉड्यूल स्थापित करके शुरू करें
npm install paypal-rest-sdk
अपनी एप्लिकेशन फ़ाइल में, SDK के लिए कॉन्फ़िगरेशन जानकारी जोड़ें
var paypal = require('paypal-rest-sdk');
var client_id = 'YOUR CLIENT ID';
var secret = 'YOUR SECRET';
paypal.configure({
'mode': 'sandbox', //sandbox or live
'client_id': client_id,
'client_secret': secret
});
हम एसडीके के लिए आवश्यकता जोड़ते हैं, फिर क्लाइंट आईडी और गुप्त के लिए चर सेट करते हैं जो एक एप्लिकेशन बनाते समय प्राप्त किए गए थे। फिर हम इन विवरणों का उपयोग करके अपने एप्लिकेशन को कॉन्फ़िगर करते हैं, और उस पर्यावरण को निर्दिष्ट करते हैं जो हम (लाइव या सैंडबॉक्स) में काम कर रहे हैं।
अगला, हमने JSON ऑब्जेक्ट सेट किया है जिसमें भुगतानकर्ता के लिए भुगतान की जानकारी है।
var card_data = {
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [{
"credit_card": {
"type": "visa",
"number": "4417119669820331",
"expire_month": "11",
"expire_year": "2018",
"cvv2": "874",
"first_name": "Joe",
"last_name": "Shopper",
"billing_address": {
"line1": "52 N Main ST",
"city": "Johnstown",
"state": "OH",
"postal_code": "43210",
"country_code": "US" }}}]},
"transactions": [{
"amount": {
"total": "7.47",
"currency": "USD",
"details": {
"subtotal": "7.41",
"tax": "0.03",
"shipping": "0.03"}},
"description": "This is the payment transaction description."
}]};
एक जोड़े intent की sale , और एक payment_method की credit_card । इसके बाद, funding_instruments तहत क्रेडिट कार्ड के लिए कार्ड और पते का विवरण जोड़ें और transactions तहत वसूल की जाने वाली राशि। एकाधिक लेन-देन की वस्तुओं को यहां रखा जा सकता है।
अंत में, हम करने के लिए एक अनुरोध करना payment.create(...) , हमारे में से गुजर रहा card_data , वस्तु आदेश भुगतान को संसाधित करने में।
paypal.payment.create(card_data, function(error, payment){
if(error){
console.error(error);
} else {
console.log(payment);
}
});
यदि लेन-देन सफल था, तो हमें निम्नलिखित के समान एक प्रतिक्रिया ऑब्जेक्ट देखना चाहिए:
{
"id": "PAY-9BS08892W3794812YK4HKFQY",
"create_time": "2016-04-13T19:49:23Z",
"update_time": "2016-04-13T19:50:07Z",
"state": "approved",
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [
{
"credit_card": {
"type": "visa",
"number": "xxxxxxxxxxxx0331",
"expire_month": "11",
"expire_year": "2018",
"first_name": "Joe",
"last_name": "Shopper",
"billing_address": {
"line1": "52 N Main ST",
"city": "Johnstown",
"state": "OH",
"postal_code": "43210",
"country_code": "US"
}
}
}
]
},
"transactions": [
{
"amount": {
"total": "7.47",
"currency": "USD",
"details": {
"subtotal": "7.41",
"tax": "0.03",
"shipping": "0.03"
}
},
"description": "This is the payment transaction description.",
"related_resources": [
{
"sale": {
"id": "0LB81696PP288253D",
"create_time": "2016-04-13T19:49:23Z",
"update_time": "2016-04-13T19:50:07Z",
"amount": {
"total": "7.47",
"currency": "USD"
},
"state": "completed",
"parent_payment": "PAY-9BS08892W3794812YK4HKFQY",
"links": [
{
"href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/sale\/0LB81696PP288253D",
"rel": "self",
"method": "GET"
},
{
"href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/sale\/0LB81696PP288253D\/refund",
"rel": "refund",
"method": "POST"
},
{
"href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/payment\/PAY-9BS08892W3794812YK4HKFQY",
"rel": "parent_payment",
"method": "GET"
}
],
"fmf_details": {
},
"processor_response": {
"avs_code": "X",
"cvv_code": "M"
}
}
}
]
}
],
"links": [
{
"href": "https:\/\/api.sandbox.paypal.com\/v1\/payments\/payment\/PAY-9BS08892W3794812YK4HKFQY",
"rel": "self",
"method": "GET"
}
],
"httpStatusCode": 201
}
इस रिटर्न ऑब्जेक्ट में, approved होने की state हमें बताती है कि लेनदेन सफल था। links ऑब्जेक्ट के तहत कई HATEOAS लिंक हैं जो संभावित अगले कदम प्रदान करते हैं जो कि केवल प्रदर्शन की गई कार्रवाई पर लिया जा सकता है। इस स्थिति में, हम प्रदान किए गए self समापन बिंदु पर GET अनुरोध करके भुगतान के बारे में जानकारी प्राप्त कर सकते हैं।
तिजोरी क्रेडिट कार्ड (नोड) के साथ भुगतान करना
इस उदाहरण में, हम देख रहे हैं कि पेपाल वॉल्ट का उपयोग करके क्रेडिट कार्ड को कैसे संग्रहीत किया जाए, फिर एक उपयोगकर्ता के लिए क्रेडिट कार्ड लेनदेन की प्रक्रिया के लिए क्रेडिट कार्ड को संग्रहीत किया जाता है।
हम तिजोरी का उपयोग क्यों करना चाहते हैं इसका कारण यह है कि हमें अपने स्वयं के सर्वर पर संवेदनशील क्रेडिट कार्ड की जानकारी संग्रहीत करने की आवश्यकता नहीं है। हम बस एक प्रदत्त वॉल्ट आईडी के माध्यम से भुगतान विधि का संदर्भ देते हैं, जिसका अर्थ है कि हमें क्रेडिट कार्ड को स्वयं संग्रहीत करने के साथ कई पीसीआई अनुपालन नियमों से निपटने की आवश्यकता नहीं है।
पिछले नमूनों के साथ, हम अपने वातावरण की स्थापना के साथ शुरू करते हैं।
var paypal = require('paypal-rest-sdk'),
uuid = require('node-uuid');
var client_id = 'YOUR CLIENT ID';
var secret = 'YOUR SECRET';
paypal.configure({
'mode': 'sandbox', //sandbox or live
'client_id': client_id,
'client_secret': secret
});
यहां पिछले नमूनों में एक अंतर यह है कि हमें एक नया पैकेज, node-uuid आवश्यकता होती है, जिसका उपयोग कार्ड को स्टोर करते समय भुगतानकर्ताओं के लिए अद्वितीय यूयूआईडी बनाने के लिए किया जाना है। आप उस पैकेज को इसके माध्यम से स्थापित कर सकते हैं:
npm install node-uuid
अगला, हम क्रेडिट कार्ड JSON ऑब्जेक्ट को परिभाषित करते हैं जिसे स्टोरेज के लिए पेपल वॉल्ट में भेजा जाएगा। इसमें कार्ड से जानकारी, साथ ही एक अद्वितीय भुगतानकर्ता आईडी है जो हम node-uuid का उपयोग करके उत्पन्न करते हैं। आपको इस अनूठे payer_id को अपने डेटाबेस में संग्रहीत करना चाहिए क्योंकि इसका उपयोग वॉल्ट कार्ड के साथ भुगतान करते समय किया जाएगा।
var create_card_details = {
"type": "visa",
"number": "4417119669820331",
"expire_month": "11",
"expire_year": "2018",
"first_name": "John",
"last_name": "Doe",
"payer_id": uuid.v4()
};
अंत में, हमें क्रेडिट कार्ड को संग्रहीत करने और उस कार्ड का उपयोग करके भुगतान संसाधित करने की आवश्यकता है। क्रेडिट कार्ड को वॉल्ट करने के लिए, हम credit_card.create(...) कॉल credit_card.create(...) , जिसे हमने अभी बनाया credit_card_details ऑब्जेक्ट में पास किया है। यदि सब कुछ ठीक हो जाता है, तो हमारे पास एक वस्तु होनी चाहिए जो तिजोरी कार्ड के बारे में विवरण के साथ हमारे पास लौटे। उस कार्ड के साथ भुगतान के लिए, हमें वास्तव में केवल दो टुकड़ों की जानकारी की आवश्यकता है: भुगतानकर्ता_ जो हमने पहले ही संग्रहीत किया था, और वॉल्ट आईडी, जिसे हमारे अपने डेटाबेस में एक संदर्भ के रूप में भी संग्रहीत किया जाना चाहिए।
paypal.credit_card.create(create_card_details, function(error, credit_card){
if(error){
console.error(error);
} else {
var card_data = {
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [{
"credit_card_token": {
"credit_card_id": credit_card.id,
"payer_id": credit_card.payer_id
}
}]
},
"transactions": [{
"amount": {
"total": "7.47",
"currency": "USD",
"details": {
"subtotal": "7.41",
"tax": "0.03",
"shipping": "0.03"
}
},
"description": "This is the payment transaction description."
}]
};
paypal.payment.create(card_data, function(error, payment){
if(error){
console.error(error);
} else {
console.log(JSON.stringify(payment));
}
});
}
});
क्रेडिट कार्ड के सफल वॉल्टिंग के बाद अनुभाग में, हम कार्ड विवरण को परिभाषित कर रहे हैं और भुगतान को संसाधित कर रहे हैं, जैसा कि हमने पिछले क्रेडिट कार्ड प्रसंस्करण उदाहरण के साथ किया था। card_data ऑब्जेक्ट की संरचना में मुख्य अंतर है funding_instruments सेक्शन, जिसे हम payer तहत परिभाषित करते हैं। क्रेडिट कार्ड की जानकारी को परिभाषित करने के बजाय, हम निम्नलिखित वस्तु का उपयोग करते हैं जिसमें तिजोरी आईडी संदर्भ और भुगतानकर्ता आईडी शामिल हैं:
"credit_card_token": {
"credit_card_id": credit_card.id,
"payer_id": credit_card.payer_id
}
इसी तरह हम भुगतान करने के लिए एक वॉल्ट कार्ड का उपयोग करते हैं।