2

我有一个关于在用户登录的页面上使用贝宝的问题

它是用 php

如果贝宝重定向回该页面,您如何让用户仍然获得该页面的授权。

我读到了一些关于使用 PDT 将 session_id 赋予自定义变量的内容,如果您有多个会话变量,那该怎么办。您还可以将数组传递给自定义变量吗?

它是如何完成的,编码方式

任何见解都是好的

编辑:

PDT 自定义变量是否只是一些您自己发明的名称,您粘贴在其他强制变量后面。

像这样:

$req = "tx=$tx&at=$token&cmd=$cmd";

$req .= "&somevariablename=".session_id();

谢谢,理查德

4

5 回答 5

2

所以如果我理解正确:

  1. 用户已在您的页面上登录。
  2. 他们点击贝宝按钮/提交表格
  3. 现在他们在 www.paypal.com 完成交易。
  4. 完成后,它们将被重定向回您的页面。

您可以使用 cookie,但它们不是故障安全的,因为用户可能已禁用它们。

一种可能的方法是制作一个唯一的标识字符串,该字符串将发送到贝宝,以便将它们重定向到带有该字符串的自定义 URL。在该页面中验证它,并授权用户。

于 2009-09-29T15:49:48.883 回答
2

可能是我错过了一些东西。

因此,您的用户登录 .. 单击立即购买按钮或其他任何内容并转到贝宝网站,完成后在位于用户区域内的页面上返回您的网站。

这应该可以无缝地工作,而无需您做任何事情。除非用户在贝宝网站上花费太多时间并且在服务器上达到会话过期时间,或者用户关闭浏览器并直接进入您的贝宝支付页面。

会话将保持活动状态,只要会话超时允许,用户就可以在您的站点和其他站点之间无缝地来回移动。

于 2009-09-29T18:46:36.083 回答
2

只需将当前会话 ID(使用 $id = session_id(); 获取)传递给 Paypal,一旦您从 Paypal 获取用户和会话 ID,只需将会话 ID 设置为 Paypal 使用 session_id( $idPaypalSent);

于 2009-09-29T15:58:39.777 回答
1

我很抱歉碰到一个老问题,但今天早上我遇到了这个问题。

原来我忘记了 session_start(); 哦!

在我在退货(订单确认)页面上这样做之后,结果我的会话一直都很好 - 它只是没有在那个特定页面上开始。

希望这可以帮助某人

echo 'session var:'.$_SESSION['var'];
if (!isset($_SESSION))
{
    session_start();
}
echo 'session var again:'.$_SESSION['var'];
于 2011-07-29T09:47:48.977 回答
0

你对 session id 有一个错误的概念:session id 不仅仅是另一个 session 变量,而是 session 的 id,这样你就可以将用户分配给 session 变量。您可以通过获取会话 id$sess_id = session_id();并将其附加到自定义返回变量作为"&ppsessid=" . $sessid. 然后,您可以通过session_id($_GET['ppsessid']);.

于 2009-09-29T16:05:30.633 回答