如何通过“立即购买”按钮将会话变量传递给PayPal?

5

当我的用户使用保存在会话变量中的用户名和用户ID登录后,他们可以使用PayPal进行捐赠。只需在PayPal上简单生成即可的“立即购买”按钮。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXX">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

当支付成功后,所有的_POST数据都会被发送到我的confirm_payment.php页面。我可以使用他们付款所用的电子邮件地址并将其与我的用户数据库进行比较,以查找正确的用户,但我无法确定他们是否在PayPal和我的网站上使用相同的电子邮件地址。
我需要将$_SESSION['username']传递给PayPal,以便我可以使用此信息自动为我的用户提供赞助者身份。我可以添加类似以下内容的东西吗:
<input type="hidden" name="custom" value="custom variable">

如何将它应用到我的按钮代码?以下是有关可用变量的更多信息PayPal信息


如果我可以问一下,你是如何在确认付款页面上从PayPal获取会话信息的?我已经尝试在页面顶部使用$_SESSION['student_id'];,但没有起作用...我应该像这样捕获它$student_id = $_POST['custom'];与其他返回的项目一起吗? - php_javascript_html_dev
2个回答

3
我发现文档有些令人困惑,但经过大量网络搜索,我发现自定义变量不允许您创建自己的隐藏字段,但有三个变量可能会有用:
"custom" 可选 您自己跟踪目的的传递变量,买家看不到。 默认值-没有变量传回给您。256个字符
"item_number" 请参阅说明。传递变量,供您跟踪购买的产品或服务或所做出的捐款。在付款完成时,将向您传回指定的值。如果您希望PayPal跟踪库存或跟踪按钮销售的物品的利润和损失,则需要此变量。
"invoice" 可选 您可以使用的传递变量,以标识此购买的发票号码。 默认值-没有变量传回给您。127个字符。
因此,如果在允许立即购买按钮触发之前保存数据(我通过显示所做选择并将其保存到数据库的摘要屏幕来实现此目的),然后您可以将一个值(例如已保存数据的主键)作为自定义值。
请注意,数据将发布到您指定的即时付款通知页面。
来源:

https://www.x.com/developers/paypal/documentation-tools/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables#id08A6HF00TZS


0

是的,你可以像这样添加,这是正确的方法,当paypalIPNHandler上回传时,你将获得具有相同名称的查询字符串中此custom隐藏字段的值。


...而且令人困惑的是,被接受的答案是错误的答案。 - Igor Brejc
这个答案部分正确,custom 隐藏字段只能在“添加到购物车”按钮上工作,在“立即购买”按钮上不起作用。 - MarkoCen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接