PayPal
Where in the admin: Finance › Payment channels › PayPal (
/payments/paypal). द ऑन/ऑफ़ स्विच और फ़ीस Finance › Payment channels › Fees & limits (/payments/fees) में हैं।
यह क्या करता है
ग्राहकों को अपने PayPal बैलेंस, बैंक खाते या PayPal पर मौजूद कार्ड से अपने USD वॉलेट को टॉप अप करने देता है। ग्राहक automatic top-up के लिए NexCMP को अपना PayPal खाता याद रखने की अनुमति भी दे सकते हैं। PayPal पसंद करने वाले ग्राहकों के लिए इसे Stripe के साथ उपयोग करें।
आवश्यकताएं
| आइटम | आवश्यकता |
|---|---|
| PayPal account | एक PayPal Business खाता जो USD प्राप्त कर सकता है। |
| REST app | PayPal डेवलपर डैशबोर्ड (Apps & Credentials) में एक REST ऐप जो Client ID और Client secret प्रदान करता है। परीक्षण के लिए Sandbox टैब का उपयोग करें, प्रोडक्शन के लिए Live का उपयोग करें। |
| नेटवर्क | इंटरनेट से HTTPS पहुंच योग्य (PayPal वेबहुक को कॉल करता है) और api-m.paypal.com (लाइव) या api-m.sandbox.paypal.com (सैंडबॉक्स) तक आउटबाउंड एक्सेस, पोर्ट 443। |
| अनुमतियाँ | REST ऐप को रिफंड और वेबहुक क्षमताओं की आवश्यकता है। Check डायलॉग दिखाता है कि दोनों स्कोप मौजूद हैं या नहीं। |
| डिपेंडेंसी | कोई नहीं। |
बुनियादी ढांचा तैयार करें
- अपने बिजनेस खाते से developer.paypal.com में साइन इन करें और Apps & Credentials खोलें।
- Sandbox (परीक्षण) या Live चुनें, फिर Create App करें। इसका नाम उदाहरण के लिए "NexCMP" रखें।
- ऐप का Client ID और Secret कॉपी करें।
- परीक्षण के लिए, कोई Personal (खरीदार) सैंडबॉक्स खाता खोजने या बनाने के लिए Testing Tools › Sandbox Accounts का उपयोग करें।
- आपको स्वयं वेबहुक बनाने की आवश्यकता नहीं है; NexCMP इसे Create webhook बटन से बनाता है।
NexCMP में कनेक्ट करें
- Finance › Payment channels › PayPal खोलें (
/payments/paypal)। - API keys में, Mode चुनें:
live(वास्तविक धन,api-m.paypal.com) याsandbox(api-m.sandbox.paypal.com)। - Client ID (कम से कम 20 वर्ण) और Client secret पेस्ट करें।
- Check पर क्लिक करें। यह आपके द्वारा टाइप किए गए क्रेडेंशियल्स की जांच करता है (सहेजना आवश्यक नहीं है) और कनेक्शन, ऐप आईडी, मोड, रिफंड और वेबहुक स्कोप मौजूद हैं या नहीं तथा टोकन की अवधि की रिपोर्ट देता है।
- Save पर क्लिक करें।
- Webhook कार्ड में पुष्टि करें कि URL
https://<your-domain>/v1/billing/paypal/webhookहै (यहhttpsहोना चाहिए), फिर Create webhook पर क्लिक करें और पुष्टि करें। NexCMP PayPal से 11 इवेंट के साथ वेबहुक बनाने या अपडेट करने का अनुरोध करता है और लौटाए गए Webhook ID को सहेजता है। बटन सहेजी गई कुंजियों का उपयोग करता है — यदि आपने अभी-अभी उनमें संपादन किया है तो पहले सहेजें। - Check पर फिर से क्लिक करें: Webhook पंक्ति में "exists, 11 events" लिखा होना चाहिए।
- Fees & limits खोलें, PayPal को चालू करें, PayPal fee % (डिफ़ॉल्ट 4.4) और PayPal fixed fee (cents) (डिफ़ॉल्ट 30) को अपने टैरिफ के अनुसार सेट करें और Save channels & fees पर क्लिक करें।

Webhook events
NexCMP इन 11 इवेंट को पंजीकृत करता है: CHECKOUT.ORDER.APPROVED, PAYMENT.CAPTURE.COMPLETED, PAYMENT.CAPTURE.PENDING, PAYMENT.CAPTURE.DECLINED, PAYMENT.CAPTURE.REFUNDED, PAYMENT.CAPTURE.REVERSED, CUSTOMER.DISPUTE.CREATED, CUSTOMER.DISPUTE.UPDATED, CUSTOMER.DISPUTE.RESOLVED, RISK.DISPUTE.CREATED, CHECKOUT.PAYMENT-APPROVAL.REVERSED।
प्रत्येक वेबहुक को PayPal के हस्ताक्षर-सत्यापन API को कॉल करके सत्यापित किया जाता है, एक बार संग्रहीत किया जाता है और आइडमपोटेंट तरीके से प्रोसेस किया जाता है। NexCMP वेबहुक बॉडी में दी गई राशि पर कभी भरोसा नहीं करता: कैप्चर को क्रेडिट करने से पहले यह PayPal से कैप्चर प्राप्त करता है।
सत्यापित करें
- Mode को
sandboxपर रखें। पोर्टल में, Billing › Deposit खोलें, PayPal चुनें, Continue on PayPal (या PayPal बटन) पर क्लिक करें और सैंडबॉक्स खरीदार खाते से लॉग इन करें। - भुगतान स्वीकृत करें। आप पोर्टल पर लौटते हैं, बैलेंस बढ़ जाता है और भुगतान Finance › Billing › Top-ups के अंतर्गत Completed के रूप में दिखाई देता है।
- Payment channels › Gateway events › PayPal & USDT खोलें:
PAYMENT.CAPTURE.COMPLETEDइवेंट सूचीबद्ध है। - जब सब कुछ काम करे, तो Mode को
liveपर स्विच करें, लाइव क्रेडेंशियल्स दर्ज करें, Save करें, फिर Create webhook पर दोबारा क्लिक करें (सैंडबॉक्स और लाइव वेबहुक अलग-अलग होते हैं)।
Limits & notes
- भुगतान कैसे पूरा होता है। ऑर्डर USD में बनाया जाता है; ग्राहक द्वारा इसे स्वीकृत करने के बाद, सर्वर इसे कैप्चर करता है (आइडमपोटेंट अनुरोध आईडी) और वॉलेट को ठीक एक बार क्रेडिट करता है। यदि ग्राहक ब्राउज़र बंद कर देता है, तो वेबहुक और हर 10 मिनट में चलने वाला रिकंसीडिएशन जॉब सुरक्षा कवच का काम करते हैं।
- लंबित और छोड़े गए ऑर्डर। एक ऑर्डर 12 घंटे तक खुला रह सकता है। एक ग्राहक के पास अधिकतम 5 लंबित ऑर्डर हो सकते हैं (सर्वर
too_many_pending, HTTP 429 उत्तर देता है)। 24 घंटे के बाद भी कैप्चर न किया गया ऑर्डर विफल चिह्नित कर दिया जाता है। - कोई वेबहुक कॉन्फ़िगर नहीं किया गया। जब तक वेबहुक आईडी सहेजी नहीं जाती, पैनल प्रत्येक PayPal वेबहुक को HTTP 503 उत्तर देता है। पोर्टल के माध्यम से किए गए कैप्चर और 10 मिनट का रिकंसीडिएशन अभी भी वॉलेट को क्रेडिट करते हैं, लेकिन PayPal द्वारा वेबहुक के माध्यम से रिपोर्ट की गई कोई भी चीज़ (विवाद, उलटफेर, देर से कैप्चर) लागू नहीं होती है — Create webhook पर क्लिक करें।
- सहेजा गया PayPal खाता। जब ग्राहक PayPal को सहेजना चुनता है (या पहला डिपॉजिट पूरा करता है, जिससे automatic top-up चालू हो जाता है), तो PayPal अपने वॉल्ट में भुगतान टोकन संग्रहीत करता है। NexCMP केवल एक पहचानकर्ता और PayPal ईमेल रखता है। Saved payment methods देखें।
- रिफंड और विवाद को Stripe की तरह संभाला जाता है: रिफंड अनुरोध Finance › Payouts › Card refunds के अंतर्गत स्वीकृत किए जाते हैं; एक विवाद ग्राहक के खाते को ब्लॉक कर देता है और आपके द्वारा हल किए जाने तक उनकी प्रीपेड सेवाओं को रोक देता है।
- शुल्क। PayPal का शुल्क वापस नहीं पढ़ा जाता है; आपके द्वारा कॉन्फ़िगर किया गया प्रतिशत और निश्चित शुल्क यह निर्धारित करता है कि ग्राहक को क्या दिखाई देता है और क्या क्रेडिट किया जाता है। वास्तविक टैरिफ आपके देश पर निर्भर करता है (फ़ॉर्म वियतनाम के लिए 4.4% और अमेरिका के लिए 3.49% का संकेत देता है)।
ट्रबलशूटिंग
| लक्षण | कारण | सुधार |
|---|---|---|
| "Client ID बहुत छोटा है" | 20 से कम वर्ण पेस्ट किए गए हैं | पूरा Client ID कॉपी करें। |
| "वेबहुक URL https होना चाहिए" | URL इस प्रकार टाइप किया गया: http:// | अपने सार्वजनिक https:// डोमेन का उपयोग करें। |
| जांच में कनेक्शन त्रुटि रिपोर्ट की जाती है | गलत मोड (सैंडबॉक्स में लाइव कुंजियाँ या इसके विपरीत), गलत गुप्त कुंजी, कोई आउटबाउंड एक्सेस नहीं | Mode को कुंजी प्रकार से मिलाएं; सर्वर से curl -I https://api-m.paypal.com का परीक्षण करें। |
| स्कोप रिफंड / वेबहुक "no" दिखाता है | REST ऐप में सुविधाओं की कमी है | PayPal Developer Dashboard में ऐप पर सुविधाओं को सक्षम करें। |
| बैनर "PayPal key set, NO webhook" | वेबहुक ID गायब है | Create webhook पर क्लिक करें। |
| Check में "Webhook not found" | वेबहुक PayPal पर हटा दिया गया था या किसी अन्य ऐप से संबंधित है | Create webhook पर दोबारा क्लिक करें। |
| ग्राहक को बताया जाता है कि PayPal ने भुगतान अस्वीकार कर दिया | PayPal ने उस फंडिंग स्रोत को अस्वीकार कर दिया | ग्राहक से कोई अन्य भुगतान स्रोत चुनने के लिए कहें। |
| ग्राहक "Too many pending requests" देखता है | 5 खुले ऑर्डर | उनके समाप्त होने की प्रतीक्षा करें या उन्हें पूरा करें। |
| PayPal बटन गायब है | Fees & limits में PayPal बंद है या कॉन्फ़िगर नहीं किया गया है | इसे चालू करें और क्रेडेंशियल सहेजें। |