Current File : /home/inlingua/public_html/icentex/inlingua_payment/payment/handlePaymentResponse.php |
<?php
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
date_default_timezone_set('Asia/Calcutta');
include_once("../dbConnection.php");
//mysql_connect($SERVER,$USERNAME, $PASSWORD);
//mysql_select_db($DATABASE);
ob_start();
include_once("../../class.phpmailer.php");
use PaymentHandler\APIException;
require_once("PaymentHandler.php");
use PaymentHandler\PaymentHandler;
// block:start:order-status-function
function getOrder($params) {
try {
$paymentHandler = new PaymentHandler("resources/config.json");
if ($params["status"] != "NEW" && $paymentHandler->validateHMAC_SHA256($params) === false) {
throw new APIException(-1, false, "Signature verification failed", "Signature verification failed");
} else {
$order = $paymentHandler->orderStatus($params["order_id"]);
return $order;
}
} catch (APIException $e ) {
http_response_code(500);
$error = json_encode(["message" => $e->getErrorMessage(), "error_code" => $e->getErrorCode(), "http_response_code" => $e->getHttpResponseCode()]);
echo "<p> Payment server threw a non-2xx error. Error message: {$error} </p>";
exit;
} catch (Exception $e) {
http_response_code(500);
echo "<p> Unexpected error occurred, Error message: {$e->getMessage()} </p>";
exit;
}
}
// block:end:order-status-function
function getStatusMessage($order) {
$message = "Your order with order_id " . $order["order_id"] . " and amount " . $order["amount"] . " has the following status: ";
$status = $order["status"];
switch ($status) {
case "CHARGED":
//$message = $message . "order payment done successfully";
break;
case "PENDING":
case "PENDING_VBV":
$message = $message ."order payment pending";
break;
case "AUTHORIZATION_FAILED":
$message = $message ."order payment authorization failed";
break;
case "AUTHENTICATION_FAILED":
$message = $message . "order payment authentication failed";
break;
default:
$message = $message ."order status " . $status;
break;
}
return $message;
}
// POST ROUTE
// block:start:construct-params
if (isset($_POST["order_id"])) {
$params = $_POST;
// block:end:construct-params
$order = getOrder($params);
//$message = getStatusMessage($order);
$date=date("Y-m-d H:i:s");
$ResTrackID=$order["order_id"];
$ResPaymentId=$order["txn_id"];
$ResAmount=$order["amount"];
$ResResult=$order["status"];
$txn_uuid=$order["txn_uuid"];
$ResRef=$order["id"];
$query="update ingl_payment_gateway set modifyDate='".$date."', pay_transaction='".$ResPaymentId."',pay_amount='".$ResAmount."',pay_date='".$date."',payment_status='".$ResResult."',payment_referance='".$ResRef."' where recNo='". $ResTrackID."' ";
$result=$conn->query($query) or die();
$query1="select * from ingl_payment_gateway where recNo='".$ResTrackID."' ";
$result1=$conn->query($query1);
$num1=$result1->fetch_assoc();
if($num1['payment_status']=="CHARGED" || $num1['payment_status']=="CAPTURED" || $num1['payment_status']=="APPROVED" || $num1['payment_status']=="SUCCESS")
{
$message="Dear Student,<br>We have received your payment successfully.<br>
Transaction Status :Successfull (".$num1['payment_status'].")<br>
Amount :Rs. ".$num1['pay_amount']."<br>
Payment No: ". $num1['recNo']."<br>
Name: ". $num1['Name']."<br>
Transaction Reference No: ". $num1['payment_referance']."<br>
Transaction ID: ". $num1['pay_transaction']."<br>
";
$message .="<br><br>Regards,<br>inlingua New Delhi";
$fromEmail= "icentex@inlinguanewdelhi.in";
$fromName="inlingua Payment Details";
$tomail_array=array();
$to=$num1['email'];
//$to1="vikasumrao@sify.com";
$to2="accounts@inlinguanewdelhi.com";
$to=$_REQUEST['email'];
//print_r($to);
array_push($tomail_array,$to);
array_push($tomail_array,$to2);
$subject="inlingua - Payment Received";
$domain = "inlinguanewdelhi.in";
$smtpHost = "mail.$domain";
$smtpUser = "admin@$domain";
$smtpPassword = "5B&vp7pgm7flABvi";
$mail_type="S";
$mail = new PHPMailer();
if($mail_type=="S")
{
$mail->IsSMTP(); // set mailer to use SMTP
}
if($mail_type=="N")
{
$mail->IsMail();
}
if($mail_type=="S")
{
$mail->Host = $smtpHost; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = $smtpUser; // SMTP username
$mail->Password = $smtpPassword; // SMTP password
}
$mail->From = $fromEmail;
$mail->FromName = $fromName;
foreach ($tomail_array as $toAddress)
{
//echo $toAddress;
$mail->AddAddress($toAddress, "");
}
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = $subject;
$mail->Body = $message;
//$mail->AddReplyTo("umraovikas@gmail.com","");
//$mail->AddAttachment($path);
if(!$mail->Send())
{
echo "Message could not be sent on mailid: <font color='red'>'".$to."'</font><br>";
echo "Please check the emailId.<br>";
echo "Mailer Error: " . $mail->ErrorInfo;
//exit;
}
$url='https://inlinguanewdelhi.in/icentex/inlingua_payment/pay_receipt.php?ResResult='.$ResResult.'&ResTrackId='.$ResTrackID;
header('Location: '.$url);
die();
}
else
{
/*
IMPORTANT NOTE - MERCHANT SHOULD UPDATE
TRANACTION PAYMENT STATUS IN MERCHANT DATABASE AT THIS POSITION
AND THEN REDIRECT CUSTOMER ON RESULT PAGE
*/
$date=date("Y-m-d H:i:s");
$query="update ingl_payment_gateway set modifyDate='".$date."', pay_transaction='".$ResTranId."',pay_amount='".$ResAmount."',pay_date='".$date."',payment_status='".$ResResult."',payment_referance='".$ResRef."' where recNo='".$ResTrackID."' ";
$result=$conn->query($query) or die("Error");
$query1="select * from ingl_payment_gateway where recNo='".$ResTrackID."' ";
$result1=$conn->query($query1);
$num1=$result1->fetch_assoc();
$url='https://inlinguanewdelhi.in/icentex/inlingua_payment/pay_receipt.php?ResResult='.$ResResult.'&ResTrackId='.$ResTrackID;
header('Location: '.$url);
die();
}
} else if (isset($_GET["order_id"])) { // GET ROUTE
$params = $_GET;
$order = getOrder($params);
$date=date("Y-m-d H:i:s");
$ResTrackID=$order["order_id"];
$ResPaymentId=$order["txn_id"];
$ResAmount=$order["amount"];
$ResResult=$order["status"];
//$ResRef=$order["txn_uuid"];
$ResRef=$order["id"];
$query="update ingl_payment_gateway set modifyDate='".$date."', pay_transaction='".$ResPaymentId."',pay_amount='".$ResAmount."',pay_date='".$date."',payment_status='".$ResResult."',payment_referance='".$ResRef."' where recNo='". $ResTrackID."' ";
$result=$conn->query($query) or die();
} else {
$params = $_GET;
$order = getOrder($params);
$date=date("Y-m-d H:i:s");
$ResTrackID=$order["order_id"];
$ResPaymentId=$order["txn_id"];
$ResAmount=$order["amount"];
$ResResult=$order["status"];
//$ResRef=$order["txn_uuid"];
$ResRef=$order["id"];
$query="update ingl_payment_gateway set modifyDate='".$date."',pay_transaction='".$ResPaymentId."',pay_amount='".$ResAmount."',pay_date='".$date."',payment_status='".$ResResult."',payment_referance='".$ResRef."' where recNo='". $ResTrackID."' ";
$result=$conn->query($query) or die();
http_response_code(400);
echo "<p>Required Parameter Order Id is missing</p>";
exit;
}
?>