如何解决Worldpay通过PHP指数问题发送XML
我正在更新现有的付款系统(由其他人创建)以符合一些新的Worldpay更改。
我有一个包裹在<form>
元素中的“ 立即付款”按钮。这将显示“立即付款[金额]”。 [amount]
被替换为客户的实际余额金额(例如1.50英镑)
选择该按钮后,会将许多隐藏的输入发送到xml文件,该文件然后将数据发布到worldpay,以显示其预先填写的托管付款网关表格。
从我的表单中发布的值之一是amount
-在“立即付款”按钮上显示给用户的金额。目前这是一个十进制数字(例如£0.28 = 0.28,£1.50 = 1.5等)。这些价值按预期达到了世界薪水水平。
但是,当值是£0.10时,张贴到worldpay的值将显示为£0.01。
Worldpay根据docs不接受十进制值,他们希望xml中有一个exponent
属性;
指数:指定小数点或逗号应放在小数点后的位置 值,从右边开始计数。
我在xml中将其设置为“ 2”。我的xml包含以下行;
// more xml
<amount currencyCode="GBP" exponent="2" value="' . str_replace(".","",$_POST['amount']) . '" />
// more xml
$_POST['amount'] contains the decimal 0.1,but £0.01 is displayed on the worldpay form
我需要更改什么才能将正确的值发送给worldpay?
我有某种感觉是因为str_replace
?我敢肯定这很简单。.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。