Hubungkan ke payment gateway pilihan dengan berbagai kemudahan dalam instalasi dan switch ke payment gateway lain dikemudian hari.
Saat ini pustaka hanya mendukung integrasi ke beberapa penyedia pembayaran. Jika Anda ingin turut serta mengembangkan pustaka dengan menambah dukungan untuk penyedia pembayaran lain silakan ajukan permintaan. Penyedia pembayaran yang didukung bisa bertambah dikemudian hari.
Penyedia pembayaran yang didukung saat ini:
- Midtrans (MidtransPayment)
composer require cloudbadak/payment-hubGunakan perintah ini untuk mengambil data saldo dari vendor yang dipilih (tidak semua penyedia pembayaran mendukung fitur cek saldo).
Berikut penyedia pembayaran yang mendukung cek saldo:
- iPaymu (IpaymuPayment)
- Xendit (XenditPayment)
use Cloudbadak\PaymentHub\PaymentHub;
use Cloudbadak\PaymentHub\Providers\IpaymuPayment; // gunakan sesuai payment provider yang dipakai
$paymentHub = new PaymentHub(new IpaymuPayment());
$balance = (string) $paymentHub->balance();Gunakan kelas penyedia pembayaran pada konstruktor PaymentHub, misalkan MidtransPayment. Semua metode pembayaran mengembalikan data objek Cloudbadak\PaymentHub\Data\PaymentResponse.
- Inisialisasi kelas yang dibutuhkan
use Cloudbadak\PaymentHub\PaymentHub;
use Cloudbadak\PaymentHub\Data\PaymentRequest;
use Cloudbadak\PaymentHub\Data\PaymentResponse;
// gunakan sesuai payment provider yang dipakai
use Cloudbadak\PaymentHub\Providers\MidtransPayment;- Membuat objek payment request
$orderId = "[unique_id]";
$amount = 100000;
$order = new PaymentRequest($orderId, $amount);- Memilih metode pembayaran
use Cloudbadak\PaymentHub\Enums\BankCode;
use Cloudbadak\PaymentHub\Enums\EWalletCode;
use Cloudbadak\PaymentHub\Enums\OutletCode;
use Cloudbadak\PaymentHub\Enums\QRPaymentCode;
use Cloudbadak\PaymentHub\Enums\CardlessCreditCode;
// jika pakai virtual_account
$order->setBank(BankCode::MANDIRI);
// jika pakai e-wallet
$order->setWallet(EWalletCode::OVO);
// jika pakai outlet
$order->setOutlet(OutletCode::ALFAMART);
// jika pakai qris
$order->setQRPayment(QRPaymentCode::QRIS);
// jika pakai credit card
$order->setCardTokenId("token_id");
// jika pakai pay later
$order->setCardlessCredit(CardlessCreditCode::AKULAKU);- Menambahkan data customer (opsional)
use Cloudbadak\PaymentHub\Data\Customer;
$customer = new Customer(
"cust_id",
"Nama Depan"
"Nama Belakang",
"email@example.com",
"08xxx"
);
$order->setCustomer($customer);- Menambahkan data items (opsional)
use Cloudbadak\PaymentHub\Data\Item;
$items = [
new Item("id", "Nama Produk 1", "Deskripsi 1", 1, 100000),
new Item("id", "Nama Produk 2", "Deskripsi 2", 2, 50000),
]
$order->setItems($items);- Menambahkan data seller (opsional)
use Cloudbadak\PaymentHub\Data\Seller;
$seller = new Seller("id", "Nama Toko", "email@example.com", "08xxx");
$order->setSeller($seller);- Melakukan request pembayaran
$paymentHub = new PaymentHub(new MidtransPayment());
$response = $paymentHub->charge($order);Gunakan ini untuk mengambil data transaksi. Semua metode pembayaran mengembalikan data objek Cloudbadak\PaymentHub\Data\PaymentResponse.
$paymentHub = new PaymentHub(new MidtransPayment());
$response = $paymentHub->get('[order_id]');Gunakan ini untuk memproses, validasi, dan mengambil data dari webhook. Semua metode pembayaran mengembalikan data objek Cloudbadak\PaymentHub\Data\PaymentResponse.
$paymentHub = new PaymentHub(new MidtransPayment());
$response = $paymentHub->webhook();ENVIRONMENT yang tersedia di pustaka ini hanya development dan production. Silakan atur pada konfigurasi *_ENVIRONMENT.
- Midtrans
MIDTRANS_ENVIRONMENT = development
MIDTRANS_SERVER_KEY = server_key
MIDTRANS_CLIENT_KEY = client_key