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 ' ;接下來,使用您的網站 API 金鑰和一個標誌來實例化 SDK,以識別這是即時環境還是測試環境。
$ 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 工作的開發人員嗎?查看我們的職缺,並隨時與我們聯繫!