将参数从paypal传递回网站以更新数据库

时间:2017-09-16 13:46:24

标签: php

在付款成功付款的那一刻,我通过了一个带有参数的网址,例如:

    if($_GET['c'] == 'h7Y6734da')
{
    $sqlInsert = ("UPDATE Customer SET Membership_Status = 1 WHERE Id = :user");
    $preparedStatement = $db->prepare($sqlInsert);
    $preparedStatement->execute(array(':user' => $userid));
}

我有一些代码搜索代码然后更新数据库中的成员资格字段。

{{1}}

在单击付款按钮之前,客户将访问mysite.com/membership.php页面(其中Id存储在会话中)。

我的数据库没有更新,我不知道为什么,我相信当从paypal发回页面时,会话正在丢失,但我不确定我还能做些什么。

1 个答案:

答案 0 :(得分:0)

您应该粘贴所有代码信息,但我会尽力提供帮助。

据我所知,您向Paypal发送了回复网址'如mysite.com/membership.php?c=h7Y6734da。我不认为您的会话在从Paypal返回时无效(如何获得会话用户信息?在示例代码中我无法看到它)。

您可以查看Paypal关于如何与付款数据转移进行互动的官方文档:https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/paymentdatatransfer/

也许您必须在PayPal帐户中启用自动退货,否则会忽略返回字段。然后您就不会获得任何GET(并且您的代码永远不会更新)。更多信息here

这可以解释为什么您不能更新您的用户信息。

如果您使用的是notify_url:

<input type="hidden" name="notify_url" value="mysite.com/membership.php?c=h7Y6734da">
每次交易发生时都会触发 IPN ,无论用户是否在完成付款后将其恢复到您的网站

通知URL仅用于IPN,它将覆盖您在IPP的PayPal配置文件中的任何设置。需要在您的PayPal帐户配置文件中配置PDT,以便将数据返回到您的返回URL。

希望它有所帮助!如果不是,请尝试使用完整的代码示例和特定问题更新您的问题!