17

几天来,我一直试图穿过丛林(真的,PayPal,你为什么不把它清除掉......),以找到解决我非常简单的问题的方法。

我有一个会员订阅网站。客户在我的网站上使用他们的电子邮件和密码进行注册。然后他们去 PayPal 支付订阅费用。

我的问题是我如何在整个交易中传递密钥 -他们的电子邮件- 以便我知道付款给谁?

这是因为他们有时可能会使用一封电子邮件注册并使用另一封电子邮件付款。以及如何使用(安全)加密按钮完成所有操作。

我想我可以在 PayPal“创建 PayPal 付款按钮”页面上制作加密按钮。

步骤 3中,添加(x-ed out real url)高级变量:

notify_url=http://xxxxxxxxxx.com/xxxxx.php
test_ipn=1

获取代码:

<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="N6UMVCMXSWMYG">
<input type="image" src="https://www.paypalobjects.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.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

并将给定的代码粘贴到我的 php 页面中,但添加一个名为“ custom ”的隐藏字段,并给它手头的电子邮件并更改表单操作以转到沙箱

有点像这样:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">

<input type="hidden" name="custom" value="<?=$signUpEmail ?>">

<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG">
<input type="image" src="https://www.paypalobjects.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.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

这个自定义变量我以后可以在我的 ipn 页面上找到,这样我就知道会员资格是谁了..

我想对了吗?或者我应该用“手写”代码做按钮吗?或者有什么更好的方法吗?

4

2 回答 2

19

您可以在 Paypal 表单中使用一个字段来放置您想要的任何内容。归档的名称是“custom”。因此,您可以编写如下内容:

<input name="custom" value="blablabla" type="hidden">

我建议对自定义值的值进行编码。例如,某种 base64_encode 可能有助于阻止好奇的人。但是,手册中也很好地解释了您可以使用 Paypal 做什么。此链接和 此链接摘录。

此外,正如评论中所建议的,在您的网站和贝宝之间的退避通信中,不可能使用与您的前端相关的会话变量。

于 2012-11-05T07:59:28.947 回答
2

上述方式可行,尽管我在PayPal 沙箱不接受“常规 PayPal” hosted_button_id 时遇到了一些问题——这是通过在沙箱中重新创建 hosts_button_id 来处理的。

<input type="hidden" name="hosted_button_id" value="RECREATENEWINPAYPALSANDBOX">
于 2012-07-01T19:18:03.667 回答