استخدم جلسات الدفع لإنشاء تجربة دفع آمنة ومستضافة للمدفوعات لمرة واحدة أو الاشتراكات. تقوم بإنشاء جلسة على خادمك، ثم تعيد توجيه العميل إلى checkout_url.
جلسات الدفع صالحة لمدة 24 ساعة بشكل افتراضي. إذا قمت بتمرير confirm=true، فإن الجلسات تكون صالحة لمدة 15 دقيقة ويجب توفير جميع الحقول المطلوبة.
1
إنشاء جلسة دفع
اختر SDK المفضل لديك أو اتصل بواجهة برمجة التطبيقات REST.
للحصول على تجارب دفع متكاملة مدمجة مباشرة في صفحتك، استخدم تكامل الدفع المدمج. يتيح لك ذلك بناء ملخصات الطلبات المخصصة والتحكم الكامل في تخطيط الدفع بينما تتولى Dodo Payments جمع المدفوعات بشكل آمن.
تتيح لك روابط الدفع الثابتة قبول المدفوعات بسرعة من خلال مشاركة رابط بسيط. يمكنك تخصيص تجربة الدفع عن طريق تمرير معلمات الاستعلام لملء تفاصيل العملاء مسبقًا، والتحكم في حقول النموذج، وإضافة بيانات وصفية مخصصة.
1
إنشاء رابط الدفع الخاص بك
ابدأ بعنوان URL الأساسي وأضف معرف المنتج الخاص بك:
يساعد تعطيل الحقول في منع التغييرات غير المقصودة ويضمن اتساق البيانات.
تعيين showDiscounts=false سيعطل ويخفي قسم الخصومات في نموذج الدفع. استخدم هذا إذا كنت ترغب في منع العملاء من إدخال رموز القسيمة أو الرموز الترويجية أثناء الدفع.
حقول بيانات وصفية مخصصة (مثل metadata_orderId=123).
6
مشاركة الرابط
أرسل رابط الدفع المكتمل إلى عميلك. عندما يزورونه، يتم جمع جميع معلمات الاستعلام وتخزينها مع معرف الجلسة. ثم يتم تبسيط عنوان URL ليشمل فقط معلمة الجلسة (على سبيل المثال، ?session=sess_1a2b3c4d). تستمر المعلومات المخزنة عبر تحديثات الصفحة ويمكن الوصول إليها طوال عملية الدفع.
تجربة الدفع للعميل الآن مبسطة ومخصصة بناءً على معلماتك.
يفضل استخدام جلسات الدفع لمعظم حالات الاستخدام، حيث توفر مزيدًا من المرونة والتحكم.
تم إنشاؤها عبر استدعاء API أو SDK الخاص بنا مع تفاصيل العميل. إليك مثال:هناك واجهتان برمجيتان لإنشاء روابط الدفع الديناميكية:
واجهة برمجة التطبيقات لرابط الدفع لمرة واحدة مرجع API
واجهة برمجة التطبيقات لرابط الدفع للاشتراك مرجع API
الدليل أدناه لإنشاء رابط الدفع لمرة واحدة.للحصول على تعليمات مفصلة حول تكامل الاشتراكات، يرجى الرجوع إلى دليل تكامل الاشتراك.
تأكد من أنك تمرر payment_link = true للحصول على رابط الدفع
Node.js SDK
Python SDK
Go SDK
مرجع API
نسخ
import DodoPayments from 'dodopayments';const client = new DodoPayments({bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omittedenvironment: '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();
نسخ
import osfrom dodopayments import DodoPaymentsclient = DodoPayments(bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted (if using same name `DODO_PAYMENTS_API_KEY`)environment="test_mode", # defaults to "live_mode")payment = 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,}],)print(payment.payment_link)
قم بإعداد نقطة نهاية 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 Dashboardexport 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}
تتبع تنفيذ webhook الخاص بنا مواصفات Webhooks القياسية. للحصول على تعريفات أنواع webhook، يرجى الرجوع إلى دليل أحداث Webhook.يمكنك الرجوع إلى هذا المشروع مع تنفيذ تجريبي على GitHub باستخدام Next.js و TypeScript.يمكنك الاطلاع على التنفيذ المباشر هنا.