MultiSafepay هو مزود خدمات دفع هولندي، يعتني بالعقود ومعالجة المعاملات وتحصيل المدفوعات لمجموعة من طرق الدفع المحلية والدولية. ابدأ البيع عبر الإنترنت اليوم وقم بإدارة جميع معاملاتك في مكان واحد!
قم بتشغيل أمر الملحن التالي:
composer require multisafepay/php-sdk
تحذير! لا يعتمد SDK هذا بشكل مباشر على Guzzle أو cURL. بدلاً من ذلك، فإنه يستخدم تجريد العميل PSR-18 وتجريد المصنع PSR-17. يتيح لك هذا اختيار تطبيق PSR-7 وعميل HTTP الذي تريد استخدامه. يمكنك استبدال جميع العملاء دون أي آثار جانبية.
إذا لم يكن لديك تطبيق عميل مثبت، فقم بتشغيل:
composer require guzzlehttp/guzzle
إذا لم يكن لديك تطبيق المصنع مثبتًا، فقم بتشغيل:
composer require http-interop/http-factory-guzzle
يجب أن تكون قد قمت الآن بتثبيت:
استخدم برنامج تحميل Composer التلقائي لتحميل تبعيات الفئة تلقائيًا:
require ' vendor/autoload.php ' ;
بعد ذلك، قم بإنشاء مثيل لـ SDK باستخدام مفتاح API لموقعك وعلامة لتحديد ما إذا كانت هذه هي البيئة المباشرة أو بيئة الاختبار.
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
من SDK، يمكنك الحصول على مديرين مختلفين:
$ multiSafepaySdk -> getTransactionManager ();
$ multiSafepaySdk -> getGatewayManager ();
$ multiSafepaySdk -> getPaymentMethodManager ();
$ multiSafepaySdk -> getIssuerManager ();
$ multiSafepaySdk -> getCategoryManager ();
$ multiSafepaySdk -> getTokenManager ();
$ multiSafepaySdk -> getApiTokenManager ();
يعد مدير المعاملات هو الأكثر أهمية، لأنه يتيح لك إنشاء الطلبات واسترداد الأموال.
use MultiSafepay ValueObject Customer Country ;
use MultiSafepay ValueObject Customer Address ;
use MultiSafepay ValueObject Customer PhoneNumber ;
use MultiSafepay ValueObject Customer EmailAddress ;
use MultiSafepay ValueObject Money ;
use MultiSafepay Api Transactions OrderRequest Arguments CustomerDetails ;
use MultiSafepay Api Transactions OrderRequest Arguments PluginDetails ;
use MultiSafepay Api Transactions OrderRequest Arguments PaymentOptions ;
use MultiSafepay Api Transactions OrderRequest ;
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
$ orderId = ( string ) time ();
$ description = ' Order # ' . $ orderId ;
$ amount = new Money ( 2000 , ' EUR ' ); // Amount must be in cents!!
$ address = ( new Address ())
-> addStreetName ( ' Kraanspoor ' )
-> addStreetNameAdditional ( ' (blue door) ' )
-> addHouseNumber ( ' 39 ' )
-> addZipCode ( ' 1033SC ' )
-> addCity ( ' Amsterdam ' )
-> addState ( ' Noord Holland ' )
-> addCountry ( new Country ( ' NL ' ));
$ customer = ( new CustomerDetails ())
-> addFirstName ( ' John ' )
-> addLastName ( ' Doe ' )
-> addAddress ( $ address )
-> addEmailAddress ( new EmailAddress ( ' [email protected] ' ))
-> addPhoneNumber ( new PhoneNumber ( ' 0208500500 ' ))
-> addLocale ( ' nl_NL ' );
$ pluginDetails = ( new PluginDetails ())
-> addApplicationName ( ' My e-commerce application ' )
-> addApplicationVersion ( ' 0.0.1 ' )
-> addPluginVersion ( ' 1.1.0 ' );
$ paymentOptions = ( new PaymentOptions ())
-> addNotificationUrl ( ' http://www.example.com/client/notification?type=notification ' )
-> addRedirectUrl ( ' http://www.example.com/client/notification?type=redirect ' )
-> addCancelUrl ( ' http://www.example.com/client/notification?type=cancel ' )
-> addCloseWindow ( true );
$ orderRequest = ( new OrderRequest ())
-> addType ( ' redirect ' )
-> addOrderId ( $ orderId )
-> addDescriptionText ( $ description )
-> addMoney ( $ amount )
-> addGatewayCode ( ' IDEAL ' )
-> addCustomer ( $ customer )
-> addDelivery ( $ customer )
-> addPluginDetails ( $ pluginDetails )
-> addPaymentOptions ( $ paymentOptions );
$ transactionManager = $ multiSafepaySdk -> getTransactionManager ()-> create ( $ orderRequest );
$ transactionManager -> getPaymentUrl ();
مثال على استرداد الأموال:
// Refund example.
use MultiSafepay Api Transactions RefundRequest ;
use MultiSafepay ValueObject Money ;
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
$ orderId = XXXXX ; // The order ID of a previously completed transaction
$ refundAmount = new Money ( 2000 , ' EUR ' );
$ transactionManager = $ multiSafepaySdk -> getTransactionManager ();
$ transaction = $ transactionManager -> get ( $ orderId );
$ transactionManager -> refund ( $ transaction , ( new RefundRequest ())-> addMoney ( $ refundAmount ) );
للحصول على أمثلة لبناء الطلبات الكاملة، راجع USAGE.md والاختبارات الوظيفية في tests/Functional/Api/Transactions
.
الوضع الصارم:
يتخطى الوضع غير الصارم (الافتراضي) بعض أخطاء التحقق من الصحة.
مثال: إذا كان هناك عدم تطابق بين عدد المنازل العشرية لإجمالي كمية العناصر الموجودة في كائن ShoppingCart
ومنصة التجارة الإلكترونية الخاصة بك، فسيطرح الوضع الصارم استثناء MultiSafepayExceptionInvalidTotalAmountException
.
يتم إجراء الفحوصات التالية للحفاظ على جودة التعليمات البرمجية:
./vendor/bin/phpcs --standard=phpcs.ruleset.xml .
)./vendor/bin/phpunit
)tests/Unit
)tests/Integration
)tests/Functional
) - مفتاح واجهة برمجة التطبيقات مطلوب لتشغيل اختبارات الوحدة من هذه الحزمة:
composer install
./vendor/bin/phpunit tests/Unit
لتشغيل الاختبارات الوظيفية من هذه الحزمة:
composer install
..env.php.example
إلى .env.php
وأضف مفتاح API لموقعك../vendor/bin/phpunit tests/Functional
يتم تشغيل اختبارات الوحدة والتكامل بدون واجهة برمجة التطبيقات (API)، مما يعني أن العميل يسخر من جميع مكالمات البيانات. للقيام بذلك، يحتوي مجلد tests/fixture-data
على ملفات JSON لتزييف المكالمات. لملء هذا المجلد ببيانات حقيقية، تأكد من أن لديك ملف .env.php
صالح، ثم استخدم الأمر التالي:
php tests/generateApiMocks.php
يؤدي هذا إلى إرسال جميع ملفات JSON التي تم إنشاؤها إلى git، بحيث تكون بمثابة تركيبات. لا يلزم إنشاء الملفات التي لا تُستخدم في الاختبارات.
أنشئ مشكلة في هذا المستودع أو أرسل بريدًا إلكترونيًا إلى[email protected]
إذا قمت بإنشاء طلب سحب لاقتراح تحسين، فسنرسل لك بعض هدايا MultiSafepay تعبيرًا عن شكرك!
ترخيص البرمجيات المفتوحة (OSL 3.0)
هل أنت مطور مهتم بالعمل في MultiSafepay؟ تحقق من فرص العمل لدينا ولا تتردد في الاتصال بنا!