MultiSafepay はオランダの決済サービス プロバイダーで、契約、取引の処理、国内および国際的なさまざまな支払い方法の代金回収を行います。今すぐオンライン販売を始めて、すべての取引を 1 か所で管理しましょう!
次のコンポーザー コマンドを実行します。
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 ' ;
次に、サイト 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
オブジェクト内のアイテムの合計金額の小数点以下の桁数と e コマース プラットフォームの間に不一致がある場合、厳密モードは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 で働くことに興味のある開発者ですか?求人情報をチェックして、お気軽にお問い合わせください!