Payment Gateway Xendit di Laravel

Payment Gateway merupakan cara untuk melakukan pembayaran secara otomatis pada transaksi jual beli yang sifatnya online dengan melakukan transfer pada rekening tertentu. Salah satu layanan payment gateway yang dapat kita gunakan adalah Xendit.

Xendit merupakan payment gateway yang dapat kita terapkan pada media online seperti website atau pun yang berbasis aplikasi mobile dengan fitur e-commerce / transaksi jual beli yang memanfaatkan layanan data API yang diberikan oleh pihak Xendit.

Pada dasarnya penerapan payment gateway Xendit ini dapat kita terapkan ke beberapa framework ataupun bahasa pemgrograman pemgembangan web pada umumnya, hanya saja kali ini saya akan memberikan contoh penerapannya pada framework PHP Laravel.

Dan perlu diperhatikan contoh ini terbatas pada mode test, namun jika sudah paham penerapan pada mode test ini, maka 98% juga bisa mengimplementasikan pada mode real penggunaan untuk website.

Langkah Pertama
Lakukan Installasi Laravel dengan menggunakan composer untuk mendapatkan update laravel terbaru, juga buat database dan konfigurasi file .env (asumsi, jika teman-teman sudah akan membuat payment gateway tentu sudah paham penyelesaian langkah pertama ini. Jika belum bisa melihat tutorialnya di dokumentasi laravel)

Langkah Kedua
Registrasi akun pada Website Xendit, selesaikan proses pendaftaran sampai ke tahap verifikasi email, disana terdapat dokumentasi lengkap penjelasan cara kerja layanan Xendit dan dokumentasi penggunaan.

Untuk penggunaan API pada realnya nanti teman-teman perlu membuat/mengenerate API Key Private pada Website akun Xendit, namun untuk mode Test ini dapat menggunakan API Key Private default dari Xendit. Baca dokumentasi API reference.

Langkah Ketiga, dst
Lakukan installasi package Xendit, untuk mendapatkan prosedur Curl atau API yang disediakan dengan menggunakan composer.

composer require xendit/xendit-php-clients

Jika sudah cek folder vendor, maka akan terdapat folder xendit disana dan silahkan buka file XenditPHPClient.php

Xendit folder in Laravel

Nah disana terdapat beberapa fungsi/function yang dapat digunakan pada controller Laravel, semisal creatInvoice,getVirtualAccountBanks, createCallbackVirtualAccount nah untuk lebih mudahnya bisa langsung copy paste fungsinya dan letakan di Controller.

Contoh menggunakan function getBalance

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class OrderController extends Controller
{
    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */

     function __construct () {
       $options['secret_api_key']='xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==';
       $this->server_domain = 'https://api.xendit.co';
       $this->secret_api_key = $options['secret_api_key'];
     }

     function getBalance () {
         $curl = curl_init();

         $headers = array();
         $headers[] = 'Content-Type: application/json';

         $end_point = $this->server_domain.'/balance';

         curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
         curl_setopt($curl, CURLOPT_USERPWD, $this->secret_api_key.":");
         curl_setopt($curl, CURLOPT_URL, $end_point);
         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

         $response = curl_exec($curl);
         curl_close($curl);

         $responseObject = json_decode($response, true);
         return $responseObject;
     }
}

Kemudian, atur url untuk memanggilnya pada folder route->web.php

Route::get('/', function () {
    return view('welcome');
});
Route::get('/api','[email protected]');

Nah jika sudah, dan berhasil makan tampilan data akan seperti berikut ini.

data balance

berikutnya tinggal kita gunakan saja data-data json yang berhasil kita panggil, misal menjadi data id_transaksi, nama_merchant, totalbayar, bataspembayaraan dan yang lainnya sesuai data API yang diberikan oleh Xendit.

Nah berikut merupakan contoh penerapan secara lengkap yang sudah saya lakukan, Mulai dari

  • Form Order
  • Konfirmasi Data
  • Invoice Pembayaran
  • Tatacara Pembayaran
  • Transaksi Berhasil

Semua itu dalam mode test data, jadi dapat dilakukan secara gratis untuk coba-coba dan lebih memahami cara kerja dari payment gateway Xendit.

Tentu tutorial belum lengkap dan jelas karena saya buatnya juga sebatas yang ada dalam pikiran saya dan tidak memaksimalkan konten, intinya bisa dipahami, dan jika ada yang perlu ditanyakan langsung saja di kolom komentar ya… Terima kasih.

12 Comments

  1. Permisi juga, saya coba di atas getBalance nya, juga tidak keluar apa-apa. Kalau bisa, saya butuh bimbingan lewat pm). Terima kasih dan maaf merepotkan

  2. makasih banget mas udah share tutorialnya,
    source code untuk tutorial ini udah ada belum ya mas?? saya cari diartikel ini belum nemu soalnya

Leave a Reply

Your email address will not be published. Required fields are marked *