Membuat Payment Gateway menggunakan Bahasa Pemrograman PHP

Midtrans memungkinkan menerima pembayaran online secara asli di web, midtrans dapat digunakan di berbagai platform, sistem midtrans kopatible dengan berbagai API dan plug-in untuk proses integrasi yang mudah, jadi dengan menggunakan midtrans anda tidak perlu lagi cek pembayaran dan buat laporan keuangan secara manual, dengan midtrans tersedia 20 metode pebayaran, anda bisa melayani kebutuhan pelanggan diseluruh daerah indonesia.

Langkah Pengerjaan

Jika Anda menggunakan Composer, Anda masukan modul berikut kebagian composer.json atau anda bisa menggunakan terminal, Anda bisa melihat langkah pengerjaan di bagian video.

{
	"require": {
		"veritrans/veritrans-php": "dev-master"
	}
}

Anda panggil modul yang anda tambahkan dibagian composer.json dengan memanggil require dari autoload.php, Anda masukan key server yang anda dapat dari midtrans, Jika anda menjalankan kode dibawah maka secara otomatis anda mendapatkan kode token transaksi.

<?php
 require_once(dirname(__FILE__) . '/vendor/autoload.php');
 
  Veritrans_Config::$serverKey = "Masukan_key_anda_disini";

  Veritrans_Config::$isSanitized = true;

  Veritrans_Config::$is3ds = true;

  $transaction_details = array(
    'order_id' => rand(),
    'gross_amount' => 40000, 
  );

  $item1_details = array(
    'id' => 'a1',
    'price' => 20000,
    'quantity' => 2,
    'name' => "Denim shirt"
  );

  $item2_details = array(
     'id' => 'a2',
     'price' => 150000,
     'quantity' => 1,
     'name' => "Sweatshirt"
  );

  $item_details = array ($item1_details, $item2_details);

  $billing_address = array(
    'first_name'    => "Kiostr",
    'last_name'     => "",
    'address'       => "Mataram",
    'city'          => "Mataram",
    'postal_code'   => "83112",
    'phone'         => "081234567891",
    'country_code'  => 'IDN'
  );

  $shipping_address = array(
    'first_name'    => "Muhammad",
    'last_name'     => "Tanwir",
    'address'       => "Lombok Timur",
    'city'          => "Mataram",
    'postal_code'   => "83354",
    'phone'         => "081234567892",
    'country_code'  => 'IDN'
  );

  $customer_details = array(
    'first_name'    => "Kiostr",
    'last_name'     => "",
    'email'         => "[email protected]",
    'phone'         => "081234567891",
    'billing_address'  => $billing_address,
    'shipping_address' => $shipping_address
  );

  $enable_payments = array('credit_card','cimb_clicks','mandiri_clickpay','echannel','alfamart');

  $transaction = array(
    'enabled_payments' => $enable_payments,
    'transaction_details' => $transaction_details,
    'customer_details' => $customer_details,
    'item_details' => $item_details,
  );

  $snapToken = Veritrans_Snap::getSnapToken($transaction);

?>

Kemudian anda buat Snap JS ketika pelanggan melakukan klik pada pay button, jika anda mengklik button pay maka tampil dialog dari detail transaksi dan metode pembayaran yang anda bisa digunakan, Anda masukan key client dari midtrans dibagian data-client-key.

<script src="https://app.sandbox.midtrans.com/snap/snap.js" data-client-key="Masukan_key_anda_disini"></script>
    <script type="text/javascript">
      document.getElementById('pay-button').onclick = function(){
        snap.pay('<?=$snapToken?>', {
          onSuccess: function(result){
            document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
          },
          onPending: function(result){
            document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
          },
          onError: function(result){
            document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
          }
        });
      };
    </script>

Anda bisa download Templates di link berikut


Templates E-Commerce


Demikian yang dapat saya sampaikan dari artikel ini semoga bermanfaat, hanya saja penulis hanya bisa menerapkan transaksi sampai status panding silahkan anda bisa kembangkan, jika ada yang ditanyakan silahkan di kolom komentar dibawah, selamat mencoba.

Share Comments
comments powered by Disqus