【问题标题】:PHP Form Intergration - Basket Format is InvalidPHP 表单集成 - 篮子格式无效
【发布时间】:2015-04-14 14:33:19
【问题描述】:

好的,这让我很烦,我需要一点帮助或第二双眼睛。 在测试并提交订单确认表到 sagepay 支付协议 3.00 时,我收到以下错误消息:

状态:无效

状态详细信息:3021:篮子格式无效。

这是加密前的表单内容:

VendorTxCode=wilkies-PAYMENT-20150414141140-263293450
&Amount=245.72
&Currency=GBP
&Description= from J&D Wilkie Ltd
&CustomerName=Foo-Wing Li
&CustomerEMail=foo@jdwilkie.co.uk
&VendorEMail=foo@jdwilkie.co.uk
&SendEMail=1
&eMailMessage=Thank you so very much for your order.
&BillingSurname=Li
&BillingFirstnames=Foo-Wing
&BillingAddress1=Marywell Works
&BillingAddress2=Marywell Brae
&BillingCity=Kirriemuir
&BillingPostCode=DD8 4BJ
&BillingCountry=GB
&BillingPhone=+4401575572502
&ApplyAVSCV2=0
&Apply3DSecure=0
&AllowGiftAid=0
&BillingAgreement=1
&BillingState=
&customerEmail=foo@jdwilkie.co.uk
&DeliveryFirstnames=Foo-Wing
&DeliverySurname=Li
&DeliveryAddress1=Marywell Works
&DeliveryAddress2=Marywell Brae
&DeliveryCity=Kirriemuir
&DeliveryPostCode=DD8 4BJ
&DeliveryCountry=GB
&DeliveryPhone=+4401575572502
&BasketXML=<basket>
<item>
<description>Oil Absorbency 80x86cm</description>
<productSku></productSku>
<productCode></productCode>
<quantity>1</quantity>
<unitNetAmount>102.68</unitNetAmount>
<unitTaxAmount>20.54</unitTaxAmount>
<unitGrossAmount>123.22</unitGrossAmount>
<totalGrossAmount>123.22</totalGrossAmount>
</item>
<item>
<description>Removal Blankets - 60x108</description>
<productSku></productSku>
<productCode></productCode>
<quantity>1</quantity>
<unitNetAmount>102.08</unitNetAmount>
<unitTaxAmount>20.42</unitTaxAmount>
<unitGrossAmount>122.50</unitGrossAmount>
<totalGrossAmount>122.50</totalGrossAmount>
</item>
<deliveryNetAmount></deliveryNetAmount>
<deliveryTaxAmount></deliveryTaxAmount>
<deliveryGrossAmount></deliveryGrossAmount>
</basket>
&SuccessURL=http://www.jdwilkie.co.uk/shop/cart/order_successful.php
&FailureURL=http://www.jdwilkie.co.uk/shop/cart/order_failed.php

谢谢

【问题讨论】:

  • 我从未使用过 sagepay,但根据文档:sagepay.co.uk/support/12/36/protocol-3-00-basket-xml,productSku 和 productCode 不是项目 XML 的有效标签
  • 我刚刚尝试删除 productSku 和 productCode 但它仍然不起作用。我拥有sagepay.co.uk/file/14206/download-document/… 的 PDF 文档说它不是必需的,但可以包含在内。该演示使用 productSku 和 productCode,因此我认为可以使用它们。
  • 我看到的唯一另一件事是 &Amount 行没有加起来。这些物品加起来高达 225.18 英镑
  • 感谢 Robert 注意到与税收 (VAT) 计算中的 &Amount 小错误有关的错误。

标签: php forms opayo


【解决方案1】:

好的,我找到了解决问题的方法,这使我能够缩小问题所在。

我所做的只是将 crypt 表单删除 BasketXML 数据,因为 Sagepay 或我们不需要这样做。

VendorTxCode=wilkies-PAYMENT-20150415105304-104385424
&Amount=255.73
&Currency=GBP
&Description=from J&D Wilkie Ltd
&CustomerName=Foo-Wing Li
&CustomerEMail=foo@jdwilkie.co.uk
&VendorEMail=foo@jdwilkie.co.uk
&SendEMail=1
&eMailMessage=Thank you so very much for your order.
&BillingSurname=Li
&BillingFirstnames=Foo-Wing
&BillingAddress1=Marywell Works
&BillingAddress2=Marywell Brae
&BillingCity=Kirriemuir
&BillingPostCode=DD8 4BJ
&BillingCountry=GB
&BillingPhone=+4401575572502
&ApplyAVSCV2=0
&Apply3DSecure=0
&AllowGiftAid=0
&BillingAgreement=1
&BillingState=
&customerEmail=foo@jdwilkie.co.uk
&DeliveryFirstnames=Foo-Wing
&DeliverySurname=Li
&DeliveryAddress1=Marywell Works
&DeliveryAddress2=Marywell Brae
&DeliveryCity=Kirriemuir
&DeliveryPostCode=DD8 4BJ
&DeliveryCountry=GB
&DeliveryPhone=+4401575572502
&BasketXML=
&SuccessURL=http://www.jdwilkie.co.uk/shop/cart/order_successful.php
&FailureURL=http://www.jdwilkie.co.uk/shop/cart/order_failed.php

每个项目的增值税行和总总额似乎有错误,因为它们与根据所有不带增值税(税)的项目的总价值计算的 &Amount 不匹配,然后增值税是从总价值计算的所有与计算行项目 VAT(Tax) 结果不同的项目,然后将它们加在一起。如果您使用增值税,那么您就会明白我的意思。 (如果不制作某种显示价值和增值税(Tax)的视觉辅助工具,很难解释)。

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 2015-01-12
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多