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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...