我想在用户付款后从paypal获取用户ID。
Pay.php
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="<?php echo $merchant_email ?>">
<input type="hidden" name="item_name" value="IPN test">
<input type="hidden" name="item_number" value="1">
<input type="hidden" name="amount" value="0.01">
<input type="hidden" name="notify_url" value="<?php echo $ipn_url ?>">
<input type="hidden" name="return" value="<?php echo $return_url ?>">
<input type="hidden" name="cancel_return" value="<?php echo $cancel_url ?>">
<input type="hidden" name="userid" value="888">
<input type="hidden" name="currency_code" value="USD">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but23.gif"
border="0" name="submit" alt="Buy Now">
所以我会在我的paypal帐户中启用ipn并指向http://www.domain.com/ipn.php?
在ipn.php代码中
<?php
$userid = $_POST['userid'];
$qry = "INSERT into mypayments(userid) VALUES ('$userid') “;
$result = mysql_query($qry,$db);
?>
这是对的吗?我如何从贝宝获得验证?
答案 0 :(得分:8)
我认为 userid 是一个错误的名称,不会在您的IPN邮件中返回。我使用可选字段来传递ID和处理事务所需的东西。
这些可选标记 on0 , on1 或 on3 表示自定义字段名称, os0 ,<自定义字段值的strong> ls1 和 os2 。这些值可以达到 on6 和 os6 。
我会发送 on0 ,其值为“UserID”, os0 为实际ID。
这些值将在IPN中表示如下:
os0 表示为 option_selection1
os1 表示为 option_selection2
os2 表示为 option_selection3
on0 表示为 option_name1
on1 表示为 option_name2
on2 表示为 option_name3
答案 1 :(得分:1)
使用“自定义”变量。
<input type="hidden" name="custom" value="user_id" />
答案 2 :(得分:0)
这是一个两步过程。
PayPal会将IPN发布到您在$ipn_url
中指定的网址。
当您使用额外的VERIFIED
参数(details)将所有IPN数据发布回PayPal时,您会收到cmd=_notify-validate
响应。