我一直在尝试实施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=
答案 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)
如果不这样做,请致电0845 111 4466与SagePay客户支持部门联系(我认为拨打该号码需要付费)并告诉他们问题。他们可能会要求您将表单发布到https://test.sagepay.com/showpost/showpost.asp,他们可以在结束时查看您正在发布的数据,并验证他们是否缺少某些内容。
答案 7 :(得分:0)
我有同样的问题。事实证明,由于数据库检索错误,我的一个变量是空白的 - 所以通过逐步完成表单生成代码(我在服务器端脚本中动态构建我的代码,检查你实际填写每个字段,因此很容易识别)。
就我而言,&#34; billingaddress&#34;实际上是在输入一个#34;&#34;的字符串值,当它被发布到SagePay时会出错。
答案 8 :(得分:0)
On Woocomerce去设置Sagepay - 确保&#34;选择送货地址&#34;被置于账单地址而不是自动简单修复。