微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Worldpay通过PHP指数问题发送XML

如何解决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 举报,一经查实,本站将立刻删除。