Hallo, Tutorial kali ini adalah Cara menghubungkan Payment Midtrand dengan Project Php kalian. Terlebih dahulu saya perkenalkan Midtras merupakan Payment Gateway yang melayani Terima pembayaran dan dana dengan lebih mudah .
- Bank Indonesia, Midtrans terdaftar dan memegang lisensi dari bank Indonesia sejak tahun 2018.
- Kementrian Komunikasi dan Informatika Republik indonesia ( Kominfo), Midtrans terdaftar sebagai penyelenggara sistem elektronik di Kementrian Komunikasi dan Informatika Republik indonesia
- AES 256, AES adalah Standar Enkripsi elektronik yang didirikan Oleh U.S National Institute. AES 256 ini memastikan untuk melindungi data sensitif dari pencuri dan Akses yang tidak Otorisasi.
- PCI DSS, Yaitu untuk menjamin keamanan Transaksi Konsumen sesuai yang ditetapkan oleh PCI Security Standard.
- ISO 27001, Untuk melindungi Transaksi Secara Internal dan eksternal berdasarkan standar internasional.
Data diatas merupakan Sertifikasi yang dimiliki oleh Midtrans Sendiri. Terus Bagaimana cara Instalasi Midtrans di Php ? untuk instalasi midtrans di Php adalah sebagai berikut.
Cara Instalasi Midtrans Multipayment di Php
a. Membuat Akun Midtrans dan Access Key
1. Langkah Pertama Kalian harus mendaftarkan Akun kalian ke Midtrans dengan cara kalian bisa klik Tautan ini
2. kemudian kalian isi sesuai Data yang diminta
Tampilan Register Midtrans |
Halaman Login Midtrans |
4.Jika sudah di Halaman Menu Utama, Kalian Klik Environment yang sudah saya tandai di gambar bawah ini. Dan Kalian Pilih Environmentnya dari production Menjadi Sandbox.
Tampilan Halaman Utama |
Client Key dan Server Key untuk menghubungkan Midtrans dan Projek Kalian |
b. Instalasi kedalam Php
1. Kalian Download terlebih Dahulu Midtrans-php disini
2. Ekstrak File Midtrans yang sudah di download.
3. Pindahkan Folder Midtrans yang sudah di ektrak tadi ke folder HTdoc di xampp.
3. Langkah selanjutnya, Kita test dulu nih file Midtrans kita apakah sudah terbung atau tidak, dengan cara kalian msauk ke folder Example -> Snap
Di Folder snap ada 3 File diantaranya :
a. Checkout-Process.php
b. index.php
c. Checkout-Process-Simple-version.php
Kemudian kalian buka file Checkout-process.php
<?php | |
// This is just for very basic implementation reference, in production, you should validate the incoming requests and implement your backend more securely. | |
// Please refer to this docs for snap popup: | |
// https://docs.midtrans.com/en/snap/integration-guide?id=integration-steps-overview | |
namespace Midtrans; | |
require_once dirname(__FILE__) . '/../../Midtrans.php'; | |
// Set Your server key | |
// can find in Merchant Portal -> Settings -> Access keys | |
Config::$serverKey = '<your server key>'; | |
Config::$clientKey = '<your client key>'; | |
// non-relevant function only used for demo/example purpose | |
printExampleWarningMessage(); | |
// Uncomment for production environment | |
// Config::$isProduction = true; | |
// Enable sanitization | |
Config::$isSanitized = true; | |
// Enable 3D-Secure | |
Config::$is3ds = true; | |
// Uncomment for append and override notification URL | |
// Config::$appendNotifUrl = "https://example.com"; | |
// Config::$overrideNotifUrl = "https://example.com"; | |
// Required | |
$transaction_details = array( | |
'order_id' => rand(), | |
'gross_amount' => 94000, // no decimal allowed for creditcard | |
); | |
// Optional | |
$item1_details = array( | |
'id' => 'a1', | |
'price' => 18000, | |
'quantity' => 3, | |
'name' => "Apple" | |
); | |
// Optional | |
$item2_details = array( | |
'id' => 'a2', | |
'price' => 20000, | |
'quantity' => 2, | |
'name' => "Orange" | |
); | |
// Optional | |
$item_details = array ($item1_details, $item2_details); | |
// Optional | |
$billing_address = array( | |
'first_name' => "Andri", | |
'last_name' => "Litani", | |
'address' => "Mangga 20", | |
'city' => "Jakarta", | |
'postal_code' => "16602", | |
'phone' => "081122334455", | |
'country_code' => 'IDN' | |
); | |
// Optional | |
$shipping_address = array( | |
'first_name' => "Obet", | |
'last_name' => "Supriadi", | |
'address' => "Manggis 90", | |
'city' => "Jakarta", | |
'postal_code' => "16601", | |
'phone' => "08113366345", | |
'country_code' => 'IDN' | |
); | |
// Optional | |
$customer_details = array( | |
'first_name' => "Andri", | |
'last_name' => "Litani", | |
'email' => "andri@litani.com", | |
'phone' => "081122334455", | |
'billing_address' => $billing_address, | |
'shipping_address' => $shipping_address | |
); | |
// Optional, remove this to display all available payment methods | |
$enable_payments = array('credit_card','cimb_clicks','mandiri_clickpay','echannel'); | |
// Fill transaction details | |
$transaction = array( | |
'enabled_payments' => $enable_payments, | |
'transaction_details' => $transaction_details, | |
'customer_details' => $customer_details, | |
'item_details' => $item_details, | |
); | |
$snap_token = ''; | |
try { | |
$snap_token = Snap::getSnapToken($transaction); | |
} | |
catch (\Exception $e) { | |
echo $e->getMessage(); | |
} | |
echo "snapToken = ".$snap_token; | |
function printExampleWarningMessage() { | |
if (strpos(Config::$serverKey, 'your ') != false ) { | |
echo "<code>"; | |
echo "<h4>Please set your server key from sandbox</h4>"; | |
echo "In file: " . __FILE__; | |
echo "<br>"; | |
echo "<br>"; | |
echo htmlspecialchars('Config::$serverKey = \'<your server key>\';'); | |
die(); | |
} | |
} | |
?> | |
<!DOCTYPE html> | |
<html> | |
<body> | |
<button id="pay-button">Pay!</button> | |
<pre><div id="result-json">JSON result will appear here after payment:<br></div></pre> | |
<!-- TODO: Remove ".sandbox" from script src URL for production environment. Also input your client key in "data-client-key" --> | |
<script src="https://app.sandbox.midtrans.com/snap/snap.js" data-client-key="<?php echo Config::$clientKey;?>"></script> | |
<script type="text/javascript"> | |
document.getElementById('pay-button').onclick = function(){ | |
// SnapToken acquired from previous step | |
snap.pay('<?php echo $snap_token?>', { | |
// Optional | |
onSuccess: function(result){ | |
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2); | |
}, | |
// Optional | |
onPending: function(result){ | |
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2); | |
}, | |
// Optional | |
onError: function(result){ | |
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2); | |
} | |
}); | |
}; | |
</script> | |
</body> | |
</html> |
Kemudian kalian Ubah yang sudah Saya Tandai Warna Merah dengan Client Key dan Server key yang sudah Kalian Copy ke dalam Notepad. kalian Akses folder Snap di web Browser kalian http://Localhost/midtrans-php/example/snap.
kalian coba klik Tombol Pay Apakah masih error atau tidak Jika sudah Terhubung akan keluar tampilan seperti dibawah ini
Tampilan Payment php |
Jika sudah Tampil seperti Tampilan di atas Selemat kalian Sudah Terhubung ke Midtrans Payment meskipun masih Percobaan dalam development Project. Untuk Upgrade Kalian Bisa Info Lebih Lanjut di Situs Web Resminya di https://midtrans.com/id/pricing .
Untuk demo Bisa kalian kunjungi ke alamat https://docs.midtrans.com/en/snap/interactive-demo
Kesimpulan
Midrans merupakan Multipayment yang menyediakan layanan Pembayaran melalui Bank Transfer, Gojek, Alfamart/Indomart, BCA dan lainnya. Dengan keamanan yang dimiliki oleh Midtrans sendiri, Banyak seorang Web Development menggunakan Payment ini, Karena Midtrans ini lebih Mudah untuk di Instalasi Oleh seorang Developer.
Midtrans Documentation: https://docs.midtrans.com/en/payments/overview
0 Komentar