MultiSafepay est un fournisseur néerlandais de services de paiement qui s'occupe des contrats, du traitement des transactions et de la collecte des paiements pour une gamme de méthodes de paiement locales et internationales. Commencez à vendre en ligne dès aujourd'hui et gérez toutes vos transactions en un seul endroit !
Exécutez la commande composer suivante :
composer require multisafepay/php-sdk
AVERTISSEMENT! Ce SDK n'a pas de dépendance directe sur Guzzle ou cURL. Au lieu de cela, il utilise l’abstraction client PSR-18 et l’abstraction usine PSR-17. Cela vous permet de choisir l'implémentation PSR-7 et le client HTTP à utiliser. Vous pouvez remplacer tous les clients sans aucun effet secondaire.
Si aucune implémentation client n'est installée, exécutez :
composer require guzzlehttp/guzzle
Si aucune implémentation d'usine n'est installée, exécutez :
composer require http-interop/http-factory-guzzle
Vous devriez maintenant avoir installé :
Utilisez le chargeur automatique Composer pour charger automatiquement les dépendances de classe :
require ' vendor/autoload.php ' ;
Ensuite, instanciez le SDK avec la clé API de votre site et un indicateur pour identifier s'il s'agit de l'environnement en direct ou de l'environnement de test.
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
Depuis le SDK, vous pouvez obtenir différents gestionnaires :
$ multiSafepaySdk -> getTransactionManager ();
$ multiSafepaySdk -> getGatewayManager ();
$ multiSafepaySdk -> getPaymentMethodManager ();
$ multiSafepaySdk -> getIssuerManager ();
$ multiSafepaySdk -> getCategoryManager ();
$ multiSafepaySdk -> getTokenManager ();
$ multiSafepaySdk -> getApiTokenManager ();
Le gestionnaire de transactions est le plus important, car il vous permet de créer des commandes et des remboursements.
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 ();
Exemple de remboursement :
// 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 ) );
Pour des exemples de création de requêtes complètes, voir USAGE.md et les tests fonctionnels dans tests/Functional/Api/Transactions
.
Mode strict :
Le mode non strict (par défaut) ignore certaines erreurs de validation.
Exemple : s'il existe une différence entre le nombre de décimales du montant total des articles dans l'objet ShoppingCart
et votre plateforme de commerce électronique, le mode strict génère une exception MultiSafepayExceptionInvalidTotalAmountException
.
Les contrôles suivants sont en place pour maintenir la qualité du code :
./vendor/bin/phpcs --standard=phpcs.ruleset.xml .
)./vendor/bin/phpunit
)tests/Unit
)tests/Integration
)tests/Functional
) – Clé API requise Pour exécuter des tests unitaires à partir de ce package :
composer install
./vendor/bin/phpunit tests/Unit
Pour exécuter des tests fonctionnels à partir de ce package :
composer install
..env.php.example
dans .env.php
et ajoutez la clé API de votre site../vendor/bin/phpunit tests/Functional
Les tests unitaires et d'intégration s'exécutent sans l'API, ce qui signifie que le client se moque de tous les appels de données. Pour ce faire, le dossier tests/fixture-data
contient des fichiers JSON pour usurper les appels. Pour remplir ce dossier avec des données réelles, assurez-vous d'avoir un fichier .env.php
valide, puis utilisez la commande suivante :
php tests/generateApiMocks.php
Cela valide tous les fichiers JSON générés dans git, afin qu'ils servent de luminaires. Les fichiers qui ne sont pas utilisés dans les tests n'ont pas besoin d'être générés.
Créez un problème sur ce référentiel ou envoyez un e-mail à [email protected]
Si vous créez une pull request pour suggérer une amélioration, nous vous enverrons des cadeaux MultiSafepay en guise de remerciement !
Licence de logiciel ouvert (OSL 3.0)
Êtes-vous un développeur intéressé à travailler chez MultiSafepay ? Consultez nos offres d'emploi et n'hésitez pas à nous contacter !