>我正在使用一些API创建订票网站,我使用json获取和发布值,并创建php会话将数据传递到其他页面,第 1 页:创建会话第2页:支付网关(我检查了会话的支付页面,它工作正常)第 3 页:成功页面(从支付网关重定向到我的服务器页面后,会话在 Chrome 浏览器中显示空值,但在 Firefox 中工作正常)。欢迎所有建议,提前感谢。一些代码
<?php
session_start();
if(isset($_REQUEST['blockTicketId'])!=''){
$rootId= $_REQUEST['ruteId'];
if( $_REQUEST['dropPoint_'.$rootId]!=''){
$board = explode("_", $_REQUEST['dropPoint_'.$rootId]);
}
$_SESSION['formcity']=$_REQUEST['fromCity'];
$_SESSION['tocity']=$_REQUEST['toCity'];
$_SESSION['dateofjurny']=$_REQUEST['fromDate'];
$_SESSION['pickup']=$board[0];
$_SESSION['pickupTime']=$board[2];
$_SESSION['travelName']=$_REQUEST['travelNmae'];
$_SESSION['seat']=$_REQUEST['selectedSeat_'.$rootId];
echo $_SESSION['blockTicketNumber']=$_REQUEST['blockTicketId'];
$_SESSION['mobno']=$_REQUEST['bookerMob'];
$_SESSION['mailid']=$_REQUEST['bookerEmail'];
$_SESSION['user']=$_REQUEST['UserName_1'];
$_SESSION['amnt']=$_REQUEST['selectedSeatAmnt_'.$rootId];
?>
<html>
<head>
<script>
function submitPayuForm() {
var payuForm = document.forms.payuForm;
payuForm.submit();
}
</script>
</head>
<body onLoad="submitPayuForm()">
<form action="PayUMoney_form.php" method="post" name="payuForm">
<table>
<tr>
<td></td>
</tr>
<tr>
<td></td>
<td><input style="visibility:hidden" name="amount" value="<?php echo "1"; ?>" /></td>
<td></td>
<td><input style="visibility:hidden" name="firstname" id="firstname" value="<?php echo $_REQUEST['UserName_1']; ?>" /></td>
</tr>
<tr>
<td></td>
<td><input style="visibility:hidden" name="email" id="email" value="<?php echo $_REQUEST['bookerEmail']; ?>" /></td>
<td></td>
<td><input style="visibility:hidden" name="phone" value="<?php echo $_REQUEST['bookerMob']; ?>" /></td>
</tr>
<tr>
<td colspan="4"><input type="submit" style="visibility:hidden" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>
<?php
}
?>
此行为的原因是会话 Cookie 没有到期日期,并且在浏览器关闭或网站离开时会被删除。因此,当用户从支付网站返回时,cookie将不再存在。
解决方案是在回调链接的查询字符串中合并一些标识属性。您还必须将会话数据与标识属性一起存储在服务器上。
我没有尝试过,但您可以尝试通过Paymnet网关重定向页面将"会话变量"从您的网站传递到Payumoney网关成功页面。
例:1)您的网站付款表单 + 将您的会话存储在全局会话变量 ($SESSION[var]="abc") + 并将您的会话变量存储在(支付网关给出的数组参数)中 -> (2) 网关页面 -> (3) 从传递的数组再次访问您的会话变量。
注意:- 不要依赖网关成功页面上的 session_start() 函数。告诉我它是否有效。