My Course — Membangun Website Food Store Dengan Laravel Filament, Livewire dan Payment Gateway

Installasi dan Konfigurasi Midtrans


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

img

CATATAN:

  1. Merchant Backend adalah aplikasi Laravel yang sedang kita buat.
  2. Snap Backend adalah backend service dari Midtrans.

Dari ilustrasi gambar alur kerja payment gatewat (Midtrans) di atas, kurang lebih detail konsepnya seperti berikut ini :

  1. Pengguna melakukan request checkout ke dalam Merchant Backend.
  2. Merchant Backend membuat permintaan api ke Snap Backend untuk mendapatkan SNAP_TOKEN.
  3. Snap Backend menanggapi permintaan dan mengembalikan response ke Merchant Backend dengan SNAP_TOKEN.
  4. Merchant Backend membuat halaman HTML dan mengirimkannya kembali ke browser.
  5. Pengguna memverifikasi detailnya kemudian mengklik tombol bayar dengan kode JavaScript snap.pay(SNAP_TOKEN). Pengguna kemudian mengisi detail pembayaran dan mengklik tombol konfirmasi.
  6. Snap Pay mengirimkan detail pembayaran ke Snap Backend.
  7. Snap Backend memproses detailnya dan meresponse dengan status pembayaran. kemudian Snap Pay memanggil kembali dengan status yang di dapatkan.
  8. Snap Backend membuat notifikasi ke dalam Merchant 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.

bash
composer 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.