So i use payment method with midtrans and its works. the problem was to use handler/ request to update mysql, i need to change status database. Help me please…..
~
<?php
namespace Midtrans;
require('admin/inc/db_config.php');
require('admin/inc/essentials.php');
require('inc/midtrans/Midtrans.php');
date_default_timezone_set("Asia/Jakarta");
session_start();
if(!(isset($_SESSION['login']) && $_SESSION['login']==true)){
redirect('index.php');
}
if(isset($_POST['pay_now']))
{
Config::$serverKey = 'SB-Mid-server-cVWDFZurOiO0YqrkLCKn6qRS';
Config::$clientKey = 'SB-Mid-client-mtGw2S9jLzeMkWx3';
// Enable sanitization
Config::$isSanitized = true;
// Enable 3D-Secure
Config::$is3ds = true;
$CUST_ID = $_SESSION['uId'];
$ORDER_ID = 'ORD_'.$_SESSION['uId'].random_int(11111,9999999);
$gross_amount = $_SESSION['room']['payment'];
$transaction_details = array(
'order_id' => $ORDER_ID,
'gross_amount' => $_SESSION['room']['payment'], // no decimal allowed for creditcard
);
$transaction_data = array(
'transaction_details' => $transaction_details
);
$frm_data = filteration($_POST);
$query1 = "INSERT INTO `booking_order`(`user_id`, `room_id`, `check_in`,`check_out`, `order_id`) VALUES (?,?,?,?,?)";
insert($query1,[$CUST_ID,$_SESSION['room']['id'],$frm_data['checkin'],$frm_data['checkout'],$ORDER_ID],'issss');
$booking_id = mysqli_insert_id($con);
$query2 = "INSERT INTO `booking_details`(`booking_id`, `room_name`, `price`, `total_pay`,
`user_name`, `phonenum`, `address`) VALUES (?,?,?,?,?,?,?)";
insert($query2,[$booking_id,$_SESSION['room']['name'],$_SESSION['room']['price'],$gross_amount,$frm_data['name'],
$frm_data['phonenum'],$frm_data['address']],'issssss');
try {
$snap_token = Snap::getSnapToken($transaction_data);
} catch (\Exception $e) {
echo $e->getMessage();
}
}
?>
<!DOCTYPE html>
<html>
<body>
<button id="pay-button">Pay!</button>
<pre><div id="result-json">JSON result will appear here after payment:<br></div></pre>
<!-- TODO: Remove ".sandbox" from script src URL for production environment. Also input your client key in "data-client-key" -->
<script src="https://app.sandbox.midtrans.com/snap/snap.js" data-client-key="<?php echo Config::$clientKey;?>"></script>
<script type="text/javascript">
document.getElementById('pay-button').onclick = function(){
// SnapToken acquired from previous step
snap.pay('<?php echo $snap_token?>', {
// Optional
onSuccess: function(result){
$frm_data = filteration($_POST);
$q = "UPDATE `booking_order` SET `transaction_status`='paid' WHERE `order_id`=? ";
$values = [$frm_data['transaction_status']];
$res = update($q,$values,'ss');
/* You may add your own js here, this is just example */
console.log('success');console.log(result);
// document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
},
// Optional
onPending: function(result){
/* You may add your own js here, this is just example */
// document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
console.log('pending');console.log(result);
},
// Optional
onError: function(result){
/* You may add your own js here, this is just example */
// document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
console.log('error');console.log(result);
}
});
};
</script>
</body>
</html>
~