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 autoloader เพื่อโหลดการพึ่งพาคลาสโดยอัตโนมัติ:
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
) – ต้องใช้คีย์ API หากต้องการรันการทดสอบหน่วยจากแพ็คเกจนี้:
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 หรือไม่? ตรวจสอบตำแหน่งงานว่างของเราและติดต่อเราได้เลย!