अवलोकन
Next.js minimal boilerplate एक starter app है, जिसमें Dodo Payments पहले से कनेक्ट है। अपनी API keys और product IDs जोड़ें और आपको checkout खोलने वाला pricing page, payment events के लिए webhook endpoint और Customer Portal का link मिल जाएगा।यह boilerplate TypeScript, Tailwind CSS 4 और
@dodopayments/nextjs adaptor के साथ Next.js 16 App Router का उपयोग करता है। किसी मौजूदा app में वही route handlers जोड़ने के लिए Next.js Adaptor देखें।विशेषताएँ
Boilerplate में शामिल हैं:- Quick Setup: Clone से लगभग पाँच मिनट में चलने वाले pricing page तक पहुँचें।
- Checkout:
@dodopayments/nextjsपर बना pre-configured checkout flow। - Pricing Page: Tailwind CSS से styled dark-themed pricing page।
- Webhook Handler: ऐसा endpoint जो प्रत्येक webhook signature को verify करता है और event के लिए आपका code चलाता है।
- Customer Portal: ऐसा header link जो Customer Portal खोलता है, जहाँ customers अपनी subscriptions manage करते हैं।
- TypeScript: Typed product definitions और handlers।
- Pre-filled Checkout: Customer का name और email checkout में भेजता है, ताकि customer को उन्हें दोबारा दर्ज न करना पड़े।
आवश्यकताएँ
शुरू करने से पहले आपके पास ये होना चाहिए:- Node.js 20.9 या बाद का संस्करण, जिसकी Next.js 16 को आवश्यकता है।
- Dodo Payments account, जिससे dashboard में API key और webhook signing secret बनाया जा सके।
Quick Start
1
Clone the Repository
2
Install Dependencies
3
Get API Credentials
Dodo Payments पर sign up करें, फिर dashboard से अपने credentials प्राप्त करें:
- API Key: Dashboard → Developer → API Keys के अंतर्गत key बनाएँ।
- Webhook Key: Dashboard → Developer → Webhooks के अंतर्गत endpoint जोड़ें, फिर उसका signing secret कॉपी करें। Endpoint URL public होना चाहिए और HTTPS का उपयोग करना चाहिए। अपनी machine पर events प्राप्त करने के लिए Webhook Events देखें।
4
Configure Environment Variables
Example file को कॉपी करके root directory में Values को अपने Dodo Payments credentials पर set करें:Route handlers इन variables को पढ़ते हैं:
.env file बनाएँ:DODO_PAYMENTS_API_KEYcheckout और Customer Portal handlers को authenticate करता है।DODO_PAYMENTS_WEBHOOK_KEYwebhook signatures को verify करता है।DODO_PAYMENTS_RETURN_URLवह URL है जहाँ payment के बाद checkout customer को भेजता है।DODO_PAYMENTS_ENVIRONMENT,test_modeयाlive_modeहै।
5
Add Your Products
src/lib/products.ts में sample products को अपने products से replace करें। प्रत्येक product_id को dashboard के Products में मौजूद किसी product की ID पर set करें:name, description, price और features display करता है। Checkout Dodo Payments में product पर set price charge करता है, इसलिए price को उसके साथ sync रखें।6
Run the Development Server
Project Structure
Checkout, Customer Portal और webhook route handlerssrc/app/api/ के अंतर्गत रहते हैं:
Customization
Product Information अपडेट करें
इन चीज़ों को बदलने के लिएsrc/lib/products.ts edit करें:
- Product IDs, जो आपके Dodo Payments dashboard के Products से हैं
- Prices
- Features
- Descriptions
Customer Data पहले से भरें
src/app/components/ProductCard.tsx प्रत्येक checkout request के साथ hardcoded name और email भेजता है। इन्हें signed-in user की details से replace करें:
Customer Portal अपडेट करें
src/app/components/Header.tsx में मौजूद Customer Portal link hardcoded customer ID के साथ /api/customer-portal खोलता है। इसे signed-in user की Dodo Payments customer ID से replace करें:
Webhook Events
src/app/api/webhook/route.ts में मौजूद handler प्रत्येक request को DODO_PAYMENTS_WEBHOOK_KEY से verify करता है, फिर दो events handle करता है:
onSubscriptionActiveतब चलता है जब subscription active हो जाती है (subscription.active)।onPaymentSucceededतब चलता है जब payment सफल हो जाता है (payment.succeeded)।
onSubscriptionCancelled। Next.js Adaptor सभी supported handlers की सूची देता है।
Dodo Payments localhost तक नहीं पहुँच सकता। Local development के लिए अपने local server को expose करने हेतु ngrok जैसे tunnel का उपयोग करें और tunnel URL को अपने webhook endpoint के रूप में इस्तेमाल करें।
Deployment
Production के लिए Build करें
Vercel पर Deploy करें
[DODO_PAYMENTS_RETURN_URL को अपने production URL पर set करें।
Webhook URL अपडेट करें
Deploy करने के बाद Dodo Payments Dashboard में अपना production webhook URL जोड़ें औरexample.com की जगह अपना domain डालें:
DODO_PAYMENTS_WEBHOOK_KEY में कॉपी करें।
Troubleshooting
Module not found or build errors
Module not found or build errors
node_modules और package-lock.json delete करें, फिर dependencies reinstall करें:Checkout redirect fails
Checkout redirect fails
इन common causes की जाँच करें:
- Product ID आपके Dodo Payments dashboard में मौजूद नहीं है।
.envमें API key याDODO_PAYMENTS_ENVIRONMENTगलत है। Test mode key केवलtest_modeके साथ काम करती है।
npm run dev चलाने वाले terminal में error देखें।Webhooks not receiving events
Webhooks not receiving events
Local testing के लिए अपने server को expose करने हेतु ngrok का उपयोग करें:अपने Dodo dashboard में ngrok HTTPS URL के बाद
/api/webhook लगाकर endpoint जोड़ें। उस endpoint का signing secret अपनी .env file में DODO_PAYMENTS_WEBHOOK_KEY में कॉपी करें।Customer portal link doesn't work
Customer portal link doesn't work
src/app/components/Header.tsx में hardcoded CUSTOMER_ID को अपने Dodo Payments dashboard में मौजूद customer की ID से replace करें।Production में इसके बजाय customer ID अपने authentication system और database से प्राप्त करें।अधिक जानकारी
- Dodo Payments Documentation
- Checkout Sessions Documentation
- Webhooks Documentation
- Next.js Adaptor:
Checkout,CustomerPortalऔरWebhookshandlers के options
सहायता
Boilerplate में सहायता के लिए:- Discord community में प्रश्न पूछें।
- GitHub repository में issues report करें और updates follow करें।
- Support team को email करें।