【问题标题】:php session not working when my page redirect from payment gateway server to my page当我的页面从支付网关服务器重定向到我的页面时,php 会话不起作用
【发布时间】:2016-02-10 18:04:17
【问题描述】:

我正在使用一些 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 
}
?>

【问题讨论】:

  • 你能和我们分享一些代码吗?您如何存储会话?
  • 我在我的问题中添加了一些代码
  • Php 会话独立于用户的浏览器。会话页面、网关页面和成功页面是否在同一个域名(即站点/服务器)上?我怀疑网关页面做了类似session_destroy() 的事情,但它可能是错误的。无论如何显示的代码是不够的。
  • 是的,我们在最终成功页面中将此称为 ($_SESSION['blockTicketNumber'] ) 会话,用于确认票证并显示预订的票证详细信息,但在从支付网关重定向后,它将显示空值。

标签: php json session payment payumoney


【解决方案1】:

这种行为的原因是会话 cookie 没有到期日期,并且会在关闭浏览器或离开网站时被删除。因此,当用户从支付站点返回时,cookie 将不再存在。

解决方案是在回调链接的查询字符串中加入一些标识属性。您还必须将会话数据与标识属性一起存储在您的服务器上。

【讨论】:

    【解决方案2】:

    我没有尝试过,但您可以尝试通过 paymnet 网关重定向页面将“会话变量”从您的网站传递到 payumoney 网关成功页面。/

    示例: 1)您的网站支付表单+将您的会话存储在全球会话变量($SESSION[var]="abc")+并将您的会话变量存储在(支付网关给出的数组参数)->(2)网关页面-> (3) 从传递的数组中再次访问您的会话变量。

    注意:- 不要依赖网关成功页面上的 session_start() 函数。 告诉我它是否有效。

    【讨论】:

      猜你喜欢
      • 2015-04-28
      • 1970-01-01
      • 2016-04-24
      • 2021-04-28
      • 1970-01-01
      • 2018-03-08
      • 2021-01-12
      • 2018-07-10
      • 1970-01-01
      相关资源
      最近更新 更多