ferdhika31/ipaymu-php

PHP Client for iPaymu API

0.2 2020-11-27 07:40 UTC

This package is auto-updated.

Last update: 2024-10-29 06:12:13 UTC


README

iPaymu API wrapper written in PHP for access from applications.

Build Status StyleCI Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License

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.