EN | ID
Petunjuk Pembuatan Landing Page untuk Pembayaran Direct Debit

Pada artikel ini akan diberikan panduan bagaimana cara membuat landing page yang berisikan informasi transaksi setelah customer menyelesaikan pembayaran melalui payment channel direct debit. Payment channel yang tersedia di Midtrans saat ini adalah CIMB Clicks, Epay BRI, Line Pay | Mandiri e-cash. Ketiga payment channel ini hanya membaca Finish URL -- untuk semua produk(Snap, Snap redirect(vtweb), Core API)-- yang dapat di konfigurasi di MAP (dashboard Midtrans)

Langkah pertama, login ke MAP. Pilih menu Setting -> configuration, dan isi Finish URL. 

SNAP dan CORE API

Midtrans akan mengirimkan response yang perlu didapatkan di script pada Finish URL.  Contoh code dibawah dibuat dalam PHP native. Silahkan sesuaikan dengan environment website anda. 

<?php
$raw_response = $_POST['response']; //get the json response
$response = preg_replace('/\\\\/', '', $_POST['raw_response']); //clean up response from backslash
$decoded_response = json_decode($response);
$transaction_status = $decoded_response ->transaction_status;//how to access
?>

Response akan dikirim dalam format JSON, dalam beberapa kasus terjadi adanya penambahakn backslash dan tanda petik ("). Berikut contoh response yang mungkin diterima.

{
\"status_code\" : \"200\",
\"status_message\" : \"Success, transaction is found\",
\"transaction_id\" : \"58b48d1c-3e51-46f8-a2fb-ad5fa668f534\",
\"order_id\" : \"34\",
\"gross_amount\" : \"19999998.00\",
\"payment_type\" : \"cimb_clicks\",
\"transaction_time\" : \"2018-01-26 08:57:45\",
\"transaction_status\" : \"settlement\",
\"approval_code\" : \"1516957074590\",
\"signature_key\" : \"30b048ffff95e08c34cf265268224f0b6460d7716b3d70424a7203609a78b335280fe6137a9938cd3af24533fdafcfe8771203f6f30f21fd141a378bba1685fb\"
}

Jika response yang didapatkan seperti itu, maka perlu dibersihkan terlebih dahulu sehingga menjadi seperti ini.
{
"status_code" : "200",
"status_message" : "Success, transaction is found",
"transaction_id" : "58b48d1c-3e51-46f8-a2fb-ad5fa668f534",
"order_id" : "34",
"gross_amount" : "19999998.00",
"payment_type" : "cimb_clicks",
"transaction_time" : "2018-01-26 08:57:45",
"transaction_status" : "settlement",
"approval_code" : "1516957074590",
"signature_key" : "30b048ffff95e08c34cf265268224f0b6460d7716b3d70424a7203609a78b335280fe6137a9938cd3af24533fdafcfe8771203f6f30f21fd141a378bba1685fb"
}

Kemudian dilakukan decode dari json tersebut sehingga bisa di baca oleh PHP. Berikut hasil decode response tersebut

stdClass Object
(
   [status_code] => 200
   [status_message] => Success, transaction is found
   [transaction_id] => 58b48d1c-3e51-46f8-a2fb-ad5fa668f534
   [order_id] => 34
   [gross_amount] => 19999998.00
   [payment_type] => cimb_clicks
   [transaction_time] => 2018-01-26 08:57:45
   [transaction_status] => settlement
   [approval_code] => 1516957074590
   [signature_key] => 30b048ffff95e08c34cf265268224f0b6460d7716b3d70424a7203609a78b335280fe6137a9938cd3af24533fdafcfe8771203f6f30f21fd141a378bba1685fb
)

Sekarang kira dapat menggunakan response tersebut untuk memberikan informasi ke pelanggan.



Snap Redirection (vtweb)

Ketika pelanggan kembali ke website anda, Finish URL anda akan ditambahkan dengan query string yang berisikan merchant_idstatus_code, dan transaction_status. Informasi dari query string dapat diambil dengan menggunakan method GET. Untuk mendapatkan merchant_id dengan method get caranya adalah sebagai berikut: $_GET['merchant_id'] . Gunakanlah informasi-informasi ini hanya untuk menampilkan pesan ke halaman website anda. SANGAT TIDAK DISARANKAN menggunakan informasi-informasi tersebut untuk MEMPERBARUI DATABASE! Hal ini disebabkan karena query string mudah untuk dimodifikasi oleh pihak yang tidak bertanggung jawab. 

Contoh URL untuk transaksi dengan status deny

https://example.com/finish?merchant_id=MXXXX&order_id=xxxx&status_code=202&transaction_status=deny

Contoh URL untuk transaksi dengan status pending

https://example.com/finish?merchant_id=MXXXX&order_id=xxxx&status_code=201&transaction_status=pending

Contoh URL untuk transaksi yang berhasil.

https://example.com/finish?merchant_id=M118543&order_id=1518077904&status_code=200&transaction_status=settlement

Contoh code untuk mengambil informasi pada query string dalam PHP.

 <?php
$order_id = $_GET['order_id']
$txn_status = $_GET['transaction_status']
?>

Apakah artikel ini membantu?
0 dari 0 menganggap ini berguna
Can't find your answer? How about looking at our Tech Docs? LEARN MORE