MultiSafepay es un proveedor de servicios de pago holandés que se encarga de contratos, procesar transacciones y cobrar pagos para una variedad de métodos de pago locales e internacionales. ¡Comience a vender en línea hoy y administre todas sus transacciones en un solo lugar!
Ejecute el siguiente comando del compositor:
composer require multisafepay/php-sdk
¡ADVERTENCIA! Este SDK no depende directamente de Guzzle o cURL. En su lugar, utiliza la abstracción de cliente PSR-18 y la abstracción de fábrica PSR-17. Esto le permite elegir qué implementación de PSR-7 y cliente HTTP usar. Puede reemplazar a todos los clientes sin efectos secundarios.
Si no tiene instalada una implementación de cliente, ejecute:
composer require guzzlehttp/guzzle
Si no tiene instalada una implementación de fábrica, ejecute:
composer require http-interop/http-factory-guzzle
Ahora deberías haber instalado:
Utilice el cargador automático de Composer para cargar automáticamente las dependencias de clases:
require ' vendor/autoload.php ' ;
A continuación, cree una instancia del SDK con la clave API de su sitio y una marca para identificar si se trata del entorno en vivo o de prueba.
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
Desde el SDK, puedes obtener varios administradores:
$ multiSafepaySdk -> getTransactionManager ();
$ multiSafepaySdk -> getGatewayManager ();
$ multiSafepaySdk -> getPaymentMethodManager ();
$ multiSafepaySdk -> getIssuerManager ();
$ multiSafepaySdk -> getCategoryManager ();
$ multiSafepaySdk -> getTokenManager ();
$ multiSafepaySdk -> getApiTokenManager ();
El administrador de transacciones es el más importante, porque te permite crear pedidos y reembolsos.
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 ();
Ejemplo de reembolso:
// 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 ) );
Para ver ejemplos de cómo crear solicitudes completas, consulte USAGE.md y las pruebas funcionales en tests/Functional/Api/Transactions
.
Modo estricto:
El modo no estricto (predeterminado) omite algunos errores de validación.
Ejemplo: si hay una discrepancia entre el número de decimales del importe total de los artículos en el objeto ShoppingCart
y su plataforma de comercio electrónico, el modo estricto genera una excepción MultiSafepayExceptionInvalidTotalAmountException
.
Se implementan las siguientes comprobaciones para mantener la calidad del código:
./vendor/bin/phpcs --standard=phpcs.ruleset.xml .
)./vendor/bin/phpunit
)tests/Unit
)tests/Integration
)tests/Functional
): se requiere clave API Para ejecutar pruebas unitarias desde este paquete:
composer install
./vendor/bin/phpunit tests/Unit
Para ejecutar pruebas funcionales desde este paquete:
composer install
..env.php.example
a .env.php
y agregue la clave API de su sitio../vendor/bin/phpunit tests/Functional
Las pruebas unitarias y de integración se ejecutan sin la API, lo que significa que el cliente se burla de todas las llamadas de datos. Para hacer esto, la carpeta tests/fixture-data
contiene archivos JSON para falsificar llamadas. Para llenar esta carpeta con datos reales, asegúrese de tener un archivo .env.php
válido y luego use el siguiente comando:
php tests/generateApiMocks.php
Esto envía todos los archivos JSON generados a git, para que sirvan como accesorios. No es necesario generar los archivos que no se utilizan en las pruebas.
Cree un problema en este repositorio o envíe un correo electrónico a [email protected]
Si crea una solicitud de extracción para sugerir una mejora, le enviaremos un obsequio de MultiSafepay como agradecimiento.
Licencia de software abierta (OSL 3.0)
¿Es usted un desarrollador interesado en trabajar en MultiSafepay? ¡Consulta nuestras ofertas de trabajo y no dudes en ponerte en contacto!