【问题标题】:PayPal Buy Now button custom variable not workingPayPal立即购买按钮自定义变量不起作用
【发布时间】:2016-11-02 06:18:44
【问题描述】:

我正在尝试通过 3 个经典步骤进行付款:

1) 带有 PayNow 按钮的订单页面

2) 贝宝支付

3) 重定向到“支付完成页面”

我想要实现的是从第 1 步到第 3 步的 ID。我试图做的是将此字段插入到“自定义”变量中,例如:

<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 paypal-buttons


    【解决方案1】:

    在 IPN(即时付款通知)中返回 PayPal 自定义变量,而不是在用户完成付款后返回您的网站时返回。

    在您的情况下,只需一个会话变量就足够了。

    编辑:

    另一种方法可能是在“返回”字段中添加正确的 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,但它更“异步”..
    • 一个问题,为什么需要自定义变量?
    • 您是否尝试在返回的网址中指定您想要的变量。像 mysite.cm/tx=blalba?id=whatever">;正如我所说,自定义变量仅用于 IPN 目的
    • 我添加了一个示例:在这种情况下,因为我们正在动态创建一个按钮,我们必须使用“_xclick”而不是“_s-xclick”。此外,您必须添加金额、货币代码和其他必填字段。
    • 最后我只是简单地实现了 IPN 来获取这些信息...非常感谢您的建议!
    【解决方案2】:

    现有的答案已经提到IPN 是要走的路,但缺少的是如何实际实施的更多信息。

    我最近不得不自己做这件事,所以这是对我有用的解决方案:

    首先,您需要将您的 ID 添加到“立即付款”按钮的 HTML 中,例如添加到“自定义”变量中,如问题所示。

    在我自己的实现中,我在使用“自定义”变量时遇到了一些问题(不再记得细节了),所以我将我的 ID 作为 URL 参数传递给 IPN“通知”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 会在我的通知 URL 中发布一个IPN message,其中包含有关交易的大量信息(更多信息请参见链接)

    我的 ID 是通过 URL 参数传递的,所以我可以像这样得到它(在 PHP 中)

    $uid = "";
    if (!empty($_GET['id'])) {
        $uid = $_GET['id'];
    }
    

    当然,你需要check whether the IPN call is actually coming from PayPal

    【讨论】:

      猜你喜欢
      • 2014-08-03
      • 2014-09-15
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2015-08-06
      • 2013-01-03
      • 2014-10-05
      相关资源
      最近更新 更多