Я использую платежный шлюз для онлайн-транзакции, для которой я отправляю форму через этот скрипт, где я рассчитываю стоимость заказа и отправляю форму на URL-адрес платежного шлюза:
<?php
session_start();
header("Pragma: no-cache");
header("Cache-Control: no-cache");
header("Expires: 0");
require_once("./lib/config_paytm.php");
require_once("./lib/encdec_paytm.php");
if(!isset($_SESSION['groupid']) || !isset($_SESSION['userid'])){
header('location: cart.php');
exit();
}
$db= mysqli_connect('localhost','root','','project');
$groupid = $_SESSION['groupid'];
$userid = $_SESSION['userid'];
$charges = 0;
$disc = 0;
$taxes = 0;
$delfee =0;
$query_9="SELECT content,delievery_charges,taxes FROM orders WHERE userid='$userid' and groupid='$groupid' ";
$result_9=mysqli_query($db,$query_9);
if(mysqli_num_rows($result_9)==0){
header('cart.php');
}
while($row=mysqli_fetch_assoc($result_9)){
if(!empty($row["delievery_charges"])){
$charges = $charges + $row["delievery_charges"];
}
if(!empty($row["taxes"])){
$taxes = $taxes + $row["taxes"];
}
// I calculate charges,discount here
}
$net = round($charges - $disc + $taxes +$delfee);
$paytmcharge=$net + (0.0099 * $net);
$checkSum = "";
$paramList = array();
$ORDER_ID = "ORDS" . rand(10000,99999999).$_SESSION['userid'];
$CUST_ID = $_SESSION["userid"];;
$INDUSTRY_TYPE_ID = "Retail";
$CHANNEL_ID = "WEB";
$TXN_AMOUNT = round($paytmcharge);
// Create an array having all required parameters for creating checksum.
$paramList["MID"] = PAYTM_MERCHANT_MID;
$paramList["ORDER_ID"] = $ORDER_ID;
$paramList["CUST_ID"] = $CUST_ID;
$paramList["INDUSTRY_TYPE_ID"] = $INDUSTRY_TYPE_ID;
$paramList["CHANNEL_ID"] = $CHANNEL_ID;
$paramList["TXN_AMOUNT"] = $TXN_AMOUNT;
$paramList["WEBSITE"] = PAYTM_MERCHANT_WEBSITE;
$paramList["CALLBACK_URL"] = "https://www.mydomain.in/pgResponse.php";
//Here checksum string will return by getChecksumFromArray() function.
$checkSum = getChecksumFromArray($paramList,PAYTM_MERCHANT_KEY);
?>
<html>
<head>
<title>Merchant Check Out Page</title>
</head>
<body>
<center><h1>Please do not refresh this page...</h1></center>
<form method="post" action="<?php echo PAYTM_TXN_URL ?>" name="f1">
<table border="1">
<tbody>
<?php
foreach($paramList as $name => $value) {
echo '<input type="hidden" name="' . $name .'" value="' . $value . '">';
}
?>
<input type="hidden" name="CHECKSUMHASH" value="<?php echo $checkSum ?>">
</tbody>
</table>
<script type="text/javascript">
document.f1.submit();
</script>
</form>
</body>
</html>
В моем ответном скрипте получено из платежного шлюза (упомянутого ниже) меня перенаправляют в корзину. php потому что, вероятно, мои $ _SESSION ['groupid'] и $ _SESSION ['userid'] не установлены
<?php
session_start();
header("Pragma: no-cache");
header("Cache-Control: no-cache");
header("Expires: 0");
if(!isset($_SESSION['userid']) || !isset($_SESSION['groupid'])){
header('location: cart.php');//I am always getting redirected here
exit();
}
//check if transaction is successfull or not
?>
<html>
<head>
<title>Merchant Check Out Page</title>
</head>
<body>
//show if transaction was successfull or not
</body>
</html>
Я пробовал session_cache_limiter('private') ; session_cache_expire(0);
, но он по-прежнему не работает, и все мои переменные сеанса потеряны. Как я могу использовать nocache без потери переменных сеанса