【问题标题】:Paypal : hosted button payments fail with code=AMOUNT_ERRORPaypal:托管按钮付款失败,代码=AMOUNT_ERROR
【发布时间】:2017-09-24 01:48:18
【问题描述】:

我多年来一直使用 paypal 按钮,使用 IPN 处理付款。

其中一些按钮在几天前已停止工作。它们会产生错误,如下图所示: (screenshot)

这些按钮是使用 Paypal 在线工具创建的,它们的 HTML 代码是指在 paypal 网站上编辑的一些 paypal UR3ZPGJAT7M 数据(希望这应该是正确的?)(注意:UR3ZPGJAT7M 是一个编辑值)。

<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="UR3ZPGJAT7M">
<table>
<tr><td><input type="hidden" name="on0" value="Expédition">Expédition</td></tr><tr><td><select name="os0">
    <option value="Expédition en France">Expédition en France €25,00 EUR</option>
    <option value="Expédition en Europe">Expédition en Europe €27,00 EUR</option>
    <option value="Reste du Monde">Reste du Monde €30,00 EUR</option>
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="EUR">
<input type="image" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal, le réflexe sécurité pour payer en ligne">
<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
</form>

如屏幕截图所示,反馈 url 包含以下查询字符串:“&code=AMOUNT_ERROR”

我尝试更改定义 UR3ZPGJAT7M 代码的贝宝在线按钮编辑表单中的金额值。 我尝试了小数点分隔符的各种值:

  • 25.00
  • 25,00
  • 25

但都失败了。

我环顾四周,但找不到任何解决此问题的方法。 Paypal 支持根本不回答。

我该如何解决这个问题?

[编辑]

  • Paypal 几天前更改了他们的付款表单 UI,因此可能与此更改有关。
  • 当我从头开始创建一个新按钮并在 Paypal 的在线按钮创建表单中提供所有相同参数时,新按钮可以正常工作。所以有一种方法可以启用我的按钮:从头开始重新创建它们作为购物车按钮。但是我有 30 多个这样的注册按钮,我希望避免重新创建所有这些按钮!
  • 其他一些按钮工作正常。我注意到一些有效的按钮会导致英文表格,其中小数点分隔符是“。” .在“托管按钮”创建页面中,欧元和法语的分隔符自动添加为“,”。
  • 我在贝宝支持网站上发现了一个相关问题:https://www.paypal-community.com/t5/PayPal-HTML-Buttons/Update-your-PayPal-buttons-before-29th-March-2017/m-p/1127596 用户发现了他的按钮失败的原因:因为库存。他不得不取消库存请求。但我的按钮不使用库存。

【问题讨论】:

    标签: paypal paypal-ipn paypal-buttons


    【解决方案1】:

    我在使用巴西雷亚尔货币时遇到了这个错误。问题在于使用“ç”和重音(~/´)

    【讨论】:

      【解决方案2】:

      我遇到这个问题是因为&lt;input type="hidden" name="amount" value="$999"&gt;,将$999 更改为999 并且它已修复。

      张贴在这里,以防其他人遇到同样的问题

      【讨论】:

        【解决方案3】:

        我使用的是下拉选项,其中包含希伯来语文本。一旦我将所有选项更改为只阅读英文文本,一切正常(即使 PayPal 网站为我生成了希伯来语表格)。

        【讨论】:

          【解决方案4】:

          我从 2017 年 7 月下旬开始出现同样的错误。发现它是由金额中的逗号引起的,例如:&lt;input type="hidden" name="amount" value="1,430"&gt;

          删除逗号更正了 PayPal 错误。

          这个表格已经用了很多年了,以前没有这个问题。

          【讨论】:

            【解决方案5】:

            我遇到了同样的问题并通过将currency_code"USA" 更改为"USD" 来解决。例如:

            <input type="hidden" name="currency_code" value="USD">
            

            【讨论】:

            • 这对我有用...我有“AU”,改为“AUD”并解决了问题。谢谢。
            【解决方案6】:

            我最近遇到了类似的问题。
            我知道 PayPal 在 3 月 29 日进行了一些更改,但我的网站是全新的,即我在 3 月 29 日之后创建了我的第一个 PayPal 按钮。
            该网站于 4 月 6 日上线,该按钮在 4 月 17 日之后停止工作(最后一次付款是在当天)。

            我在德国,我的网站是德语,所以我的付款选项包含变音符号,, 作为小数分隔符。

            我的旧按钮(突然停止工作的那个)看起来像这样:

            <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="ABCDEFGHIJKLM">
                <table>
                <tr><td><input type="hidden" name="on0" value="Betrag:">Betrag:</td></tr><tr><td><select name="os0">
                <option value="Gebühr">Gebühr €3,50 EUR</option>
                <option value="Gebühr und Spende">Gebühr 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 支持,起初,那家伙建议我将数字中的小数分隔符从 ,(德语小数分隔符) 更改为 .(英文小数点)分隔符).

            这并没有改变任何事情......我怀疑Gebühr 中的元音变音符号是罪魁祸首,所以我询问 PayPal 是否有任何已知的元音变音符号问题。
            答案是“是的,也许有时”,我得到了重新创建不带变音符号的按钮的建议。

            这确实有帮助,我当前的(工作)按钮现在看起来像这样:

            <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="MLKJIHGFEDCBA">
                <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>
            
            1. 我只是省略了变音符号(üue 相同)。
            2. 请注意,价格仍包含逗号作为小数分隔符和 € 符号。
              我尝试使用. 输入价格,但德国 PayPal 网站不允许我输入(因为它在德语中不正确)。
              €3,50 EUR 格式的价格(包括 € 符号)被 PayPal 插入到 HTML 代码中,因为我刚刚输入 3,50 并选择 EUR 作为货币。

            所以最后,它正在工作......现在。
            我希望它不会再次默默地停止工作,但坦率地说我不确定。

            一方面,PayPal UI 让我可以创建带有变音符号和逗号的按钮,而不会发出任何警告可能会导致问题。
            但另一方面,PayPal 的支持怀疑变音符号和逗号是个问题。

            然后,我考虑将我的 HTML 代码从 Gebuehr €3,50 EUR 更改为 Geb&amp;uuml;hr &amp;euro;3.50 EUR,以绝对确保不会再次出现变音符号/逗号问题。
            但是谁知道当我的网站发布 Geb&amp;uuml;hr &amp;euro;3.50 EUR 并且 PayPal 已经在他们系统的按钮定义中保存了 Gebuehr €3,50 EUR 时会发生什么......

            【讨论】:

              【解决方案7】:

              默认情况下,Paypal 似乎在值字段中存在特殊字符问题。通过添加 UTF-8 的声明,表单验证似乎完美无缺。这对我有用:

              &lt;input type="hidden" name="charset" value="utf-8"&gt;

              另一种解决方法可能是清除 values 属性的字符,例如:

              value="my_value_1"&gt;

              【讨论】:

              • 也帮助了我。谢谢
              【解决方案8】:

              作为结论,我不得不更改所有有问题的按钮并重新创建它们。

              在贝宝在线按钮创建表单中编辑它们没有帮助。

              看起来最古老的托管贝宝按钮与新的 2017 贝宝 API 不兼容。

              【讨论】:

                【解决方案9】:

                请参阅链接https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ2067&expand=true&locale=en_US了解有关问题解决的更多详细信息。

                谢谢, 卡维莎

                【讨论】:

                • 感谢 Kavitha 提供的有用链接。它解释了如何检查新 API 的用户 HTML 按钮,但它不适用于托管按钮。对于托管按钮,所有参数均由贝宝在线创建表单创建,并由贝宝托管。 HTML 代码中没有“金额”或“项目名称”这样的字段,只有 > 输入。
                • 在跟踪此跟踪后,我发现了一个相关问题:paypal-community.com/t5/PayPal-HTML-Buttons/… 用户发现了他的按钮失败的原因:因为库存。他不得不取消库存请求。但我的按钮不使用库存。
                猜你喜欢
                • 2013-07-16
                • 2018-10-27
                • 2014-09-17
                • 2014-02-27
                • 1970-01-01
                • 2014-11-19
                • 2011-05-26
                • 2015-01-19
                • 2019-12-26
                相关资源
                最近更新 更多