i'm getting a strange error in D6. Everything worked just fine in D5, but now i'm getting the error 'Value contains non-permitted character' by Ideal.
Could it be that Drupal passes a wrong format to Ideal?
i'm getting a strange error in D6. Everything worked just fine in D5, but now i'm getting the error 'Value contains non-permitted character' by Ideal.
Could it be that Drupal passes a wrong format to Ideal?
Comments
Comment #1
mediamash commentedthis error is already described at http://drupal.org/node/709438 and is critical imho.
could someone work out a patch to get this module back up and running in drupal 6?
Comment #2
mediamash commentedit seems the error can be limited to the use of taxes ... any help appreciated!
Comment #3
mediamash commented<amount>19094.05</amount>should be altered into<amount>19094,05</amount>, how can i make this work?error is=
Parameter '19094,05' is not a natural(or '-')Comment #4
keesje commentedIs it possible that taxes generate order amounts with more than 2 decimal places? iDEAL demands order amounts in Euro cents without decimal places (not allowing tenths or hundredths of cents). This is why the amount is multiplied with 100 before sending it down to the iDEAL gateway.
What about a simple round() after multiplying? Does this introduce differences in the order amounts stored and payed? Couldn't be more than 0.01 euro per order though.
Comment #5
pindaman commentedHI kees..
I changed a line in the module:
317:
to:
$amount = round($arg1->order_total * 100); //amount *100
i dont know if its risky but it seems to work in the first test.
Comment #6
praseodym commented#4: that is exactly what happens, bad design from the Ubercart side IMO (one should NEVER do floating point calculation on prices).
#5: should be fine. Ubercart uses number_format with 2 decimals, which is essentially the same as round(x*100)/100. I use this method in my own implementation as well.
Comment #7
keesje commentedPlease try new release. Be aware of broken translations due to typo fixes.
Reopen issue or make new if you encounter problems.