Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Paypal : hosted button payments fail with code=AMOUNT_ERROR

I've been using paypal buttons for years, using IPN to process the payment.

Some of these buttons have stopped working a couple of days ago. They produce an error as can be seen on the following image : (screenshot)

These buttons have been created using Paypal online tools and their HTML code refers to some paypal UR3ZPGJAT7M data that is edited on the paypal site (and that should hopefully be correct ?)(Note : UR3ZPGJAT7M is an edited value).

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

As can be seen in the screenshot, the feedback url contains the following query string : "&code=AMOUNT_ERROR"

I tried to change the amount value in the paypal online button edit form that defines the UR3ZPGJAT7M code. I tried various values for the decimal separator :

  • 25.00
  • 25,00
  • 25

but all fail.

I have looked around but couldnt find any solution for this issue. Paypal support doesnt answer at all.

How can i fix this ?

[EDIT]

  • Paypal changed their payment forms UI some days ago so it is probably related to this change.
  • When i create a new button from scratch and feeds it with all same parameters in Paypal's online button creation forms, the new button works fine. So there is a way to enable my buttons : create them anew from scratch as cart buttons. But I have 30+ such registered buttons and i'd appreciate to avoid to recreate all of them anew !
  • Some other buttons work fine. I notice some of the buttons that work lead to an english form, where decimal separator is '.' . In the "hosted buttons" creation page, the separator for EUR and french langage is automaticaly added as ','.
  • I found a related issue on paypal support site : https://www.paypal-community.com/t5/PayPal-HTML-Buttons/Update-your-PayPal-buttons-before-29th-March-2017/m-p/1127596 The user found out why his buttons failed : because of inventory. He had to cancel inventory request. But my buttons doent use inventory.
like image 873
JLuc Avatar asked Dec 03 '25 14:12

JLuc


2 Answers

Paypal seems to have problems with special characters within the value fields by default. By adding the declaration for UTF-8 the form validation seems to work flawless. This did the trick for me:

<input type="hidden" name="charset" value="utf-8">

Another workaround could be the character cleanup of the values attribute like:

value="my_value_1">

like image 160
Matox Avatar answered Dec 07 '25 03:12

Matox


I had the same problem and solved by changing the currency_code from "USA" to "USD". For example:

<input type="hidden" name="currency_code" value="USD">
like image 33
Jigs17 Avatar answered Dec 07 '25 05:12

Jigs17