我正试图通过张贴到https://test.sagepay.com/gateway/service/vspform-register.vsp来启动与sagepay的测试交易
我已经关注了这样一个请求应该采用的格式的文档,我已经在测试环境的门户网站上列出了我的IP并且我正在使用VPSProtocol=3.00
(这两个问题是我见过报道引起这种情况)但我仍然得到5003错误。
我说过要通过电话支持并发布到他们的showpost端点(https://test.sagepay.com/showpost/showpost.asp)。它似乎无法理解我的POST的任何细节,尽管它是Name=Value
格式,由&
分隔,URL编码值,如文档规定并提供所有必需的字段
我已尝试对=
以及&
进行网址编码,以防我在这方面误解了文档,但这没有任何区别。
我相信我必须以某种方式错误地发送身体。我很感激任何人都可以提出任何建议。我发送的正文如下:
VPSProtocol=3.00&TxType=PAYMENT&Vendor=anyjunko&VendorTxCode=123&Amount=143.33&Currency=GBP&Description=TODO&NotificationURL=https%3A%2F%2Fstaging-nelly.anyjunk.co.uk%2Fvs%2Fsagepay-transactions%2F1%2Fsagepay-updates&BillingSurname=NameB&BillingFirstnames=NameA&BillingAddress1=1&BillingAddress2=Putney&BillingCity=London&BillingPostCode=SW11%209YZ&BillingCountry=GB&DeliverySurname=NameB&DeliveryFirstnames=NameA&DeliveryAddress1=1&DeliveryAddress2=Putney&DeliveryCity=London&DeliveryPostCode=SW11%209YZ&DeliveryCountry=GB
更新:我现在尝试使用cURL并且它工作正常,但是当我使用akka http客户端从Postman或我的代码发送它时它不起作用。
我使用的cURL命令是:
curl -X POST "https://test.sagepay.com/gateway/service/vspserver-register.vsp" -d "VPSProtocol=3.00&TxType=PAYMENT&Vendor=anyjunko&VendorTxCode=123&Amount=143.33&Currency=GBP&Description=TODO&NotificationURL=https%3A%2F%2Fstaging-nelly.anyjunk.co.uk%2Fvs%2Fsagepay-transactions%2F1%2Fsagepay-updates&BillingSurname=NameB&BillingFirstnames=NameA&BillingAddress1=1&BillingAddress2=Putney&BillingCity=London&BillingPostCode=SW11%209YZ&BillingCountry=GB&DeliverySurname=NameB&DeliveryFirstnames=NameA&DeliveryAddress1=1&DeliveryAddress2=Putney&DeliveryCity=London&DeliveryPostCode=SW11%209YZ&DeliveryCountry=GB"
答案 0 :(得分:0)
必须提供Sage Pay文档中的一些要求,否则您将收到HTTP 500内部错误5003
服务器集成的文档命名 “SERVER_Integration_and_Protocol_Guidelines_270815.pdf”可在此处获得: https://www.sagepay.co.uk/support/find-an-integration-document/server-inframe-integration-documents
首先确保您已按照文档的说明进行操作,尤其要注意包含所有必填字段和URLencode name = value对的值。
文档中未提及以下要求:
1个IP地址
您将POST发送到〜/ vspserver-register.vsp的IP地址必须添加到您帐户设置的白名单中。
2防火墙
确保您的防火墙没有阻止任何方向的HTTP或SSL端口80和443
3 HTTPS协议
确保使用TLS 1.0或更高版本发布到服务器。另外,请确保您可以使用其中一种TLS协议,在撰写本文时,Sage Pay仅支持这些协议
4个HTTP标头
只需要一个HTTP标头,但如果你传入额外的标题,如“主机”或“内容长度”,它仍然有效,如果你没有准确提供
Content-Type: application/x-www-form-urlencoded