Logo Aplikasi

SnapProxy v1.0.0

Proxy Gateway Midtrans

SnapProxy adalah sebuah aplikasi proxy gateway yang dirancang untuk mempermudah integrasi layanan pembayaran menggunakan Midtrans Payment Gateway di lingkungan pengembangan lokal.

Midtrans secara default mewajibkan penggunaan protokol HTTPS untuk proses otentikasi dan pembuatan Snap Token. Hal ini seringkali menyulitkan developer yang melakukan uji coba di lingkungan http://localhost

Dengan SnapProxy, permasalahan tersebut dapat diatasi melalui mekanisme perantara (reverse proxy) yang aman dan transparan. Aplikasi ini bertindak sebagai jembatan antara aplikasi lokal developer (yang berjalan di HTTP) dengan server Midtrans (yang mewajibkan HTTPS).

Fitur Utama :

  1. Mengalihkan request dari localhost tanpa harus memasang SSL sendiri.
  2. Developer cukup mengarahkan request API ke SnapProxy, kemudian sistem meneruskan ke Midtrans.
  3. Memungkinkan pengujian Snap Token, transaksi, dan callback tanpa perlu deploy ke server ber-SSL.
  4. Mendukung pencatatan request/response untuk mempermudah proses debugging.
  5. Hanya perlu mengatur API Key Midtrans dan endpoint proxy.

Manfaat :

  1. Mempercepat proses development & testing integrasi Midtrans.
  2. Menghilangkan kebutuhan server SSL lokal yang rumit.
  3. Menjadi solusi ringan dan praktis untuk tim IT dan developer yang ingin menjaga kesesuaian dengan standar keamanan Midtrans tanpa menghambat workflow pengembangan.

Topologi Sistem Gambar 1. Tologoi Sistem
Penjelasan alur sistem:
  • Developer coding & testing aplikasi di http://localhost.
  • Saat butuh Snap Token, aplikasi tidak bisa langsung request ke Midtrans (karena Midtrans hanya izinkan HTTPS).
  • Maka aplikasi local mengirim request ke Proxy (SnapBridge) yang sudah menggunakan HTTPS.
  • SnapBridge akan meneruskan request ke Midtrans API dengan API Key yang aman tersimpan di server.
  • Midtrans mengembalikan Snap Token ke SnapBridge.
  • SnapBridge meneruskan token itu kembali ke aplikasi local.

Aplikasi ini dikembangkan menggunakan beberapa perangkat lunak pendukung sebagai berikut :
  • Wampserver 3.3.7
  • PHP 8.0.30
  • MySQL 9.1.0
  • Apache 2.4.62.1
Untuk penggunaan versi diluar uraian di atas mungkin tidak kompetebel.

Penting!
Aplikasi ini hanya akan bisa berjalan dengan baik pada webserver dengan koneksi aman (dilengkapi dengan SSL) menggunakan https.
Disarankan untuk menggunakan web hosting atau VPS yang memiliki sertifikat SSL dengan koneksi aman, kemudian anda bisa menggunakan endpoint aplikasi ini (sesuai dokumentasi) dari aplikasi lokal yang sedang anda kembangkan.
  1. Clone atau Download repository dari GitHub : https://github.com/solihulhadi141213/SnapProxy
  2. Import database dari file SQL pada directory di aplikasi ini : DB/SNAP_PROXY.sql
  3. Sesuaikan konfigurasi pada _Config/Connection.php.
  4. Buka file _Config/Connection.php tersebut dan lakukan penyesuaian sebagai berikut.
    • $servername diisi dengan nama server (secara default diisi dengan localhost)
    • $username diisi dengan username database (secara default diisi dengan root)
    • $password diisi dengan password database (secara default pada webservel local dapat dikosongkan)
    • $db Sesuaikan dengan nama database yang digunakan (misalnya SNAP_PROXY)
  5. Berikut ini adalah contoh pengisian script Connection.php :
    <?php
        $servername = "localhost";
        $username   = "your_username";
        $password   = "your_password";
        $db         = "SNAP_PROXY";
    
        $Conn = new mysqli($servername, $username, $password, $db);
    
        if ($Conn->connect_error) {
            die("Connection failed: " . $Conn->connect_error);
        }
    ?>
  6. Jalankan dengan mengunjungi url pada browser dengan contoh alamat : http://alamat_domain.com/SnapProxy/index.php
  7. Atau anda bisa memasang aplikasi ini pada directory utama subdomain anda dengan contoh alamat : http://SnapProxy.alamat_domain.com/index.php
  8. Jika berhasil anda akan diarahkan ke halaman dokumentasi aplikasi.
  9. Akun default :
    • USER_KEY : 3mQKUd4ikicxxG3EQHVy6LcjSiHV8IlRXYgP
    • SECRET_KEY : 1VttZESUj7m2l1cLOq2nYUl6wpZddWw4tEOq

Persiapan awal yang perlu anda lakukan adalah memiliki akun Midtrans terlebih dulu. Lakukan pendaftaran dan miliki akun akses masuk ke dashboard website layanan tersebut. Lebih jelas ikuti tahap-tahap berikut ini :
  1. Kunjungi situs resmi Midtrans pada link berikut ini : http://midtrans.com
  2. Lakukan pendaftaran dengan memilih tombol Get Started kemudian pilih Register Via Website
  3. Akan tampil halaman form pendaftaran, isi dengan lengkap form tersebut.
  4. Lakukan verifikasi email dengan membuka inbox pada akun email anda.
  5. Jika sudah, silahkan login dengan akun sesuai pendaftaran yang sudah anda lakukan
  6. Untuk pertama kali, anda perlu melakukan pengujian integrasi terlebih dulu dengan menggunakan mode Sanbox
  7. Setelah login berhasil, masuk ke mode Sanbox dengan cara mengganti bilah kiri atas pada bagian select option yang menunjukan posisi Environment
  8. Masuk ke menu Setting kemudian sub menu Access Key
  9. Catat parameter ID Marchant, Client Key dan Server Key yang ada pada halaman tersebut.

  • X-Token
  • Setting
  • Transaction

Random String Generator
Buat string dengan karakter acak sebanyak 1-36 karakter.
Hash Generator
Ubah string menjadi bcrypt hash dengan algoritma PASSWORD_DEFAULT

Form Login