JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr'; // non-relevant function only used for demo/example purpose printExampleWarningMessage(); try { $notif = new Notification(); } catch (\Exception $e) { exit($e->getMessage()); } $notif = $notif->getResponse(); $transaction = $notif->transaction_status; $type = $notif->payment_type; $order_id = $notif->order_id; $fraud = $notif->fraud_status; if ($transaction == 'capture') { // For credit card transaction, we need to check whether transaction is challenge by FDS or not if ($type == 'credit_card') { if ($fraud == 'challenge') { // TODO set payment status in merchant's database to 'Challenge by FDS' // TODO merchant should decide whether this transaction is authorized or not in MAP echo "Transaction order_id: " . $order_id ." is challenged by FDS"; } else { // TODO set payment status in merchant's database to 'Success' echo "Transaction order_id: " . $order_id ." successfully captured using " . $type; } } } else if ($transaction == 'settlement') { // TODO set payment status in merchant's database to 'Settlement' echo "Transaction order_id: " . $order_id ." successfully transfered using " . $type; } else if ($transaction == 'pending') { // TODO set payment status in merchant's database to 'Pending' echo "Waiting customer to finish transaction order_id: " . $order_id . " using " . $type; } else if ($transaction == 'deny') { // TODO set payment status in merchant's database to 'Denied' echo "Payment using " . $type . " for transaction order_id: " . $order_id . " is denied."; } else if ($transaction == 'expire') { // TODO set payment status in merchant's database to 'expire' echo "Payment using " . $type . " for transaction order_id: " . $order_id . " is expired."; } else if ($transaction == 'cancel') { // TODO set payment status in merchant's database to 'Denied' echo "Payment using " . $type . " for transaction order_id: " . $order_id . " is canceled."; } function printExampleWarningMessage() { if ($_SERVER['REQUEST_METHOD'] != 'POST') { echo 'Notification-handler are not meant to be opened via browser / GET HTTP method. It is used to handle Midtrans HTTP POST notification / webhook.'; } if (strpos(Config::$serverKey, 'your ') != false ) { echo ""; echo "

Please set your server key from sandbox

"; echo "In file: " . __FILE__; echo "
"; echo "
"; echo htmlspecialchars('Config::$serverKey = \'\';'); die(); } }