PayPal POST变量不工作(PHP)

PayPal POST变量不工作(PHP),php,post,paypal,paypal-sandbox,Php,Post,Paypal,Paypal Sandbox,我正在尝试在我正在工作的网站上设置PayPal“订阅”付款按钮。它是一个表单,发送到PayPal,然后在交易成功完成时将用户发送回返回URL。我目前正在使用PayPal沙盒来测试这一点。问题是POST变量没有被发送到感谢页面(这是一个PHP页面供参考) 我之所以需要这样做,是因为我正在更新一个数据库,如果用户成功完成一个事务,它需要查看返回的变量,确定用户付费,然后自动更新MySQL数据库中的用户信息 在过去的两周里,我一直与贝宝的一位代表保持联系,他们似乎帮不上忙。我还研究了整个网络和堆栈溢出

我正在尝试在我正在工作的网站上设置PayPal“订阅”付款按钮。它是一个表单,发送到PayPal,然后在交易成功完成时将用户发送回返回URL。我目前正在使用PayPal沙盒来测试这一点。问题是POST变量没有被发送到感谢页面(这是一个PHP页面供参考)

我之所以需要这样做,是因为我正在更新一个数据库,如果用户成功完成一个事务,它需要查看返回的变量,确定用户付费,然后自动更新MySQL数据库中的用户信息

在过去的两周里,我一直与贝宝的一位代表保持联系,他们似乎帮不上忙。我还研究了整个网络和堆栈溢出,目前的答案似乎都没有解决我的问题。以下是我尝试过的:

  • 我开始尝试使用GET变量(比如,但这种方式不支持GET变量)。这导致返回URL的末尾返回了一个疯狂的变量字符串,而不是我的ID变量(就像字符集和其他东西)。PayPal代表解释说,我需要使用的变量是POST变量

  • 我在三个不同的服务器/主机包上设置了页面,以查看主机是否存在问题。我使用的三个是GoDaddy、JustHost和123 reg(英国).None工作。我假设主机会很好,因为PayPal无处不在,但我仔细检查了一下以确定。我知道.htaccess文件并没有阻止POST变量工作,因为我已经使用了该站点表单中的PHP邮件功能,所以所有功能都可以工作

  • 我尝试了$\u请求变量,而不是此处建议的$\u POST变量:

以下是这两个页面上使用的代码。请随意转到这些页面,亲自测试问题,看看它是否起作用:

代码
任何帮助都将不胜感激,因为这让我在过去的几周里感到沮丧。提前谢谢!

如果您想在返回页面中包含POST数据,您需要设置PDT(支付数据传输)

不过,对于更新数据库或任何您需要确保发生的事情,不建议这样做,因为即使启用了自动返回功能,也不能保证用户将实际返回到您的站点,并且您最终肯定会遇到无法正确更新的事务

这就是为什么建议使用IPN。无论用户是否返回您的站点,IPN都将被触发


保持您的感谢页面简单,并在IPN内完成所有支付后处理。

交易详细信息进入IPN页面,而不是返回页面。IPN页面是HTML表单中设置的变量吗?贝宝代表甚至没有提到IPN,所以我不确定是否需要它?您应该阅读IPN,这是过程中的一个重要部分ssI am。我只是想知道代表如何能够在不使用IPN的情况下将变量成功发布到他的屏幕截图上。太好了,谢谢。我已经查找了IPN并将数据发送到HTML表单中的notify_url参数。虽然有一点延迟,但它似乎工作正常(这不是一个即时更新;有时需要一两分钟)。我已经读到滞后只是系统的一部分,所以我们将使用它。谢谢安德鲁!
<html>
<head>
</head>
<body>
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" id="paypal_form" method="post" target="_top">
        <input type="hidden" name="cmd" value="_xclick-subscriptions">
        <input type="hidden" name="item_name" value="Test Monthly Subscription">
        <input type="hidden" name="business" value="mbizz@paypal.com">
        <input type="hidden" name="a3" value="7.00">
        <input type="hidden" name="p3" value="1">
        <input type="hidden" name="t3" value="M">
        <input type="hidden" name="src" value="1">
        <input type="hidden" name="sra" value="1">
        <input type="hidden" name="no_note" value="1">
        <input type="hidden" name="custom" value="20130731 it worked">
        <input type="hidden" name="cancel_return" value="http://www.miller-media.com">
        <input type="hidden" name="return" value="http://www.miller-media.com/sites/paypal_test/mmiller.php">
        <input type="hidden" name="rm" value="2">
        <input type="submit">
    </form>
</body>
</html>
<html>
<head>
</head>
<body>
    TEST FOR MILLER MEDIA

    THIS IS FOR POST 
    <?php
        echo ("Custom = " . $_POST['custom']);
        echo ("Transaction = " . $_POST['txn_id']);
        echo ("First name = " . $_POST['first_name']);
        echo ("Last name = ". $_POST['last_name']);
    ?>


</body>
</html>
Here is the screenshot http://i.imgur.com/zno0UkK.jpg . But I just noticed I was using a Buy Now button but your button is a subscription.

The txn_id is not returned for subscription (that is by design) . Please see below for variables that are returned. https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_IPNandPDTVariables#id091EB0901HT

This is what I get with subscription signup http://i.imgur.com/BOrw1Hn.jpg . A txn_id is not returned.

Here is also the complete POST data :

POSTDATA=txn_type=subscr_signup&subscr_id=I-0RSGVWA904CF&last_name=Connor&residence_country=GB&mc_currency=USD&item_name=StormAware+Monthly+Subscription&business=mbizz%40paypal.com&amount3=7.00&recurring=1&address_street=1+Main+Terrace&payer_status=verified&payer_email=UKrealPro%40paypal.com&address_status=confirmed&first_name=John&receiver_email=mbizz%40paypal.com&address_country_code=GB&payer_id=UXPBYWUW8ZDHA&address_city=Wolverhampton&reattempt=1&payer_business_name=John+Connor%27s+Test+Store&address_state=West+Midlands&subscr_date=16%3A37%3A38+Aug+05%2C+2013+PDT&address_zip=W12+4LQ&custom=20130731+it+worked&charset=windows-1252&period3=1+M&address_country=United+Kingdom&mc_amount3=7.00&address_name=John+Connor%27s+Test+Store&auth=AOgsYFMneBuxymkc0UoZ6OI6D-BXCQmWRz5xyilJR1-7uCvNI1kB Om1eHPbogzB7YnoOUIAZZiFOrx0ZcUgN-gQ&form_charset=UTF-8