从开始到结束传递变量-Paypal

从开始到结束传递变量-Paypal,paypal,Paypal,这件事我已经做了好几天了,但我似乎无法理解。我想做的就是当按下订阅按钮时,一个变量是send(post-get-i-not-care),付款完成并与我的变量一起登陆成功页面 从我所能收集到的信息来看,这应该能够做到: <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick"> &l

这件事我已经做了好几天了,但我似乎无法理解。我想做的就是当按下订阅按钮时,一个变量是send(post-get-i-not-care),付款完成并与我的变量一起登陆成功页面

从我所能收集到的信息来看,这应该能够做到:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="0000000">
<Input type="hidden" name="custom" value="<?php md5($code.microtime()); ?>"/>
<input type="image" src="https://www.sandbox.paypal.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.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>


缺少
回显
。与此相反:

<?php md5($code.microtime()); ?>

试试这个:

<?php echo md5($code.microtime()); ?>
<input type="hidden" name="custom" value=<?php echo "\"".md5($code.microtime())."\""; ?>/>

PayPal不会处理您的自定义数据,因此与其将数据发送给他们并取回,不如将其存储在您自己的数据库中。使用
发票
作为键将数据与交易关联


在您的登录页中,您可以从PayPal交易获取
发票。然后,您可以从您自己的数据库中获取由该
invoice
id引用的数据。

变量“custom”和“invoice”都是PayPal所称的“pass-through”变量。PayPal不会对它们做任何处理,它只是在您收到的关于该交易的任何IPN通知(有人付款、退单等)中将它们传回给您

我个人可以通过使用“自定义”变量来确认这一点。我正在使用他们的标准(免费)支付解决方案目前

您如何监控IPN通知,以查看哪些变量被发回给您

编辑-在下面添加其他信息:

我想对此进行一点扩展,因为我最近遇到了一个与传递变量相关的问题

每笔交易的“发票”变量必须是唯一的;PayPal将只允许每个唯一发票字符串完成1笔付款。任何后续的结帐尝试(带有已付款的“发票”变量)将立即显示“此发票已付款”消息

另一方面,“自定义”变量不要求是唯一的,并严格用作传递变量-在大多数情况下,这是您在寻找“传递”功能时想要使用的


希望这能有所帮助——最近,独特性问题让我花了将近一整天的时间,在我的一个个人项目上,结帐过程中断了

问题似乎是,似乎没有在沙箱中通过自定义

遗憾的是,贝宝并不像我们想象的那么好

试试这个:

<?php echo md5($code.microtime()); ?>
<input type="hidden" name="custom" value=<?php echo "\"".md5($code.microtime())."\""; ?>/>

它会通过$\u POST['custom']传回吗?还是不走运。没有发送任何内容。这一原则是否适用于标准支付选项(当您托管按钮时,用户需要到Paypal才能完成交易)?@Joel您可以阅读Paypal标准API。Paypal将不会处理规范之外的任何变量,当用户重定向到成功页面时,这些变量可能会被丢弃<代码>发票
字段可用于跟踪应用程序的发票id,在成功页面中,您可以使用它获取其他数据并将其显示给用户。事实证明,仅此字段有一个“自定义”字段。是的,但它只有一个字段。如果只需要输入一个自定义值,则可以使用它。但对于多个值,最好将其保存在应用程序中,并且只将id保存到invoice字段中。Paypal不处理发票和自定义字段。发票在整个交易中必须是唯一的,因此它还可以跟踪客户是否已经为某个交易付款或上一个交易失败。