【问题标题】:Passing a variable from beginning to end - Paypal从头到尾传递一个变量 - Paypal
【发布时间】:2011-01-04 13:07:23
【问题描述】:

我已经在这几天了,我似乎无法弄清楚。我想要做的就是当订阅按钮被按下时,一个变量被发送(post get i dont 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>

非常感谢任何帮助(是的,我已经阅读了 paypal 和沙盒文档,只是不太擅长阅读。)

【问题讨论】:

    标签: paypal


    【解决方案1】:

    试试这个:

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

    缺少回显,并且引号在值周围,而不是 php

    【讨论】:

      【解决方案2】:

      问题似乎没有让 CUSTOM 在 Sandbox 中通过

      可惜 PayPal 并没有我们想象的那么好

      【讨论】:

        【解决方案3】:

        变量“custom”和“invoice”都是 PayPal 所说的“传递”变量。 PayPal 不会对它们做任何事情,它只是在您收到的有关该交易的任何 IPN 通知中将它们传回给您(有人付款、拒付等)。

        我可以亲自确认现在使用“自定义”变量可以正常工作。我目前正在使用他们的标准(免费)支付解决方案...

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

        编辑 - 在下方添加附加信息:

        我想稍微扩展一下,因为我最近遇到了一个与传递变量相关的问题!

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

        另一方面,“自定义”变量不需要是唯一的,并且旨在严格用作传递变量 - 在大多数情况下,这是您在寻找“直通”功能。

        希望对您有所帮助 - 最近在我的个人项目中,唯一性问题让我花费了将近一整天的时间来完成结帐流程!

        【讨论】:

          【解决方案4】:

          PayPal 不会处理您的自定义数据,因此无需将其发送给他们并取回,只需将其存储在您自己的数据库中即可。使用invoice作为键将数据与事务关联。

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

          【讨论】:

          • 此原则是否适用于标准支付选项(这是当您托管按钮但需要用户到 Paypal 才能完成交易时)?
          • @Joel 您可以阅读 Paypal 标准 API。 Paypal 不会处理除其规范之外的任何变量,并且在用户重定向到成功页面时可能会被丢弃。 invoice 字段可用于跟踪您的应用程序的 invoice_id,在成功页面中,您可以使用它来获取更多数据并显示给用户。
          • 原来有一个“自定义”字段。
          • 是的,但它只是一个字段。如果您只需要放置一个自定义值,那么您可以使用它。但是对于多个值,最好保留在应用程序中,并且仅将 id 保存到发票字段中。 Paypal 不处理发票和自定义字段。发票在交易中必须是唯一的,因此它还可以跟踪客户是否已经为某笔交易付款或之前的交易失败。
          【解决方案5】:

          缺少echo。而不是这个:

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

          试试这个:

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

          【讨论】:

          • 它会通过 $_POST['custom'] 将其传回吗??
          • 还是没有运气。什么都没有发送。
          猜你喜欢
          • 1970-01-01
          • 2018-01-14
          • 2018-11-04
          • 1970-01-01
          • 1970-01-01
          • 2013-02-08
          • 2015-10-23
          相关资源
          最近更新 更多