मुख्य सामग्री पर जाएं

पूर्वापेक्षाएँ

Dodo Payments API को एकीकृत करने के लिए, आपको आवश्यकता होगी:
  • एक Dodo Payments व्यापारी खाता
  • डैशबोर्ड से API क्रेडेंशियल्स (API कुंजी और वेबहुक गुप्त कुंजी)

डैशबोर्ड सेटअप

  1. Dodo Payments डैशबोर्ड पर जाएं
  2. एक उत्पाद बनाएं (एक बार का भुगतान या सदस्यता)
  3. अपनी API कुंजी उत्पन्न करें:
    • डेवलपर > API पर जाएं
    • विस्तृत गाइड
    • env में DODO_PAYMENTS_API_KEY नामक API कुंजी कॉपी करें
  4. वेबहुक कॉन्फ़िगर करें:
    • डेवलपर > वेबहुक पर जाएं
    • भुगतान सूचनाओं के लिए एक वेबहुक URL बनाएं
    • env में वेबहुक गुप्त कुंजी कॉपी करें

एकीकरण

भुगतान लिंक

अपने उपयोग के मामले के अनुसार एकीकरण पथ चुनें:
  • चेकआउट सत्र (सिफारिश की): अधिकांश एकीकरणों के लिए सबसे अच्छा। अपने सर्वर पर एक सत्र बनाएं और ग्राहकों को एक सुरक्षित, होस्टेड चेकआउट पर रीडायरेक्ट करें।
  • ओवरले चेकआउट (एंबेडेड): जब आपको अपने साइट पर होस्टेड चेकआउट को एंबेड करने के लिए एक इन-पेज अनुभव की आवश्यकता हो।
  • स्थैतिक भुगतान लिंक: त्वरित भुगतान संग्रह के लिए बिना कोड के, तुरंत साझा करने योग्य URLs।
  • गतिशील भुगतान लिंक: प्रोग्रामेटिक रूप से बनाए गए लिंक। हालाँकि, चेकआउट सत्रों की सिफारिश की जाती है और अधिक लचीलापन प्रदान करती है।

1. चेकआउट सत्र

एक बार के भुगतान या सदस्यताओं के लिए एक सुरक्षित, होस्टेड चेकआउट अनुभव बनाने के लिए चेकआउट सत्रों का उपयोग करें। आप अपने सर्वर पर एक सत्र बनाते हैं, फिर ग्राहक को लौटाए गए checkout_url पर रीडायरेक्ट करते हैं।
चेकआउट सत्र डिफ़ॉल्ट रूप से 24 घंटे के लिए मान्य होते हैं। यदि आप confirm=true पास करते हैं, तो सत्र 15 मिनट के लिए मान्य होते हैं और सभी आवश्यक फ़ील्ड प्रदान की जानी चाहिए।
1

चेकआउट सत्र बनाएं

अपने पसंदीदा SDK का चयन करें या REST API को कॉल करें।
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env.DODO_PAYMENTS_API_KEY,
  environment: 'test_mode', // defaults to 'live_mode'
});

const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_123', quantity: 1 }],
  customer: { email: '[email protected]', name: 'John Doe' },
  return_url: 'https://yourapp.com/checkout/success',
});
2

ग्राहक को चेकआउट पर रीडायरेक्ट करें

सत्र निर्माण के बाद, होस्टेड प्रवाह शुरू करने के लिए checkout_url पर रीडायरेक्ट करें।
// Example in a browser context
window.location.href = session.checkout_url;
भुगतान लेना शुरू करने के लिए सबसे तेज़, सबसे विश्वसनीय तरीके के लिए चेकआउट सत्रों को प्राथमिकता दें। उन्नत अनुकूलन के लिए, पूर्ण चेकआउट सत्र गाइड और API संदर्भ देखें।

2. ओवरले चेकआउट

एक सहज इन-पेज चेकआउट अनुभव के लिए, हमारे ओवरले चेकआउट एकीकरण का अन्वेषण करें जो ग्राहकों को आपकी वेबसाइट छोड़े बिना भुगतान पूरा करने की अनुमति देता है।

3. स्थैतिक भुगतान लिंक

स्थैतिक भुगतान लिंक आपको एक सरल URL साझा करके तेजी से भुगतान स्वीकार करने की अनुमति देते हैं। आप ग्राहक विवरण को पूर्व-भरने, फ़ॉर्म फ़ील्ड को नियंत्रित करने और कस्टम मेटाडेटा जोड़ने के लिए क्वेरी पैरामीटर पास करके चेकआउट अनुभव को अनुकूलित कर सकते हैं।
1

अपने भुगतान लिंक का निर्माण करें

आधार URL से शुरू करें और अपने उत्पाद ID को जोड़ें:
https://checkout.dodopayments.com/buy/{productid}
2

मुख्य पैरामीटर जोड़ें

आवश्यक क्वेरी पैरामीटर शामिल करें:
  • quantity
    integer
    डिफ़ॉल्ट:"1"
    खरीदने के लिए वस्तुओं की संख्या।
  • redirect_url
    string
    आवश्यक
    भुगतान पूर्ण होने के बाद रीडायरेक्ट करने के लिए URL।
रीडायरेक्ट URL में भुगतान विवरण क्वेरी पैरामीटर के रूप में शामिल होंगे, उदाहरण के लिए:
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded
3

ग्राहक जानकारी पूर्व-भरें (वैकल्पिक)

चेकआउट को सरल बनाने के लिए ग्राहक या बिलिंग फ़ील्ड को क्वेरी पैरामीटर के रूप में जोड़ें।
  • fullName
    string
    ग्राहक का पूरा नाम (यदि firstName या lastName प्रदान किया गया है तो अनदेखा किया जाएगा)।
  • firstName
    string
    ग्राहक का पहला नाम।
  • lastName
    string
    ग्राहक का अंतिम नाम।
  • email
    string
    ग्राहक का ईमेल पता।
  • country
    string
    ग्राहक का देश।
  • addressLine
    string
    सड़क का पता।
  • city
    string
    शहर।
  • state
    string
    राज्य या प्रांत।
  • zipCode
    string
    डाक/ZIP कोड।
  • showDiscounts
    boolean
    सत्य या असत्य
4

फॉर्म फ़ील्ड को नियंत्रित करें (वैकल्पिक)

आप विशिष्ट फ़ील्ड को अक्षम कर सकते हैं ताकि वे ग्राहक के लिए केवल पढ़ने योग्य हों। यह तब उपयोगी है जब आपके पास पहले से ग्राहक का विवरण हो (जैसे, लॉगिन किए हुए उपयोगकर्ता)।
किसी फ़ील्ड को अक्षम करने के लिए, उसका मान प्रदान करें और संबंधित disable… ध्वज को true पर सेट करें:
&[email protected]&disableEmail=true
फ़ील्डअक्षम ध्वजआवश्यक पैरामीटर
पूरा नामdisableFullNamefullName
पहला नामdisableFirstNamefirstName
अंतिम नामdisableLastNamelastName
ईमेलdisableEmailemail
देशdisableCountrycountry
पताdisableAddressLineaddressLine
शहरdisableCitycity
राज्यdisableStatestate
ZIP कोडdisableZipCodezipCode
फ़ील्ड को अक्षम करना आकस्मिक परिवर्तनों को रोकने में मदद करता है और डेटा की स्थिरता सुनिश्चित करता है।
showDiscounts=false सेट करने से चेकआउट फ़ॉर्म में छूट अनुभाग अक्षम और छिप जाएगा। इसका उपयोग करें यदि आप ग्राहकों को चेकआउट के दौरान कूपन या प्रोमो कोड दर्ज करने से रोकना चाहते हैं।
5

उन्नत नियंत्रण जोड़ें (वैकल्पिक)

  • paymentCurrency
    string
    भुगतान मुद्रा निर्दिष्ट करता है। डिफ़ॉल्ट रूप से बिलिंग देश की मुद्रा होती है।
  • showCurrencySelector
    boolean
    डिफ़ॉल्ट:"true"
    मुद्रा चयनकर्ता दिखाएं या छिपाएं।
  • paymentAmount
    integer
    सेंट में राशि (केवल Pay What You Want मूल्य निर्धारण के लिए)।
  • metadata_*
    string
    कस्टम मेटाडेटा फ़ील्ड (जैसे, metadata_orderId=123).
6

लिंक साझा करें

पूरा किया गया भुगतान लिंक अपने ग्राहक को भेजें। जब वे विजिट करते हैं, तो सभी क्वेरी पैरामीटर एकत्र किए जाते हैं और एक सत्र ID के साथ संग्रहीत होते हैं। URL को फिर केवल सत्र पैरामीटर (जैसे, ?session=sess_1a2b3c4d) शामिल करने के लिए सरल बनाया जाता है। संग्रहीत जानकारी पृष्ठ ताज़ा करने के दौरान बनी रहती है और चेकआउट प्रक्रिया के दौरान सुलभ होती है।
ग्राहक का चेकआउट अनुभव अब आपके पैरामीटर के आधार पर सरल और व्यक्तिगत है।

4. गतिशील भुगतान लिंक

अधिकांश उपयोग के मामलों के लिए चेकआउट सत्रों को प्राथमिकता दें, वे अधिक लचीलापन और नियंत्रण प्रदान करते हैं।
API कॉल या हमारे SDK के माध्यम से ग्राहक विवरण के साथ बनाए गए। यहाँ एक उदाहरण है: गतिशील भुगतान लिंक बनाने के लिए दो APIs हैं: नीचे दिया गया गाइड एक बार के भुगतान लिंक निर्माण के लिए है। सदस्यताओं को एकीकृत करने के लिए विस्तृत निर्देशों के लिए, इस सदस्यता एकीकरण गाइड को देखें।
सुनिश्चित करें कि आप भुगतान लिंक प्राप्त करने के लिए payment_link = true पास कर रहे हैं
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
environment: 'test_mode', // defaults to 'live_mode'
});

async function main() {
const payment = await client.payments.create({
payment_link: true,
billing: { city: 'city', country: 'AF', state: 'state', street: 'street', zipcode: 0 },
customer: { email: '[email protected]', name: 'name' },
product_cart: [{ product_id: 'product_id', quantity: 0 }],
});

console.log(payment.payment_id);
}

main();
भुगतान लिंक बनाने के बाद, अपने ग्राहकों को उनके भुगतान को पूरा करने के लिए रीडायरेक्ट करें।

वेबहुक लागू करना

भुगतान सूचनाएँ प्राप्त करने के लिए एक API एंडपॉइंट सेट करें। यहाँ Next.js का उपयोग करते हुए एक उदाहरण है:
import { Webhook } from "standardwebhooks";
import { headers } from "next/headers";
import { WebhookPayload } from "@/types/api-types";

const webhook = new Webhook(process.env.DODO_WEBHOOK_KEY!); // Replace with your secret key generated from the Dodo Payments Dashboard

export async function POST(request: Request) {
  const headersList = headers();
  const rawBody = await request.text();

  const webhookHeaders = {
    "webhook-id": headersList.get("webhook-id") || "",
    "webhook-signature": headersList.get("webhook-signature") || "",
    "webhook-timestamp": headersList.get("webhook-timestamp") || "",
  };

  await webhook.verify(rawBody, webhookHeaders);
  const payload = JSON.parse(rawBody) as WebhookPayload;
  
  // Process the payload according to your business logic
}
हमारा वेबहुक कार्यान्वयन मानक वेबहुक विनिर्देशन का पालन करता है। वेबहुक प्रकार परिभाषाओं के लिए, हमारे वेबहुक इवेंट गाइड को देखें। आप इस परियोजना को GitHub पर Next.js और TypeScript का उपयोग करते हुए डेमो कार्यान्वयन के साथ देख सकते हैं। आप लाइव कार्यान्वयन यहाँ देख सकते हैं।