MultiSafepay é um provedor holandês de serviços de pagamento que cuida de contratos, processa transações e cobra pagamentos para uma variedade de métodos de pagamento locais e internacionais. Comece a vender online hoje e gerencie todas as suas transações em um só lugar!
Execute o seguinte comando do compositor:
composer require multisafepay/php-sdk
AVISO! Este SDK não depende diretamente do Guzzle ou cURL. Em vez disso, ele usa a abstração de cliente PSR-18 e a abstração de fábrica PSR-17. Isso permite escolher qual implementação PSR-7 e cliente HTTP usar. Você pode substituir todos os clientes sem quaisquer efeitos colaterais.
Se você não tiver uma implementação de cliente instalada, execute:
composer require guzzlehttp/guzzle
Se você não tiver uma implementação de fábrica instalada, execute:
composer require http-interop/http-factory-guzzle
Agora você deve ter instalado:
Use o autoloader do Composer para carregar automaticamente as dependências de classe:
require ' vendor/autoload.php ' ;
Em seguida, instancie o SDK com a chave de API do seu site e um sinalizador para identificar se este é o ambiente ativo ou de teste.
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
No SDK, você pode obter vários gerenciadores:
$ multiSafepaySdk -> getTransactionManager ();
$ multiSafepaySdk -> getGatewayManager ();
$ multiSafepaySdk -> getPaymentMethodManager ();
$ multiSafepaySdk -> getIssuerManager ();
$ multiSafepaySdk -> getCategoryManager ();
$ multiSafepaySdk -> getTokenManager ();
$ multiSafepaySdk -> getApiTokenManager ();
O gerenciador de transações é o mais importante, pois permite criar pedidos e 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 ();
Exemplo 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 obter exemplos de construção de solicitações completas, consulte USAGE.md e os testes funcionais em tests/Functional/Api/Transactions
.
Modo estrito:
O modo não estrito (padrão) ignora alguns erros de validação.
Exemplo: Se houver uma incompatibilidade entre o número de casas decimais do valor total dos itens no objeto ShoppingCart
e sua plataforma de comércio eletrônico, o modo estrito lança uma exceção MultiSafepayExceptionInvalidTotalAmountException
.
As seguintes verificações estão em vigor para manter a qualidade do código:
./vendor/bin/phpcs --standard=phpcs.ruleset.xml .
)./vendor/bin/phpunit
)tests/Unit
)tests/Integration
)tests/Functional
) – chave de API necessária Para executar testes de unidade deste pacote:
composer install
./vendor/bin/phpunit tests/Unit
Para executar testes funcionais deste pacote:
composer install
..env.php.example
para .env.php
e adicione a chave API do seu site../vendor/bin/phpunit tests/Functional
Os testes de unidade e integração são executados sem a API, o que significa que o cliente está simulando todas as chamadas de dados. Para fazer isso, a pasta tests/fixture-data
contém arquivos JSON para falsificar chamadas. Para preencher esta pasta com dados reais, certifique-se de ter um arquivo .env.php
válido e use o seguinte comando:
php tests/generateApiMocks.php
Isso confirma todos os arquivos JSON gerados no git, para que sirvam como acessórios. Arquivos que não são usados em testes não precisam ser gerados.
Crie um problema neste repositório ou envie um e-mail para integraçã[email protected]
Se você criar uma solicitação pull para sugerir uma melhoria, enviaremos alguns brindes do MultiSafepay como forma de agradecimento!
Licença de Software Aberto (OSL 3.0)
Você é um desenvolvedor interessado em trabalhar na MultiSafepay? Confira nossas vagas de emprego e fique à vontade para entrar em contato!