Midtrans merupakan salah satu layanan payment gateway di Indonesia yang sangat populer dan banyak digunakan karena kemudahan dalam integrasinya. Midtrans termasuk perusahaan yang berada di dalam Gojek group.
Dengan menggunakan layanan payment gateway di dalam website yang kita buat, maka akan mempermudah kita dalam menangani pembayaran yang dilakukan oleh customer secara otomatis dan tanpa perlu melakukan konfirmasi pembayaran secara manual.
Dan enaknya lagi kita sudah disediakan layanan dengan nama SNAP PAY
, yang akan menampilkan beberapa metode pembayaran yang bisa di pilih oleh customer saat melakukan checkout.
Cara Kerja Midtrans
CATATAN:
Merchant Backend
adalah aplikasi Laravel yang sedang kita buat.Snap Backend
adalah backend service dari Midtrans.
Dari ilustrasi gambar alur kerja payment gatewat (Midtrans) di atas, kurang lebih detail konsepnya seperti berikut ini :
- Pengguna melakukan request checkout ke dalam
Merchant Backend
. Merchant Backend
membuat permintaan api keSnap Backend
untuk mendapatkanSNAP_TOKEN
.Snap Backend
menanggapi permintaan dan mengembalikan response keMerchant Backend
denganSNAP_TOKEN
.Merchant Backend
membuat halaman HTML dan mengirimkannya kembali ke browser.- Pengguna memverifikasi detailnya kemudian mengklik tombol bayar dengan kode JavaScript
snap.pay(SNAP_TOKEN)
. Pengguna kemudian mengisi detail pembayaran dan mengklik tombol konfirmasi. Snap Pay
mengirimkan detail pembayaran keSnap Backend
.Snap Backend
memproses detailnya dan meresponse dengan status pembayaran. kemudianSnap Pay
memanggil kembali dengan status yang di dapatkan.Snap Backend
membuat notifikasi ke dalamMerchant Backend
terkait status biaya.
Langkah 1 - Daftar Akun di Midtrans
Pertama, kita akan melakukan pendaftaran akun di dalam website Midtrans, ini bertujuan agar kita nanti mendapatkan Client Key
dan Server Key
yang digunakan untuk integrasi.
Silahkan buka URL berikut ini dan lakukan pendaftaran dengan mengisi semua informasi yang dibutuhkan : https://dashboard.midtrans.com/register
Silahkan diisi semua informasi yang dibutuhkan. Dan untuk BUSINESS NAME
bisa diisi sembarang, karena masih untuk proses pembelajaran. Jika sudah berhasil register, maka kita akan di arahkan kedalam halaman dashboard Midtrans.
Di dalam halaman dashboard Midtrans terdapat 2 environment, yaitu Sandbox
dan Production
. Disini pastikan kita menggunakan yang jenis Sandbox
, karena masih dalam proses testing. Nanti, jika sudah benar-benar fix dan digunakan secara online, maka kita bisa menggantinya dengan Production
.
Setelah itu, sekarang klik menu PENGATURAN
> ACCESS KEYS
, maka sekarang kita sudah mendapatkan kredensial Merchant ID
, Client Key
dan Server Key
.
Langkah 2 - Installassi Package Midtrans
Sekarang, kita lanjutkan untuk proses installasi package Midtrans di dalam project Laravel yang kita kembangkan. Silahkan jalankan perintah di bawah ini di dalam terminal/CMD dan pastikan menjalankannya di dalam project Laravel.
bashcomposer require midtrans/midtrans-php:2.6.1
Silahkan tunggu proses installasi sampai selesai. Dan pastikan harus terhubung dengan internet, karena package akan diunduh secara online.
REPOSITORY : https://github.com/Midtrans/midtrans-php
Langkah 3 - Konfigurasi Package Midtrans
Sekarang, kita lanjutkan untuk proses konfigurasi Midtrans di dalam project Laravel. Silahkan buka file .env
kemudian tambahkan kode berikut ini :
ini
MIDTRANS_CLIENT_KEY=paste_client_key_midtrans_disini
MIDTRANS_SERVER_KEY=paste_server_key_midtrans_disini
MIDTRANS_IS_PRODUCTION=false
Setelah itu kita akan tambahkan config, dimana config ini akan kita gunakan untuk mendapatkan data dari konfigurasi Midtrans dari file .env
di atas.
Silahkan buat file baru dengan nama midtrans.php
di dalam folder config
, kemudian masukkan kode berikut ini di dalamnya.
php
<?php
return [
'client_key' => env('MIDTRANS_CLIENT_KEY'),
'server_key' => env('MIDTRANS_SERVER_KEY'),
'is_production' => env('MIDTRANS_IS_PRODUCTION', false),
'is_sanitized' => env('MIDTRANS_IS_SANITIZED', true),
'is_3ds' => env('MIDTRANS_IS_3DS', true),
];
Sekarang, kita sudah bisa menggunakan Midtrans di dalam project Laravel yang kita kembangkan.