我有一个带有设置订阅按钮的Paypal帐户。买方设置订阅后,我将其发送到收据页面。在此页面上,我需要从Paypal检索变量以通过数据库进行更新。
但未检索到变量。
这是我到目前为止尝试过的:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="business" value="mybusinessname">
<input type="hidden" name="lc" value="IE">
<input type="hidden" name="item_name" value="Monthly Subscription">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="a1" value="0.00">
<input type="hidden" name="p1" value="1">
<input type="hidden" name="t1" value="M">
<input type="hidden" name="src" value="1">
<input type="hidden" name="a3" value="1.50">
<input type="hidden" name="p3" value="1">
<input type="hidden" name="t3" value="M">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="bn" value="PP-SubscriptionsBF:btn_subscribeCC_LG.gif:NonHosted">
<input type="hidden" name="custom" value="test_value">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
已启用Paypal上的即时付款通知(IPN)详细信息,并指向:
https://www.mydomain/payments/
IPN历史记录显示来自Paypal的通知已正确发送到通知URL(上方)
但是,收据页面显示
Error
Undefined index: custom
要获取自定义变量,我尝试使用类似的方法GET,POST甚至REQUEST方法
test 1: <?php echo $_GET["custom"]; ?>
test 2: <?php echo $_POST["custom"]; ?>
然后我尝试了
<?php
if (isset($_POST['custom'])) {
$custom_display = $_POST['custom'];
}
?>
但这会导致:Undefined variable: custom_display
我所需要做的就是获取自定义变量。
我猜我做错了,但是经过数小时的搜索答案并尝试了不同的设置(例如,在表单中动态发送通知网址,在Paypal中更改设置,使用不同的网址等),似乎没有为我工作,我被困住了
任何帮助将不胜感激!
答案 0 :(得分:0)
几个月前,我遇到了same issue (?)。答案似乎是:PayPal不再在IPN中通过custom
(也不接受return
的值)。两者都在去年某个时候停止工作。
我的解决方法是使用subscr_id
值查找客户资料。 YMMV。