Gimana cara integrasi Midtrans di laravel/PHP kayak sistem sekolah koding penasaran saya....
@Nami
24 Kontribusi 1 Poin
Dipost: 4 tahun yang lalu Update 2 tahun yang lalu
Jawaban
Jadi buat akun developer/sandbox Buat akun payment gateway Trus ngoding //api-docs.midtrans.com/ API. Tapi saya pakainya buat WordPress dan API payment gateway lain [PayPal, Authorize.Net, Stripe]
@Astried
9 Kontribusi 3 Poin
Dipost: 4 tahun yang lalu Update 4 tahun yang lalu
Pake composer kak, bisa di lihat github midtrans nya: //github.com/midtrans/midtrans-php
Login untuk gabung berdiskusi
Melihat judul postingan ini, mungkin teman-teman sudah bisa membaca apa isi dari postingan kali ini. Ya, percobaan saya kali ini adalah integrasi midtrans di aplikasi yang dibangun menggunakan PHP. Midtrans ini saya gunakan sebagai payment gateway untuk menangani proses pembayaran. Karena tujuan awalnya itu untuk mempelajari cara kerja integrasi midtrans, jadi aplikasi yang saya jadikan studi kasus itu sederhana. Selain itu, di sini saya hanya menggunakan PHP native dan belum menggunakan framework apapun. Untuk integrasi midtrans dengan framework bisa kita bahas di lain waktu.
Studi kasus postingan kali ini cukup sederhana. Hanya ada tampilan daftar item yang dibeli dan tombol checkout, lalu ada proses pembayaran, lalu menerima notifikasi dari midtrans dan selesai. Ya, sesuai dengan judulnya aplikasi payment sederhana menggunakan PHP dan midtrans.
Ada beberapa tahapan untuk membangun aplikasi payment sederhana menggunakan PHP dan midtrans:
- Step 1. Persiapan
- Step 2. Create Halaman Checkout
- Step 3. Create Checkut Process
- Step 4. Create Notification Handler
- Step 5. Uji Coba
Teman-teman ingin coba juga? Yuk, kita mulai.
Persiapan
Sebelum mengikuti tutorial ini, ada beberapa hal yang harus kita persiapkan:
Download dan Setup NGROK
Untuk keperluan uji coba menggunakan midtrans, aplikasi kita itu harus terhubung ke internet. Kabar baiknya kita bisa menggunakan NGROK untuk mengatasi problem tersebut. Teman-teman bisa coba mendaftar dulu untuk masuk ke dashboard NGROK dan mendapatkan authtoken.
Selanjutnya kita download terlebih dahulu ngrok. Kita bisa download langsung di web resminya. Setelah ngrok kita download [dengan nama file ngrok.zip], kita unzip ngrok.zip. Buka terminal lalu run command
di bawah ini.
unzip /path/to/ngrok.zip
Kita bisa lihat ada file baru
ngrok
. Selanjutnya kita run ngrok
, lalu kita hubungkan ke akun kita menggunakan authtoken.
ngrok authtoken
Authtoken-nya ada di menu Getting Started > Your Authtoken. Sampai tahapan ini pengaturan ngrok
sudah selesai, nanti kita coba gunakan untuk keperluan uji coba aplikasi.
Mendapatkan Midtrans API Access Key
Teman-teman harus punya API access key midtrans terlebih dahulu. Untuk mendapatkan key tersebut, teman-teman daftar terlebih dahulu dan selesaikan
pendaftaran. Setelah itu masuk ke halaman dashboard dengan environtment sandbox
[bisa lihat di sidebar ada opsi untuk mengubah environment]. Di dalam halaman dashboard, masuk ke menu Settings [atau Pengaturan] lalu pilih sub menu Access Key.
Di halaman Access Key, terdapat Merchant ID, Client Key dan Server Key. Nanti kita akan pakai ketiganya, untuk client key nanti kita gunakan untuk authorization di front end, sedangkan Server Key untuk authorization di bagian backend.
Keterangan: Ada baiknya key ini tidak dibagikan kesiapapun, terutama Server Key.
Setup Codelab
Codelab ini kita gunakan untuk project payment sederhana menggunakan PHP dan midtrans. Sekarang kita akan buat folder khusus project kita. Buka terminal lalu buat folder baru.
mkdir payment-php-midtrans
lalu masuk folder yang baru saja kita buat.
cd payment-php-midtrans
Selanjutnya kita install package yang meng-handle integrasi dengan midtrans.
composer require midtrans/midtrans-php
Untuk menggunakan api key yang sudah kita dapatkan
di tahapan sebelumnya, kita akan menggunakan file .env
untuk menyimpan key. Jadi kita coba install terlebih dahulu package untuk membaca variable dari .env
.
composer require vlucas/phpdotenv
Setelah package selesai terinstall, buat file baru dengan nama .env
. Lalu kita masukan merchant id dan juga kedua api key midtrans.
MIDTRANS_MERCHANT_ID=isi-dengan-merchant-id
MIDTRANS_CLIENT_KEY=SB-Mid-client-isi-dengan-key-nya
MIDTRANS_SERVER_KEY=SB-Mid-server-isi-dengan-key-nya
Keterangan: Api Key yang kita pakai untuk environment sandbox ya.. bukan untuk production.
Ini tahapan opsional, jaga-jaga kalau aplikasinya diupload
ke github. Buat file baru dengan nama .gitignore
, lalu kita ketik beberapa file yang akan kita ignore apabila menggunakan git
.
.env
log/*
vendor
Oke, codelab untuk aplikasi payment sederhana sudah selesai.
Create Halaman Checkout
Halaman ini akan menampilkan halaman untuk checkout ketika kita belanja di online store atau pun market place. Untuk membuat halaman checkout, buat file baru dengan nama index.php
, lalu kita ketik baris kode berikut ini.
Integrasi midtrans di aplikasi payment sederhana - qadrlabs.com
Cart:
- Ebook Belajar PHP OOP at qadrLabs x @100000
- Ebook Belajar Laravel 8 at qadrLabs x @180000
Total: Rp 280.000,00
Checkout | Integrasi midtrans di aplikasi payment sederhana - qadrlabs.com
Pay!
JSON result will appear here after payment:
',
... kode lainnya
]
Selanjutnya coba klik button Pay!
. Kita bisa lihat ada interface untuk melakukan pembayaran. Pilih Continue,
lalu pilih metode pembayaran [misalnya Mandiri], lalu klik SEE ACCOUNT NUMBER. Setelah itu kita bisa lihat Company Code
dan juga Payment Code
. Keterangan: ini hanya uji coba jadi tidak perlu mengirim uang betulan, sekali lagi mengingatkan jangan coba mengirim uang betulan ya.
Nah ketika selesai proses di atas, midtrans akan mengirimkan HTTP[S] POST notification dan kita bisa lihat di folder log
terdapat file .txt
, tanda notication handler kita berjalan dengan baik.
Penutup
Pada tutorial kali ini, yaitu membuat aplikasi payment sederhana menggunakan PHP dan midtrans, ada beberapa hal yang kita pelajari. Dimulai dari proses instalasi API Client dari midtrans sampai dengan uji coba proses pembayaran menggunakan built-in interface atau snap.
Berbeda dengan tutorial sebelumnya, aplikasi kita harus terhubung ke internet ketika proses uji coba, karena harus menerima notifikasi via HTTP[S] POST atau webhook dari midtrans. Di sini kita sudah coba
menggunakan ngrok untuk tunneling, supaya aplikasi dapat diakses lewat internet dan supaya HTTP[S] POST dapat dihandle langsung oleh notification-handler. Selain itu, untuk mengetahui apakah proses pembayaran melalui midtrans berhasil atau gagal, kita sudah coba untuk menuliskannya ke dalam file .txt
dan setelah uji coba kita bisa lihat beberapa file .txt
setiap proses pembayaran atau terjadinya perubahan status transaksi.
Tertarik untuk eksplorasi lebih jauh? Selamat bereksperimen dan tetap semangat berkarya.