function pay_old() { $id = addslashes($_GET['app_id']); $acc = new App2Acc(); $apps = $acc->getWhereFromMultipleTable("ac_admin_id = '" . Account::getMyID() . "' AND ac_app_id = app_id AND ac_app_id = '{$id}' ", array("AppAccount")); if (count($apps) < 1) { die("hacking attempt"); } else { $app = $apps[0]; } if ($app->app_active) { header("Location:" . _SPPATH . "myapps"); die; } AppAccount::checkOwnership($app); $paket = new Paket(); $arrPaket = $paket->getWhere("paket_active = 1 AND paket_id > 1 ORDER BY paket_id ASC"); $paket2 = new Paket(); $paket2->getByID(2); // paket android $paket1 = new Paket(); $paket1->getByID(3); //paket android iOS $paymentResponse = 0; $paymentText = ""; $vpt = new VpTransaction(); $arrVpt = $vpt->getWhere("order_app_id = '{$app->app_id}' AND order_status = '0' AND order_status_from != '0' "); if (count($arrVpt) > 0) { $vpt = $arrVpt[0]; $paymentResponse = $vpt->order_status_from; if ($paymentResponse == "200") { //sucess $paymentText = "Your Payment is Success"; } if ($paymentResponse == "201") { //sucess $paymentText = "Your Payment is Pending/Challenge"; } if ($paymentResponse == "202") { //denied $paymentText = "Your Payment is denied"; } if ($paymentResponse == "103") { //error $paymentText = "Error Response by payment"; } if ($paymentResponse == "102") { //failed $paymentText = "Failed Response by payment"; } if ($paymentResponse == "300") { //error //Move Permanently, current and all future requests should be directed to the new URL $paymentText = "Error, new URL needed"; } if ($paymentResponse >= 400) { //error //Validation Error, merchant sent bad request data example; validation error, invalid transaction type, invalid credit card format, etc. $paymentText = "Validation Error"; } if ($paymentResponse >= 500) { //error //Internal Server Error $paymentText = "Internal Server Error"; } } ?> <div class="container attop" style="text-align: center;" > <div class="col-md-8 col-md-offset-2"> <div class="appear_logo_pages"> <a href="<?php echo _SPPATH; ?> "> <img src="<?php echo _SPPATH; ?> images/appear-payment.png" > </a> </div> <div class="app" style="background-color: #dedede;"> <div style="background-color: #f6f6f6; padding: 5px; text-align: center; font-size: 20px;">Payment For</div> <div class="col-md-3 " style="text-align: center; min-height: 270px; padding: 10px; background-color: #FFFFFF;"> <b >App Details</b><br><br> <img src="<?php echo $app->app_icon; ?> " width="80%"><br> <?php echo $app->app_name; ?> </div> <div class="col-md-9 " style="text-align: center; padding: 10px;background-color: #dedede;"> <div style="padding-bottom: 20px; font-weight: bold;">Package Details</div> <div class="clearfix"></div> <div class="col-md-6 col-sm-6 col-xs-6"> <img style="cursor: pointer;" id="paket1" onclick="setPaket(1);" src="<?php echo _SPPATH; ?> images/paket-android-ios.png" width="100%"> <small>what you get</small> </div> <div class="col-md-6 col-sm-6 col-xs-6"> <img style="cursor: pointer;" id="paket2" onclick="setPaket(2);" src="<?php echo _SPPATH; ?> images/paket-android-2.png" width="100%"> <small>what you get</small> </div> <div class="clearfix"></div> <script> var paket_selected = 3; function setPaket(x){ if(x == 1){ $('#paket2').attr("src","<?php echo _SPPATH; ?> images/paket-android-2.png"); $('#paket1').attr("src","<?php echo _SPPATH; ?> images/paket-android-ios.png"); $('#paketprice').html("IDR <?php echo idr($paket1->paket_price); ?> / year"); paket_selected = 3; $('#paybuttonpaket3').show(); $('#paybuttonpaket2').hide(); }else{ $('#paket2').attr("src","<?php echo _SPPATH; ?> images/paket-android.png"); $('#paket1').attr("src","<?php echo _SPPATH; ?> images/paket-android-ios-2.png"); $('#paketprice').html("IDR <?php echo idr($paket2->paket_price); ?> / year"); paket_selected = 2; $('#paybuttonpaket2').show(); $('#paybuttonpaket3').hide(); } } </script> </div> <div class="clearfix"></div> <div id="paketprice" style="background-color: #f6f6f6; padding: 5px; text-align: center; font-size: 30px;">IDR <?php echo idr($paket1->paket_price); ?> / year</div> </div> <div style="padding: 20px;"> <a id="paybuttonpaket3" href="<?php echo _SPPATH; ?> Vp/pay?app_id=<?php echo $app->app_id; ?> &paket=3" class="btn btn-danger btn-lg">PAY NOW USING VERITRANS</a> <a id="paybuttonpaket2" style="display: none;" href="<?php echo _SPPATH; ?> Vp/pay?app_id=<?php echo $app->app_id; ?> &paket=2" class="btn btn-danger btn-lg">PAY NOW USING VERITRANS</a> <!-- <a href="--><?php //=_SPPATH; ?> <!--VeritransPay/pay?app_id=--><?php //=$app->app_id; ?> <!--" class="btn btn-danger btn-lg">PAY NOW USING VERITRANS</a>--> </div> <hr> <div style="text-align: center; "> <i>We support education, social, spiritual and other non-profit organization. <br>If this App is for one of the above purposes.</i><br> <a href="<?php echo _SPPATH; ?> apply_free?id=<?php echo $app->app_id; ?> " class="btn btn-default">apply as FREE apps</a> <br> <small>what you get</small> </div> <hr> <div style="text-align: center; margin-bottom: 100px;"> <a href="<?php echo _SPPATH; ?> myapps">I will finish the payment later. Go back to My Apps.</a> </div> <?php }
function free() { $app = new AppAccount(); $arrApp = $app->getWhere("app_active = 1 AND app_type = 1 ORDER BY app_contract_start ASC"); // pr($arrApp); ?> <h1>Free Approval Queue</h1> <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th> App Details </th> <th> Organization Details </th> <th> User & Agent </th> <th> Contract </th> <th> Paket </th> <th> Status </th> </tr> </thead> <tbody> <?php foreach ($arrApp as $app) { $paket = new Paket(); $paket->getByID($app->app_paket_id); $acc = new Account(); $acc->getByID($app->app_client_id); $agent = new Account(); if ($acc->admin_marketer != "") { $agent->getByUsername($acc->admin_marketer); } $vp = new VpTransaction(); $arrT = $vp->getWhere("order_app_id = '{$app->app_id}'"); $free = new AppFree(); $free->getByID($app->app_id); ?> <tr> <td> ID :<?php echo $app->app_id; ?> <br> <?php echo $app->app_name; ?> </td> <td> Apply Date : <?php echo $free->free_date; ?> <br> Org Name : <?php echo $free->free_org_name; ?> <br> Org Type : <?php echo $free->free_org_type; ?> <br> Address : <?php echo $free->free_address; ?> <br> Contact Name : <?php echo $free->free_org_name; ?> <br> Phone : <?php echo $free->free_org_name; ?> <br> Email : <?php echo $free->free_org_name; ?> <br> Docs : <br><?php $exp = explode(",", $free->free_org_docs); foreach ($exp as $x) { ?> <a href="<?php echo _SPPATH . _PHOTOURL . "inputfiles/" . $x; ?> " target="_blank"> <img src="<?php echo _SPPATH . _PHOTOURL . "inputfiles/" . $x; ?> " width="100px"> </a> <?php } ?> </td> <td> <?php echo $acc->admin_username; ?> <?php echo $acc->admin_nama_depan; ?> <br> <?php echo $acc->admin_email; ?> <br> <?php echo $acc->admin_phone; ?> <hr> Agent <br> <?php echo $agent->admin_username; ?> <?php echo $agent->admin_nama_depan; ?> <br> <?php echo $agent->admin_email; ?> <br> <?php echo $agent->admin_phone; ?> </td> <td>Start : <?php echo $app->app_contract_start; ?> <br> End : <?php echo $app->app_contract_end; ?> </td> <td><?php echo $paket->paket_name; ?> </td> <td> <?php echo $app->app_active; ?> <br> <button onclick="accept_free('<?php echo $app->app_id; ?> ');" class="btn btn-default">Accept App</button><br> <button onclick="reject_free('<?php echo $app->app_id; ?> ');" class="btn btn-default">Reject App</button><br> <button onclick="view_free('<?php echo $app->app_id; ?> ');" class="btn btn-default">View App</button> </td> </tr> <?php } ?> </tbody> </table> </div> <script> function accept_free(id){ if(confirm("this will accept the app")) $.post("<?php echo _SPPATH; ?> JobBE/actionfree",{app_id:id,action : "accept"},function(data){ console.log(data); if(data.bool){ alert("Sukses"); lwrefresh('Accept_Free_Apps'); }else{ alert("Gagal"); } },'json'); } function reject_free(id){ if(confirm("this will reject the app")) $.post("<?php echo _SPPATH; ?> JobBE/actionfree",{app_id:id,action : "reject"},function(data){ console.log(data); if(data.bool){ alert("Sukses"); lwrefresh('Accept_Free_Apps'); }else{ alert("Gagal"); } },'json'); } function view_free(id){ } </script> <?php }
function revenue() { $vp = new VpTransaction(); global $db; $q = "SELECT SUM(order_value) as total FROM {$vp->table_name} WHERE order_status = '1' OR order_status = '2'"; $arrRev = $db->query($q, 1); $mon = isset($_GET['mon']) ? addslashes($_GET['mon']) : date("n"); // pr($arrRev); ?> <h1>Total Revenue</h1> <h1>IDR <?php echo idr($arrRev->total); ?> </h1> Month : <select id="mon_m"> <?php for ($x = 1; $x < 13; $x++) { ?> <option <?php if ($mon == $x) { echo "selected"; } ?> value="<?php echo $x; ?> "><?php echo $x; ?> </option> <?php } ?> </select> <button id="change_m" class="btn btn-default">Change Month</button> <script> $('#change_m').click(function(){ openLw("Revenue",'<?php echo _SPPATH; ?> FinanceBE/revenue?mon='+$('#mon_m').val(),'fade'); }); </script> <?php $q = "select SUM(order_value) as total from {$vp->table_name} where month(order_date) = " . $mon . " AND (order_status = '1' OR order_status = '2')"; $arrRev = $db->query($q, 1); ?> <hr> <h2>Revenue This Month</h2> <h2>IDR <?php echo idr($arrRev->total); ?> </h2> <?php $arrs = $vp->getWhere("month(order_date) = " . $mon . " AND (order_status = '1' OR order_status = '2')"); // pr($arrs); ?> <div class="table-responsive"> <table class="table"> <thead> <tr> <th>order_id</th> <th>order_app_id</th> <th>order_acc_id</th> <th>order_date</th> <th>order_value</th> <th>order_paket_id</th> <th>order_status</th> <th>order_message</th> <th>order_status_from</th> </tr> </thead> <tbody> <?php foreach ($arrs as $vp) { ?> <tr> <td><?php echo $vp->order_id; ?> </td> <td><?php echo $vp->order_app_id; ?> </td> <td><?php echo $vp->order_acc_id; ?> </td> <td><?php echo $vp->order_date; ?> </td> <td><?php echo $vp->order_value; ?> </td> <td><?php echo $vp->order_paket_id; ?> </td> <td><?php echo $vp->order_status; ?> </td> <td><?php echo $vp->order_message; ?> </td> <td><?php echo $vp->order_status_from; ?> </td> </tr> <?php } ?> </tbody> </table> </div> <?php }
public static function myorderspage() { $arrPaymentStatus = array("1" => array("settlement", "success"), "2" => array("success", "success"), "3" => array("challenge", "failed"), "4" => array("pending", "pending"), "5" => array("deny", "denied"), "6" => array("cancel", "canceled")); ?> <style> @media (max-width: 768px) { .monly { display: initial; } .donly { display: none; } } @media (min-width: 768px) { .monly { display: none; } .donly { display: initial; } } </style> <style> .heading_earning{ font-size: 17px; font-style: italic; } .heading_amount{ font-size: 40px; } .inside{ padding: 20px; } .selectMonth{ /*padding-left: 10px;*/ } .payout{ color: #95abc2; } .money{ font-size: 22px; color: #73879C; } .big{ font-size: 25px; color: #73879C; } .rev_item{ background-color: #ffffff; margin-top: 20px; margin-bottom: 20px; } .order_id{ font-size: 20px; color: #73879C; } .pdate{ color: #73879C; font-style: italic; } .heading_amount{ font-size: 30px; text-align: right; padding-bottom: 100px; } .heading_amount_Sales{ font-size: 18px; text-align: right; /*padding-bottom: 20px;*/ } @media (max-width: 768px) { .monly { display: initial; } .donly { display: none; } .selectMonth{ padding-left: 0px; padding-bottom: 20px; border-bottom: 1px solid #CCCCCC; } .rightborder{ border-bottom: 1px solid #CCCCCC; } .leftborder{ border-top: 1px solid #CCCCCC; } .inside{ padding: 10px; } .tarmob{ /*text-align: right;*/ } } @media (min-width: 768px) { .monly { display: none; } .donly { display: initial; } .leftborder{ border-left: 1px solid #CCCCCC; min-height: 120px; } .rightborder{ border-right: 1px solid #CCCCCC; } } </style> <div class="container attop" > <div class="col-md-12"> <div class="appear_logo_pages"> <a href="<?php echo _SPPATH; ?> "> <img src="<?php echo _SPPATH; ?> images/appear-order.png" > </a> </div> <?php $orders = new VpTransaction(); $arrOrder = $orders->getWhere("order_acc_id = '" . Account::getMyID() . "' ORDER BY order_date DESC"); if (count($arrOrder) > 0) { foreach ($arrOrder as $num => $orders) { $app = new AppAccount(); $app->getByID($orders->order_app_id); $paket = new Paket(); $paket->getByID($orders->order_paket_id); ?> <div class="rev_item col-md-12"> <div class="col-md-5 "> <div class="inside"> <div class="payout col-md-6 col-sm-6 col-xs-6"> <div class="rev_details2"> <small>Order ID</small> <div class="order_id"><?php echo $orders->order_id; ?> </div> </div> </div> <div class="payout col-md-6 col-sm-6 col-xs-6"> <div class="rev_details"> Date : <?php echo date("F j, Y, g:i a", strtotime($orders->order_date)); ?> </div> <div class="rev_details"> App : <?php echo $app->app_name; ?> </div> <div class="rev_details"> Paket : <?php echo $paket->paket_name; ?> </div> </div> <div class="clearfix"></div> </div> </div> <div class="col-md-3 payout leftborder rightborder"> <div class="inside"> <div class="komisi tarmob"> Order Value <div class="order_id"> IDR <?php echo idr($orders->order_value); ?> </div> </div> </div> </div> <div class="col-md-4 "> <div class="inside tarmob"> <small>Status</small> <div class="money big"><?php echo $arrPaymentStatus[$orders->order_status][1]; ?> </div> <?php if ($orders->order_status == "1" || $orders->order_status == "2") { ?> <a href="<?php echo _SPPATH; ?> PaymentWeb/receipt?order_id=<?php echo $orders->order_id; ?> ">receipt</a> <?php } ?> <?php if ($orders->order_status != "1" && $orders->order_status != "2" && $orders->order_status != "4") { if ($app->app_active == 0) { ?> <a href="<?php echo _SPPATH; ?> PaymentWeb/pay?app_id=<?php echo $app->app_id; ?> ">pay again using different method</a> <?php } } ?> </div> </div> <div class="clearfix"></div> </div> <?php } ?> <div class="clearfix"></div> <?php } else { ?> <h1>No orders has been made yet</h1> <?php } ?> </div> </div> <?php }
function pay() { $app_id = addslashes($_GET['app_id']); $app = new AppAccount(); $app->getByID($app_id); AppAccount::checkOwnership($app); $paket_id = addslashes($_GET['paket']); $paket = new Paket(); $paket->getByID($paket_id); global $db; //create new order $vpt = new VpTransaction(); $vpt->order_id = mt_rand() . $app->app_id . Account::getMyID(); $vpt->order_acc_id = Account::getMyID(); $vpt->order_app_id = $app->app_id; $vpt->order_date = leap_mysqldate(); $vpt->order_paket_id = $paket->paket_id; $vpt->order_value = $paket->paket_price; $vpt->order_status = 0; $vpt->order_status_from = 0; //hapus yang blom ada action apa2 $q = "DELETE FROM {$vpt->table_name} WHERE order_app_id = '{$app->app_id}' AND order_status = '0' AND order_status_from = '0'"; $db->query($q, 0); $arrVpt = $vpt->getWhere("order_app_id = '{$app->app_id}' AND order_status = '0' AND order_status_from != '0' "); if (count($arrVpt) > 0) { die("Please wait for the payment response"); } if ($vpt->save()) { // pr($paket); // pr($app); try { // Set our server key //live // Veritrans_Config::$serverKey = 'VT-server-3UfrS7tn0EDT99S2B18TnUh_'; //sandbox Veritrans_Config::$serverKey = $this->getKeyUsed(); } catch (Exception $e) { echo $e->getMessage(); } if ($this->isProd) { // Uncomment for production environment Veritrans_Config::$isProduction = true; // Uncomment to enable sanitization Veritrans_Config::$isSanitized = true; // Uncomment to enable 3D-Secure Veritrans_Config::$is3ds = true; } $acc = Account::getAccountObject(); $exp = explode(" ", $acc->admin_nama_depan); $billing_address = array('first_name' => $exp[0], 'last_name' => $exp[1], 'phone' => $acc->admin_phone, 'country_code' => 'IDN'); $customer_details = array('first_name' => $exp[0], 'last_name' => $exp[1], 'email' => $acc->admin_email, 'phone' => $acc->admin_phone, 'billing_address' => $billing_address); $item1_details = array('id' => $app->app_id, 'price' => $paket->paket_price, 'quantity' => 1, 'name' => $app->app_name . " " . $paket->paket_name . " 1 year"); $item_details = array($item1_details); $transaction = array('transaction_details' => array('order_id' => $vpt->order_id, 'gross_amount' => $paket->paket_price), 'customer_details' => $customer_details, 'item_details' => $item_details); try { // Redirect to Veritrans VTWeb page header('Location: ' . Veritrans_VtWeb::getRedirectionUrl($transaction)); } catch (Exception $e) { echo $e->getMessage(); if (strpos($e->getMessage(), "Access denied due to unauthorized")) { 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; } } } else { //if save die("Please contact admin"); } }