public function status() { Veritrans_Config::$serverKey = "VT-server-tHdPoLZ5B9msOwJBt-tN7jOE"; Veritrans_Config::$isProduction = false; $order_id = "1462714217"; $result = Veritrans_Transaction::status($order_id); pr($result); }
public function testRealStatus() { try { $status = Veritrans_Transaction::status("Order-111"); } catch (Exception $error) { $errorHappen = true; $this->assertEquals($error->getMessage(), "Veritrans Error (401): Access denied due to unauthorized transaction, please check client or server key"); } $this->assertTrue($errorHappen); }
public function testExpirePermataVa() { $charge_params = VtChargeFixture::build('bank_transfer', array("bank" => "permata")); $charge_response = Veritrans_VtDirect::charge($charge_params); $expire = Veritrans_Transaction::expire($charge_response->transaction_id); $this->assertEquals($expire->status_code, '407'); // Verify transaction via API $txn_status = Veritrans_Transaction::status($charge_response->transaction_id); $this->assertEquals($txn_status->status_code, "407"); $this->assertEquals($txn_status->transaction_status, "expire"); }
public function testStatusPermataVa() { $charge_params = VtChargeFixture::build('bank_transfer', array("bank" => "permata")); $charge_response = Veritrans_VtDirect::charge($charge_params); $status_response = Veritrans_Transaction::status($charge_response->transaction_id); $this->assertEquals($status_response->status_code, '201'); $this->assertEquals($status_response->transaction_status, 'pending'); $this->assertEquals($status_response->order_id, $charge_params['transaction_details']['order_id']); $this->assertEquals($status_response->gross_amount, $charge_params['transaction_details']['gross_amount']); $this->assertEquals($status_response->transaction_id, $charge_response->transaction_id); $this->assertEquals($status_response->transaction_time, $charge_response->transaction_time); $this->assertEquals($status_response->status_message, 'Success, transaction found'); $this->assertTrue(isset($status_response->signature_key)); }
public function status() { // Includes Veritrans include app_path() . '/packages/veritrans/Veritrans.php'; // Veritans configuration Veritrans_Config::$serverKey = 'VT-server-YN3xDgcjXol4o0mgbOs-A72D'; // init $data = array(); // get input $param = Input::all(); try { // Check status transaksi ke server Veritrans $check = Veritrans_Transaction::status($param['order_id']); var_dump($check); // Order id $cipher = 'm4t4h4r1899'; $iv = sprintf("%016d", Auth::user()->id); // Mempola Initialization Vector dengan User id // -- Decrypt order_id dengan algoritma AES-256 $order_id = openssl_decrypt($param['order_id'], 'AES-256-CBC', $cipher, 0, $iv); $order_id = explode("_", $order_id, 2); $donation_id = (int) $order_id[1]; $donation = Donation::where('id', '=', $donation_id)->where('status', '!=', 3)->first(); // Check $code = DB::table('payment_code')->where('order_id', $param['order_id']); if ($code->count() > 0) { $vtweb_url = 'https://vtweb.sandbox.veritrans.co.id/v2/vtweb/' . $code->pluck('code'); } else { $transaction = array('transaction_details' => array('order_id' => $param['order_id'], 'gross_amount' => (int) $donation->total), "vtweb" => array("credit_card_3d_secure" => true), 'customer_details' => array('first_name' => Auth::user()->firstname, 'last_name' => Auth::user()->lastname)); // Mendapatkan checkout url $vtweb_url = Veritrans_Vtweb::getRedirectionUrl($transaction); $insert_code = DB::table('payment_code')->insert(array('order_id' => $param['order_id'], 'user_id' => Auth::user()->id, 'donation_id' => $donation->id, 'code' => basename($vtweb_url))); } $data = array('status_code' => $check->status_code, 'donation' => $donation); } catch (Exception $ex) { $data['status_code'] = '404'; } return View::make('bagikasih.donation.status', $data); }
/** * Check for Veritrans Web Response * Method ini akan dipanggil untuk merespon notifikasi yang * diberikan oleh server Veritrans serta melakukan verifikasi * apakah notifikasi tersebut berasal dari Veritrans dan melakukan * konfirmasi transaksi pembayaran yang dilakukan customer * * update: sekaligus untuk menjadi finish/failed URL handler. * @access public * @return void */ function veritrans_vtweb_response() { global $woocommerce; @ob_clean(); global $woocommerce; $order = new WC_Order($order_id); Veritrans_Config::$isProduction = $this->environment == 'production' ? true : false; if ($this->environment == 'production') { Veritrans_Config::$serverKey = $this->server_key_v2_production; } else { Veritrans_Config::$serverKey = $this->server_key_v2_sandbox; } // check whether the request is GET or POST, // if request == GET, request is for finish OR failed URL, then redirect to WooCommerce's order complete/failed // else if request == POST, request is for payment notification, then update the payment status if (!isset($_GET['order_id'])) { // Check if POST, then create new notification $veritrans_notification = new Veritrans_Notification(); if (in_array($veritrans_notification->status_code, array(200, 201, 202))) { header('HTTP/1.1 200 OK'); if ($order->get_order($veritrans_notification->order_id) == true) { $veritrans_confirmation = Veritrans_Transaction::status($veritrans_notification->order_id); do_action("valid-veritrans-web-request", $veritrans_notification); } } } else { // else if GET, redirect to order complete/failed // error_log('status_code '. $_GET['status_code']); //debug // error_log('status_code '. $_GET['transaction_status']); //debug if (isset($_GET['order_id']) && isset($_GET['transaction_status']) && ($_GET['transaction_status'] == 'capture' || $_GET['transaction_status'] == 'pending' || $_GET['transaction_status'] == 'settlement')) { $order_id = $_GET['order_id']; // error_log($this->get_return_url( $order )); //debug $order = new WC_Order($order_id); wp_redirect($order->get_checkout_order_received_url()); } else { if (isset($_GET['order_id']) && isset($_GET['transaction_status']) && $_GET['transaction_status'] == 'deny') { $order_id = $_GET['order_id']; $order = new WC_Order($order_id); wp_redirect($order->get_checkout_payment_url(false)); } else { if (isset($_GET['order_id']) && !isset($_GET['transaction_status'])) { // if customer click "back" button, redirect to checkout page again $order_id = $_GET['order_id']; $order = new WC_Order($order_id); wp_redirect($order->get_checkout_payment_url(false)); } } } } }
<?php require_once dirname(__FILE__) . '/../../Veritrans.php'; Veritrans_Config::$serverKey = '<your server key>'; if (Veritrans_Config::$serverKey == '<your server key>') { echo "<code>"; echo "<h4>Please set real server key from sandbox</h4>"; echo "In file: " . __FILE__; echo "<br>"; echo "<br>"; echo htmlspecialchars('Veritrans_Config::$serverKey = \'<your server key>\';'); die; } $orderId = '1404189699'; try { $status = Veritrans_Transaction::status($orderId); } catch (Exception $e) { echo $e->getMessage(); die; } var_dump($status); // $approve = Veritrans_Transaction::approve($orderId); // var_dump($approve); // $cancel = Veritrans_Transaction::cancel($orderId); // var_dump($cancel);
public function __construct($input_source = "php://input") { $raw_notification = json_decode(file_get_contents($input_source), true); $status_response = Veritrans_Transaction::status($raw_notification['transaction_id']); $this->response = $status_response; }
public function setUp() { $charge_params = VtChargeFixture::build('bri_epay'); $charge_response = Veritrans_VtDirect::charge($charge_params); $this->status_response = Veritrans_Transaction::status($charge_response->transaction_id); }