* @see http://codeigniter.com/user_guide/general/urls.html */ public function __construct() { parent::__construct(); $params = array('server_key' => 'your_server_key', 'production' => false); $this->load->library('midtrans'); $this->midtrans->config($params); $this->load->helper('url'); } public function index() { echo 'test notification handler'; $json_result = file_get_contents('php://input'); $result = json_decode($json_result); if ($result) { $notif = $this->midtrans->status($result->order_id); } error_log(print_r($result, TRUE)); //notification handler sample $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."; } } }