استخدم جلسات الدفع لإنشاء تجربة دفع آمنة ومستضافة للمدفوعات لمرة واحدة أو الاشتراكات. تقوم بإنشاء جلسة على خادمك، ثم تعيد توجيه العميل إلى checkout_url.
جلسات الدفع صالحة لمدة 24 ساعة بشكل افتراضي. إذا قمت بتمرير confirm=true، فإن الجلسات تكون صالحة لمدة 15 دقيقة ويجب توفير جميع الحقول المطلوبة.
1
إنشاء جلسة دفع
اختر SDK المفضل لديك أو اتصل بواجهة برمجة التطبيقات REST.
تتيح لك روابط الدفع الثابتة قبول المدفوعات بسرعة من خلال مشاركة عنوان URL بسيط. يمكنك تخصيص تجربة الدفع عن طريق تمرير معلمات الاستعلام لملء تفاصيل العميل مسبقًا، والتحكم في حقول النموذج، وإضافة بيانات وصفية مخصصة.
1
إنشاء رابط الدفع الخاص بك
ابدأ بعنوان URL الأساسي وأضف معرف المنتج الخاص بك:
يساعد تعطيل الحقول في منع التغييرات غير المقصودة وضمان اتساق البيانات.
تعيين showDiscounts=false سيعطل ويخفي قسم الخصومات في نموذج الدفع. استخدم هذا إذا كنت ترغب في منع العملاء من إدخال رموز القسيمة أو الرموز الترويجية أثناء الدفع.
حقول بيانات وصفية مخصصة (مثل metadata_orderId=123).
6
مشاركة الرابط
أرسل رابط الدفع المكتمل إلى عميلك. عندما يزورونه، يتم جمع جميع معلمات الاستعلام وتخزينها مع معرف الجلسة. ثم يتم تبسيط عنوان URL ليشمل فقط معلمة الجلسة (على سبيل المثال، ?session=sess_1a2b3c4d). تستمر المعلومات المخزنة عبر تحديثات الصفحة وتكون متاحة طوال عملية الدفع.
تجربة الدفع للعميل الآن سلسة ومخصصة بناءً على معلماتك.
الدليل أدناه هو لإنشاء رابط الدفع لمرة واحدة.للحصول على تعليمات مفصلة حول دمج الاشتراكات، راجع دليل تكامل الاشتراك.
تأكد من أنك تمرر 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}
تتبع تنفيذ الويب هوك لدينا مواصفات الويب هوكس القياسية. للحصول على تعريفات أنواع الويب هوك، راجع دليل أحداث الويب هوك.يمكنك الرجوع إلى هذا المشروع مع تنفيذ تجريبي على GitHub باستخدام Next.js وTypeScript.يمكنك الاطلاع على التنفيذ المباشر هنا.