ferdhika31 / ipaymu-php
PHP Client for iPaymu API
0.2
2020-11-27 07:40 UTC
Requires
- php: ^7.4
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^7.2
Requires (Dev)
- phpunit/phpunit: ^9.4
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
iPaymu API wrapper written in PHP for access from applications.
Documentation
For the API documentation, please check iPaymu API Documentation.
Installation
Install the package with composer by following command:
composer require ferdhika31/ipaymu-php
Usage
Initialization
Configure package with your account's secret key obtained from iPaymu Dashboard. You can use production or sandbox environment.
<?php use ferdhika31\iPaymuPHP\iPaymu; $config = [ 'env' => 'SANDBOX', // SANDBOX or PRODUCTION 'virtual_account' => 'your_virtual_account', 'api_key' => 'your_api_key', 'notify_uri' => 'http://localhost:8000/notify', // for redirect payment is required 'cancel_uri' => 'http://localhost:8000/cancel', 'return_uri' => 'http://localhost:8000/return' ]; iPaymu::init($config);
See example codes for more details.
Get Balance
<?php use ferdhika31\iPaymuPHP\Balance; $getBalance = Balance::getBalance();
Set Customer
<?php $customer = [ 'name' => 'Dika', 'email' => 'fer@dika.web.id', 'phone' => '083213123332' ]; iPaymu::setCustomer($customer);
Add Product
<?php iPaymu::addProduct([ 'name' => 'Mangga', 'qty' => 2, 'price' => 2500, 'description' => 'Mangga cobian' ]); iPaymu::addProduct([ 'name' => 'Jeruk', 'qty' => 1, 'price' => 1500, 'description' => 'Jeruk haseum' ]);
Create Redirect Payment
<?php use ferdhika31\iPaymuPHP\PaymentRedirect; // optional $payloadTrx = [ 'expired' => 1, // in hours 'comments' => 'Transaction comment here', 'referenceId' => 'TRX202008310001' ]; $redirectPayment = PaymentRedirect::create($payloadTrx);
Create Redirect Payment with Payment Method
<?php use ferdhika31\iPaymuPHP\PaymentRedirect; // optional $payloadTrx = [ 'expired' => 1, // in hours 'comments' => 'Transaction comment here', 'referenceId' => 'TRX202008310001' ]; $redirectPayment = PaymentRedirect::mandiriVA()->create($payloadTrx); $redirectPayment = PaymentRedirect::niagaVA()->create($payloadTrx); $redirectPayment = PaymentRedirect::BNIVA()->create($payloadTrx); $redirectPayment = PaymentRedirect::BAGVA()->create($payloadTrx); $redirectPayment = PaymentRedirect::BCATransfer()->create($payloadTrx); $redirectPayment = PaymentRedirect::QRIS()->create($payloadTrx); $redirectPayment = PaymentRedirect::CStore()->create($payloadTrx); $redirectPayment = PaymentRedirect::creditCard()->create($payloadTrx); $redirectPayment = PaymentRedirect::COD()->create($payloadTrx); $redirectPayment = PaymentRedirect::akulaku()->create($payloadTrx);
Create Direct Payment
<?php use ferdhika31\iPaymuPHP\PaymentDirect; $payloadTrx = [ 'amount' => 5000, // optional 'expired' => 10, 'expiredType' => 'minutes', // in:seconds,minutes,hours,days 'comments' => 'Transaction comment here', 'referenceId' => 'TRX202008310001' ]; // Available channel Virtual Account : bag, bni, cimb (default), mandiri $channel = 'mandiri'; $directPayment = PaymentDirect::VA($channel)->create($payloadTrx); // Available channel Transfer Bank : bca (default) $channel = 'bca'; $directPayment = PaymentDirect::bankTransfer($channel)->create($payloadTrx); // Available channel Convenience Store : indomaret (default), alfamart $channel = 'alfamart'; $directPayment = PaymentDirect::cStore($channel)->create($payloadTrx); // Available channel: linkaja (default) $channel = 'linkaja'; $directPayment = PaymentDirect::QRIS($channel)->create($payloadTrx);
Get Transaction Detail
<?php use ferdhika31\iPaymuPHP\Transaction; $id = 27958; $getTrx = Transaction::getById($id);
Running
Running test suite:
vendor\bin\phpunit tests vendor\bin\phpunit tests\BalanceTest.php
Running examples:
php examples\CheckBalanceExample.php
Contributing
For any requests, bugs, or comments, please open an issue or submit a pull request.