贝宝立即购买按钮自定义变量不起作用
PayPal Buy Now button custom variable not working
我正在尝试通过 3 个经典步骤执行付款:
1) 带有 PayNow 按钮的订单页面
2) 贝宝支付
3) 重定向到 "Payment completed page"
我想要实现的是让一个 ID 从第 1 步到第 3 步。我试图做的是将此字段插入到 "custom" 变量中,如:
<input type="hidden" name="custom" value="--Server Code--">
PayPal 付款后,PayPal 将我重定向到我的页面:
http://www.mysite.cm/tx=blalba?aaaa
在此URL中没有自定义字段。如果从 API 开始,我联系 PayPal 获取销售详细信息,我没有得到与我的自定义字段相关的任何信息。
我做错了什么?
我正在考虑使用 cookie 来解决问题,但我更喜欢以标准方式进行。
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="return" value="testestest">
<input type="image" src="https://www.paypalobjects.com/it_IT/IT/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal è il metodo rapido e sicuro per pagare e farsi pagare online.">
<img alt="" border="0" src="https://www.paypalobjects.com/it_IT/i/scr/pixel.gif" width="1" height="1">
</form>
PayPal 自定义变量在 IPN(即时付款通知)中返回,而不是在用户完成付款后返回您的网站时返回。
在您的情况下,只需一个会话变量就足够了。
编辑:
另一种方法可能是在 "return" 字段中添加正确的 url 值。示例:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="return" value="http://www.website.com?pram=value">
<input type="hidden" name="cancel" value="http://www.website.com?param=value">
<input type="hidden" name="business" value="yourpaypal@email.com">
<input type="hidden" name="item_name" value="Test">
<input type="hidden" name="amount" value="9.00">
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/it_IT/IT/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal è il metodo rapido e sicuro per pagare e farsi pagare online.">
<img alt="" border="0" src="https://www.paypalobjects.com/it_IT/i/scr/pixel.gif" width="1" height="1">
</form>
现有的答案已经提到 IPN 是要走的路,但缺少的是如何实际实施它的更多信息。
我最近不得不自己做这个,所以这是对我有用的解决方案:
首先,您需要将您的 ID 添加到 "Pay Now" 按钮的 HTML,例如 "custom" 变量,如问题所示。
在我自己的实现中,我在使用 "custom" 变量 时遇到了一些问题(不记得细节了),所以我将我的 ID 作为 [= IPN 中的 47=] 参数 "notify" URL 改为:
<input type="hidden" name="notify_url" value="https://example.com/notify/?id=xyz">
这是我的按钮的完整 HTML 代码:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ABCDEFGHILJKLM">
<table>
<tr><td><input type="hidden" name="on0" value="Betrag">Betrag</td></tr><tr><td><select name="os0">
<option value="Gebuehr">Gebuehr €3,50 EUR</option>
<option value="Gebuehr und Spende">Gebuehr und Spende €5,00 EUR</option>
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="Jetzt einfach, schnell und sicher online bezahlen – mit PayPal.">
<img alt="" border="0" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="notify_url" value="https://example.com/notify/?id=xyz">
</form>
付款过程完成后,PayPal会post一个IPN message到我的notifyURL,里面有很多关于交易的信息(见link 了解更多信息).
我的 ID 是通过 URL 参数传递的,所以我可以这样获取它 (in PHP):
$uid = "";
if (!empty($_GET['id'])) {
$uid = $_GET['id'];
}
当然,您需要 check whether the IPN call is actually coming from PayPal。
我正在尝试通过 3 个经典步骤执行付款:
1) 带有 PayNow 按钮的订单页面
2) 贝宝支付
3) 重定向到 "Payment completed page"
我想要实现的是让一个 ID 从第 1 步到第 3 步。我试图做的是将此字段插入到 "custom" 变量中,如:
<input type="hidden" name="custom" value="--Server Code--">
PayPal 付款后,PayPal 将我重定向到我的页面:
http://www.mysite.cm/tx=blalba?aaaa
在此URL中没有自定义字段。如果从 API 开始,我联系 PayPal 获取销售详细信息,我没有得到与我的自定义字段相关的任何信息。
我做错了什么? 我正在考虑使用 cookie 来解决问题,但我更喜欢以标准方式进行。
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="return" value="testestest">
<input type="image" src="https://www.paypalobjects.com/it_IT/IT/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal è il metodo rapido e sicuro per pagare e farsi pagare online.">
<img alt="" border="0" src="https://www.paypalobjects.com/it_IT/i/scr/pixel.gif" width="1" height="1">
</form>
PayPal 自定义变量在 IPN(即时付款通知)中返回,而不是在用户完成付款后返回您的网站时返回。
在您的情况下,只需一个会话变量就足够了。
编辑:
另一种方法可能是在 "return" 字段中添加正确的 url 值。示例:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="return" value="http://www.website.com?pram=value">
<input type="hidden" name="cancel" value="http://www.website.com?param=value">
<input type="hidden" name="business" value="yourpaypal@email.com">
<input type="hidden" name="item_name" value="Test">
<input type="hidden" name="amount" value="9.00">
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/it_IT/IT/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal è il metodo rapido e sicuro per pagare e farsi pagare online.">
<img alt="" border="0" src="https://www.paypalobjects.com/it_IT/i/scr/pixel.gif" width="1" height="1">
</form>
现有的答案已经提到 IPN 是要走的路,但缺少的是如何实际实施它的更多信息。
我最近不得不自己做这个,所以这是对我有用的解决方案:
首先,您需要将您的 ID 添加到 "Pay Now" 按钮的 HTML,例如 "custom" 变量,如问题所示。
在我自己的实现中,我在使用 "custom" 变量 时遇到了一些问题(不记得细节了),所以我将我的 ID 作为 [= IPN 中的 47=] 参数 "notify" URL 改为:
<input type="hidden" name="notify_url" value="https://example.com/notify/?id=xyz">
这是我的按钮的完整 HTML 代码:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ABCDEFGHILJKLM">
<table>
<tr><td><input type="hidden" name="on0" value="Betrag">Betrag</td></tr><tr><td><select name="os0">
<option value="Gebuehr">Gebuehr €3,50 EUR</option>
<option value="Gebuehr und Spende">Gebuehr und Spende €5,00 EUR</option>
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="Jetzt einfach, schnell und sicher online bezahlen – mit PayPal.">
<img alt="" border="0" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="notify_url" value="https://example.com/notify/?id=xyz">
</form>
付款过程完成后,PayPal会post一个IPN message到我的notifyURL,里面有很多关于交易的信息(见link 了解更多信息).
我的 ID 是通过 URL 参数传递的,所以我可以这样获取它 (in PHP):
$uid = "";
if (!empty($_GET['id'])) {
$uid = $_GET['id'];
}
当然,您需要 check whether the IPN call is actually coming from PayPal。