public function omise_3ds_handler()
 {
     if (!$_GET["order_id"]) {
         wp_die("Order was not found", "Omise Payment Gateway: Checkout", array("response" => 500));
     }
     $order_id = $_GET["order_id"];
     $posts = get_posts(array("post_type" => "omise_charge_items", "meta_query" => array(array("key" => "_wc_order_id", "value" => $order_id, "compare" => "="))));
     if (empty($posts)) {
         wp_die("Charge was not found", "Omise Payment Gateway: Checkout", array("response" => 500));
     }
     $order = wc_get_order($order_id);
     if (!$order) {
         wp_die("Order was not found", "Omise Payment Gateway: Checkout", array("response" => 500));
     }
     $confirmed_url = get_post_custom_values("_wc_confirmed_url", $posts[0]->ID);
     $confirmed_url = $confirmed_url[0];
     $charge_id = get_post_custom_values("_omise_charge_id", $posts[0]->ID);
     $charge_id = $charge_id[0];
     $omise = new Omise();
     $result = $omise->get_charge($this->private_key, $charge_id);
     if ($this->is_charge_success($result)) {
         $order->payment_complete();
         $order->add_order_note("Payment with Omise successful");
         WC()->cart->empty_cart();
         header("Location: " . $confirmed_url);
         die;
     } else {
         if ($result->failure_code && $result->failure_message) {
             $order->add_order_note("Charge was not completed, " . $result->failure_message);
             wp_die($result->failure_message, "Charge was not completed", array("response" => 500));
         } else {
             wp_die("Charge still in progress", "Charge still in progress", array("response" => 500));
         }
     }
     wp_die("Access denied", "Access Denied", array("response" => 401));
     die;
 }