MultiSafepay adalah penyedia layanan pembayaran Belanda, yang menangani kontrak, memproses transaksi, dan mengumpulkan pembayaran untuk berbagai metode pembayaran lokal dan internasional. Mulailah berjualan online hari ini dan kelola semua transaksi Anda di satu tempat!
Jalankan perintah komposer berikut:
composer require multisafepay/php-sdk
PERINGATAN! SDK ini tidak memiliki ketergantungan langsung pada Guzzle atau cURL. Sebagai gantinya, ia menggunakan abstraksi klien PSR-18 dan abstraksi pabrik PSR-17. Ini memungkinkan Anda memilih implementasi PSR-7 dan klien HTTP mana yang akan digunakan. Anda dapat mengganti semua klien tanpa efek samping apa pun.
Jika Anda belum menginstal implementasi klien, jalankan:
composer require guzzlehttp/guzzle
Jika Anda belum menginstal implementasi pabrik, jalankan:
composer require http-interop/http-factory-guzzle
Anda sekarang seharusnya sudah menginstal:
Gunakan pemuat otomatis Komposer untuk memuat dependensi kelas secara otomatis:
require ' vendor/autoload.php ' ;
Selanjutnya, buat instance SDK dengan kunci API situs Anda dan tanda untuk mengidentifikasi apakah ini lingkungan langsung atau lingkungan pengujian.
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
Dari SDK, Anda bisa mendapatkan berbagai pengelola:
$ multiSafepaySdk -> getTransactionManager ();
$ multiSafepaySdk -> getGatewayManager ();
$ multiSafepaySdk -> getPaymentMethodManager ();
$ multiSafepaySdk -> getIssuerManager ();
$ multiSafepaySdk -> getCategoryManager ();
$ multiSafepaySdk -> getTokenManager ();
$ multiSafepaySdk -> getApiTokenManager ();
Manajer transaksi adalah yang paling penting, karena memungkinkan Anda membuat pesanan dan pengembalian dana.
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 ();
Contoh pengembalian dana:
// 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 ) );
Untuk contoh pembuatan permintaan lengkap, lihat USAGE.md dan pengujian fungsional di tests/Functional/Api/Transactions
.
Modus ketat:
Mode non-ketat (default) melewatkan beberapa kesalahan validasi.
Contoh: Jika ada ketidakcocokan antara jumlah tempat desimal dari jumlah total item dalam objek ShoppingCart
dan platform e-niaga Anda, mode ketat akan memunculkan pengecualian MultiSafepayExceptionInvalidTotalAmountException
.
Pemeriksaan berikut dilakukan untuk menjaga kualitas kode:
./vendor/bin/phpcs --standard=phpcs.ruleset.xml .
)./vendor/bin/phpunit
)tests/Unit
)tests/Integration
)tests/Functional
) – kunci API diperlukan Untuk menjalankan pengujian unit dari paket ini:
composer install
./vendor/bin/phpunit tests/Unit
Untuk menjalankan tes fungsional dari paket ini:
composer install
..env.php.example
ke .env.php
dan tambahkan kunci API situs Anda../vendor/bin/phpunit tests/Functional
Pengujian unit dan integrasi berjalan tanpa API, yang berarti klien meniru semua panggilan data. Untuk melakukan ini, folder tests/fixture-data
berisi file JSON untuk panggilan spoof. Untuk mengisi folder ini dengan data asli, pastikan Anda memiliki file .env.php
yang valid, lalu gunakan perintah berikut:
php tests/generateApiMocks.php
Ini memasukkan semua file JSON yang dihasilkan ke git, sehingga berfungsi sebagai perlengkapan. File yang tidak digunakan dalam pengujian tidak perlu dibuat.
Buat masalah pada repositori ini atau kirim email ke [email protected]
Jika Anda membuat permintaan tarik untuk menyarankan perbaikan, kami akan mengirimkan beberapa barang curian MultiSafepay sebagai ucapan terima kasih!
Lisensi Perangkat Lunak Terbuka (OSL 3.0)
Apakah Anda seorang pengembang yang tertarik bekerja di MultiSafepay? Lihat lowongan pekerjaan kami dan jangan ragu untuk menghubungi kami!