为什么我的 POST 到 Sagepay returns 出现错误 400?

Why does my POST to Sagepay returns an Error 400?

我正在尝试使用服务器集成协议将我的应用程序与 Sagepay 集成。我已经在 JAVA 中编写了我的代码,目前我正在向 Sagepay 发送 POST 以重定向到他们的支付页面。但是,我得到一个空白屏幕,这是错误 400(错误请求)的结果。

在他们的文档中,他们明确指出:

The data should be sent as URL Encoded Name=Value pairs separated with & characters and sent to the Sage Pay Server URL with a Service name set to the message type in question.

我构建的URL是这样的: https://test.sagepay.com/gateway/service/vspserver-register.vsp&VPSProtocol=3.00&TxType=PAYMENT&Vendor=foovendor&VendorTxCode=foovendor-1459865650735-78597&Amount=10&Currency=GBP&Description=This+is+the+description&NotificationURL=http%3A%2F%2Fwww.google.com&BillingSurname=foosurname&BillingFirstnames=fooname&BillingAddress1=fooaddress&BillingCity=foocity&BillingPostCode=foopc&BillingCountry=UK&DeliverySurname=fooname&DeliveryFirstnames=foosurname&DeliveryAddress1=fooaddr&DeliveryCity=foocity&DeliveryPostCode=foopc&DeliveryCountry=UK&CustomerEMail=foo%40foo.com

我错过了什么?

感谢您的帮助!

您的 url 没有正确设置查询字符串。 我认为

register.vsp&VPSProtocol

应该是

register.vsp?VPSProtocol

即问号而不是符号。

此外,您说 post 是必需的,但是在浏览器中粘贴 url 会发送 GET 请求,不是吗?