Sagepay表单集成一直给出错误5080(表单事务注册失败)

时间:2016-07-20 11:47:30

标签: php sagepay

我一直在尝试实施sage pay的表单集成。每次我提交表单时,我都会收到错误代码:5080(错误描述:交易注册失败)。我尝试在sagepays网站(https://www.sagepay.co.uk/support/error-codes)中搜索错误代码,但显然这个错误代码并不存在。 如果我在sagepay的错误代码页中输入错误说明,而不是错误代码,那么我会得到以下结果screenshot

但是我的成功网址和失败网址都存在。

这里发生了什么?

编辑:

 VendorTxCode=16-07-20-12-43-55-145161808&ReferrerID=&Amount=3,500.00&Currency=GBP&Description=Clarice Cliff SUNRAY LOTUS JUG C.1930&SuccessURL=http://test.co.uk/baskets/sagepay_success&FailureURL=http://test.co.uk/baskets/sagepay_failure&CustomerName=&CustomerEMail=&VendorEMail=&SendEMail=&eMailMessage=&BillingSurname=Tester&BillingFirstnames=Tester&BillingAddress1=Test Street&BillingAddress2=&BillingCity=London&BillingPostCode=TE14 1EE&BillingCountry=UNITED KINGDOM&BillingState=&BillingPhone=&DeliverySurname=Tester&DeliveryFirstnames=Tester&DeliveryAddress1=Test Street&DeliveryAddress2=&DeliveryCity=London&DeliveryPostCode=TE14 1EE&DeliveryCountry=UNITED KINGDOM&DeliveryState=&DeliveryPhone=&Basket=&AllowGiftAid=&ApplyAVSCV2=&Apply3DSecure=&BillingAgreement=&BasketXML=&CustomerXML=&SurchargeXML=&VendorData=&ReferrerID=&Language=&Website=

9 个答案:

答案 0 :(得分:2)

这是您的BillingCountry和DeliveryCountry字段 - 您应该使用ISO 2字符值。你有'英国'在那里 - 应该是' GB'。

答案 1 :(得分:2)

我终于明白了。我发送了crypt字段,但没有发送其他数据,如txt类型。

我是愚蠢的,虽然从Sagepay那里得到一个错误并不是很好,但实际上与这个问题有关,而不是那么普遍,你会开始寻找无关紧要的地方来解决这个问题。

答案 2 :(得分:1)

登录到Sagepay帐户并转到无效交易,单击一个交易,您将看到导致5080错误的确切错误。

答案 3 :(得分:0)

示例PHP代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div>
  Click the result area
</div>
<p></p>

答案 4 :(得分:0)

检查加密密钥!

今天早上我有同样的问题。我一直在使用测试Sage Pay网关进行开发,但想检查我的crypt字符串是否在实时网关上运行。报告错误5080。我意识到我正在使用我的测试加密密钥而不是实时密钥!

答案 5 :(得分:0)

我有这个确切的问题,并认为我会添加我的问题/解决方案。我在测试中遇到此错误,发现我们的测试站点的DNS条目已被删除。我收到此错误是因为SagePay无法访问我提供的返回网址。

一旦我把DNS条目放回去,SagePay就可以进入该网站并且错误消失了。

答案 6 :(得分:0)

我有同样的问题,原因是我不小心遗漏了一个我确定包含的地址字段。

通过var_dump($_POST)

查看您向Sage发布的内容

如果不这样做,请致电0845 111 44​​66与SagePay客户支持部门联系(我认为拨打该号码需要付费)并告诉他们问题。他们可能会要求您将表单发布到https://test.sagepay.com/showpost/showpost.asp,他们可以在结束时查看您正在发布的数据,并验证他们是否缺少某些内容。

答案 7 :(得分:0)

我有同样的问题。事实证明,由于数据库检索错误,我的一个变量是空白的 - 所以通过逐步完成表单生成代码(我在服务器端脚本中动态构建我的代码,检查你实际填写每个字段,因此很容易识别)。

就我而言,&#34; billingaddress&#34;实际上是在输入一个#34;&#34;的字符串值,当它被发布到SagePay时会出错。

答案 8 :(得分:0)

On Woocomerce去设置Sagepay - 确保&#34;选择送货地址&#34;被置于账单地址而不是自动简单修复。