دمج مدفوعات دودي في تطبيقات PHP الخاصة بك باستخدام SDK حديث متوافق مع PSR-4
يوفر SDK PHP طريقة قوية ومرنة لدمج مدفوعات دودي في تطبيقات PHP الخاصة بك. تم بناؤه وفقًا لمعايير PHP الحديثة مع تحميل تلقائي متوافق مع PSR-4، ويقدم تغطية اختبار شاملة ووثائق مفصلة.
مكتبة واجهة برمجة التطبيقات PHP الخاصة بـ Dodo Payments في النسخة التجريبية حاليًا. نحن متحمسون لتجربتك معها! يرجى مشاركة أي اقتراحات أو تقارير عن الأخطاء أو طلبات الميزات من خلال تقديم مشكلة.
<?phpuse Dodopayments\Client;$client = new Client( bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token', // use 'https://test.dodopayments.com' for test mode baseUrl: 'https://live.dodopayments.com');$checkoutSessionResponse = $client->checkoutSessions->create( productCart: [["productID" => "product_id", "quantity" => 1]]);var_dump($checkoutSessionResponse->session_id);
قم بتخزين مفاتيح واجهة برمجة التطبيقات الخاصة بك بشكل آمن باستخدام متغيرات البيئة. لا تعرضها أبدًا في قاعدة الشيفرة الخاصة بك أو تلتزم بها في التحكم في الإصدارات.
يستخدم SDK معلمات مسماة لتحديد الوسائط الاختيارية. يمكنك تهيئة كائنات القيمة باستخدام المُنشئ الثابت with:
نسخ
<?phpuse Dodopayments\Customers\AttachExistingCustomer;// Recommended: Use static 'with' constructor with named parameters$customer = AttachExistingCustomer::with(customerID: "customer_id");
المُنشئون متاحون أيضًا كنمط بديل:
نسخ
<?phpuse Dodopayments\Customers\AttachExistingCustomer;// Alternative: Use builder pattern$customer = (new AttachExistingCustomer)->withCustomerID("customer_id");
$page = $client->payments->list();var_dump($page);// Fetch items from the current pageforeach ($page->getItems() as $item) { var_dump($item->brand_id);}// Auto-paginate: fetch items from all pagesforeach ($page->pagingEachItem() as $item) { var_dump($item->brand_id);}
عندما لا تتمكن المكتبة من الاتصال بـ API أو تتلقى رمز حالة غير ناجح (4xx أو 5xx)، يتم طرح فئة فرعية من APIException:
نسخ
<?phpuse Dodopayments\Core\Exceptions\APIConnectionException;use Dodopayments\Core\Exceptions\RateLimitException;use Dodopayments\Core\Exceptions\APIStatusException;try { $checkoutSessionResponse = $client->checkoutSessions->create( productCart: [["productID" => "product_id", "quantity" => 1]] );} catch (APIConnectionException $e) { echo "The server could not be reached", PHP_EOL; var_dump($e->getPrevious());} catch (RateLimitException $_) { echo "A 429 status code was received; we should back off a bit.", PHP_EOL;} catch (APIStatusException $e) { echo "Another non-200-range status code was received", PHP_EOL; echo $e->getMessage();}