第一次POST

时间:2016-09-14 13:42:33

标签: sagepay

我正试图通过张贴到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"

1 个答案:

答案 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地址必须添加到您帐户设置的白名单中。

  1. 使用您的管理员帐户(通常是您的供应商名称)
  2. 登录我的Sage Pay https://testportal.sagepay.com/mysagepay/login.msp
  3. 转到“IPVálidas”(由于某种原因,抱歉管理员套餐是西班牙语)
  4. 点击右下方的[Añadir](“添加”)按钮
  5. 在弹出的对话框中输入您的
    • “DirecciónIP”(“IP地址”) - 如果您不知道,请在Google搜索中输入“Whats my IP”
    • 你的“Máscaradesubred”(“子网掩码”) - 255.255.255.000
    • “Descripción” - 您想要的任何名称,都必须是唯一的
  6. 单击[Añadir](“添加”)按钮
  7. 2防火墙

    确保您的防火墙没有阻止任何方向的HTTP或SSL端口80和443

    3 HTTPS协议

    确保使用TLS 1.0或更高版本发布到服务器。另外,请确保您可以使用其中一种TLS协议,在撰写本文时,Sage Pay仅支持这些协议

    • TLS1-AES-256-CBC-SHA
    • TLS1-AES-128-CBC-SHA
    • TLS1-DHE-DSS-RC4-SHA
    • TLS1-DHE-DSS-AES-256-CBC-SHA
    • TLS1-DHE-DSS-AES-128-CBC-SHA
    • TLS1-DHE-RSA-AES-256-CBC-SHA
    • TLS1-DHE-RSA-AES-128-CBC-SHA

    4个HTTP标头

    只需要一个HTTP标头,但如果你传入额外的标题,如“主机”或“内容长度”,它仍然有效,如果你没有准确提供

    Content-Type: application/x-www-form-urlencoded