num_rows > 0) {
$row = mysqli_fetch_assoc($result);
$cid = $row['id'];
if($cid != "") {
$query = "SELECT * FROM customer_tokens WHERE cid = ".$cid;
$result = mysqli_query($conn, $query);
if($result->num_rows > 0) {
$tokenFound = true;
$row = mysqli_fetch_assoc($result);
$tokenID = $row['access_token_value'];
}
}
}
if( $tokenID != ""){
// Updates Token then charges token
$result = \Stripe\Customer::update($tokenID, [
'source' => $_POST["stripeToken"],
]);
error_log($result);
$chargeCard = \Stripe\Charge::create([
'amount' => $charge, // $15.00 this time
'currency' => 'AUD',
'customer' => $tokenID // Previously stored, then retrieved
]);
$chargeID = $chargeCard["id"];
} else {
// Creates token and charges token
$apiEndpoint = \Eway\Rapid\Client::MODE_PRODUCTION;
$client = \Eway\Rapid::createClient($apiKey, $apiPassword, $apiEndpoint);
//create customer
$fullname = trim($_POST['fullname']);
$nameparts = explode(' ', $fullname);
$result = \Stripe\Customer::create([
'source' => $_POST['stripeToken'],
'email' => trim($_POST['email']),
'name' => $fullname,
'phone' => $phone
]);
$cust_id = $result["id"];
if(!$cid) {
$query = "INSERT INTO `customers`(`id`, `name`, `mobile`, `email`, `password`, `firebase_token`, `promo_code`, `promo_used`, `is_delete`, `created`, `modified`) VALUES (NULL,'".$fullname."','".$phone."','".$email."','','','','','',NOW(),NOW())";
$result = $conn->query($query);
if(!$result) {
error_log("Customer Add Error: ".$conn->error);
} else {
$cid = $result->insert_id;
$query = "INSERT INTO `customer_tokens`(`id`, `cid`, `access_token_value`, `status`, `created`, `modified`) VALUES (NULL,".$cid.",'".$cust_id."','',NOW(),NOW())";
$result = $conn->query($query);
if(!$result) {
error_log("Customer Token Add Error: ".$conn->error);
}
}
} else {
$query = "UPDATE customer_tokens SET access_token_value = '".$cust_id."', modified = NOW() WHERE cid = ".$cid;
$result = $conn->query($query);
if(!$result) {
error_log("Customer Token Update Error: ".$conn->error);
}
}
//charge
$chargeCard = \Stripe\Charge::create([
'amount' => $charge, // $15.00 this time
'currency' => 'AUD',
'customer' => $tokenID // Previously stored, then retrieved
]);
$chargeID = $chargeCard["id"];
}
} else {
// One time transaction
$apiEndpoint = \Eway\Rapid\Client::MODE_PRODUCTION;
$client = \Eway\Rapid::createClient($apiKey, $apiPassword, $apiEndpoint);
//create customer
$transaction = [
'Customer' => [
'Email' => trim($_POST['email']),
'Reference' => $_POST['reference'],
'CardDetails' => [
'Name' => $fullname,
'Number' => $_POST['EWAY_CARDNUMBER'],
'ExpiryMonth' => $_POST['EWAY_CARDEXPIRYMONTH'],
'ExpiryYear' => $_POST['EWAY_CARDEXPIRYYEAR'],
'CVN' => $_POST['EWAY_CARDCVN']
]
],
'Payment' => [
'TotalAmount' => $charge,
'InvoiceReference' => $_POST['reference'],
],
'TransactionType' => \Eway\Rapid\Enum\TransactionType::PURCHASE,
];
$response = $client->createTransaction(\Eway\Rapid\Enum\ApiMethod::DIRECT, $transaction);
}
} else if ($_POST['payment_type'] == 'token') {
$chargeCard = \Stripe\Charge::create([
'amount' => $charge, // $15.00 this time
'currency' => 'AUD',
'customer' => $tokenID // Previously stored, then retrieved
]);
$chargeID = $chargeCard["id"];
}
if($_POST['payment_type'] != 'account' && $chargeID != "") {
$sql = "UPDATE ".$table." SET payment_eway = '".$charge."' WHERE reference = '".$reference."'";
$response = $conn->query($sql);
if(!$response) {
error_log("payment add to database error ".$conn->error);
}
$error = false;
} else {
$error = true;
}
/*
echo '
';
print_r($response);
echo '
';
*/
if (!$error) {
echo "
Transaction Approved
";
echo "
";
$amount = floatval($_POST['amount']);
$reference = ($_POST['reference'] != '') ? $_POST['reference'] : $_POST['reference'];
$invname = $_POST['invname'];
$paidby = $_POST['payment_type'];
$invdesc = $_POST['invdesc'];
$invmessage = "Invoice Issued
Name $invname
Type $type
Email $email
Amount $amount
Paid By $paidby
Reference $reference
Description $invdesc";
send_mail('lwscann@gmail.com', 'invoice@angeldrivers.com.au', 'New Invoice For '.$invname ,$invmessage);
$amountArray["total"] = $amount;
if($_POST['levy'] != "0") {
$amountArray["levy"] = $_POST['levy'];
}
$query1 = "SELECT ".$spatulaID.", driver FROM ".$table." WHERE reference='".$reference."'";
$result = mysqli_query($conn, $query1);
$row = mysqli_fetch_assoc($result);
$spat_ref = $row[$spatulaID];
$driver_name = $row['driver'];
$query1 = "SELECT id FROM drivers WHERE driver='".$driver_name."'";
$result = mysqli_query($conn, $query1);
$row = mysqli_fetch_assoc($result);
$driver_id = $row['id'];
$invnamed = mysqli_real_escape_string($qcon, $invname);
$invdescd = mysqli_real_escape_string($qcon, str_replace("&","", $invdesc));
$query1 = "INSERT INTO invoices (id, reference, tokenid, invname, amount, tollAmount, email, transactionid, date_created, type, paidby, invdesc, driver) VALUES (NULL,'" . $reference . "','" . $tokencustomerid . "','" . $invnamed . "','" . $amountArray["total"] . "','" . $amountArray["tolls"] . "','" . $email . "','" . $chargeID . "','" . date('Y-m-d H:i:s') . "','" . $type . "','" . $paidby . "','" . $invdescd . "','" . $driver_name . "')";
$success = mysqli_query($conn, $query1);
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
if($type == "AA") {
$query1 = "SELECT cid FROM booking WHERE reference='".$reference."'";
$result = mysqli_query($conn, $query1);
$row = mysqli_fetch_assoc($result);
$cid = $row['cid'];
if($_REQUEST["referral"] != "none") {
$query1 = "UPDATE `credits` SET `reference` = '".$reference."', `is_used` = 1, `date_used` = NOW() WHERE `customer_id`='".$cid."' AND `is_used` = 0";
$result = mysqli_query($conn, $query1);
$query1 = "UPDATE `referal_claim` SET `reference_claimed` = '".$reference."', `date_last_claimed` = NOW() WHERE `customer_id`='".$cid."'";
$result = mysqli_query($conn, $query1);
}
$query1 = "SELECT promo_code, promo_used FROM customers WHERE id='".$cid."' ";
$result = mysqli_query($conn, $query1);
$row = mysqli_fetch_assoc($result);
$promo_code = $row['promo_code'];
$is_used = $row['promo_used'];
$is_used = $is_used + 1;
if($promo_code != ""){
$query1 = "UPDATE `customers` SET `promo_code` = '', promo_used = '".$is_used."' WHERE `id`='".$cid."'";
$result = mysqli_query($conn, $query1);
if(substr($_REQUEST['promo_code'], 0, 2) === "RF"){
$sql = "UPDATE `referrals` where `code` = '".$promo_code."' and `refered_id` = '".$cid."' SET `reference` = '".$reference."', `date_used` = NOW()";
$result = $conn->query($sql);
if(!$result) {
error_log($conn->error);
}
}
}
}
if (!$success) {
die("Couldnt enter invoice data: ".$conn->error);
} else {
date_default_timezone_set('Australia/Sydney');
$date = date("c");
$tollDesc = "";
if($amountArray["tolls"] != null) {
$result = mysqli_query($conn, "SELECT * FROM toll_estimates WHERE reference='".$reference."'");
if(!$result) {
error_log($conn->error);
} else {
if($result->num_rows > 0) {
$row = mysqli_fetch_assoc($result);
$tollDesc = $row['description'];
}
}
}
error_log(json_encode($amountArray, true));
$invoiceDetails = submitInvoice($invnamed, $email, $date, $invdescd, $amountArray, $reference, $type, $tollDesc);
error_log(json_encode($invoiceDetails, true));
if($invoiceDetails != "") {
$sql = "UPDATE booking SET xero_inv = '".$invoiceDetails['invoiceNumber']."' WHERE reference = '".$reference."' ";
$response = $conn->query($sql);
if(!$response) {
error_log("xero update database error ".$conn->error);
}
if($chargeID != "") {
$totalAmount = $amountArray["total"] + $amountArray["tolls"];
error_log("totalAmount = ".$totalAmount);
submitPayment($invoiceDetails['invoiceID'], $paymentCode, $date, $totalAmount, $reference);
}
$totalAmount = $amountArray["total"] + $amountArray["tolls"];
} else {
//something for accounts
}
}
if($spat_ref != "") {
require("../../vromo.php");
$url = "https://api.fleeteng.com.au/v2/graph/role/jobs/$spat_ref/dispatches?access_token=".$vromo;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, "$url");
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, '[{"vehicle":{"id":' . $driver_id . '},"type":"closed"}]');
$response = curl_exec($curlObj);
error_log($response);
curl_close($curlObj);
}
header('Location: https://desidrivers.com.au/payment/approved.php');
die();
} else {
echo "
Transaction has been declined
\n";
echo $errormessage.
"
\n";
echo "
";
}
?>