我使用angular JS将一些数据发送到Payment Gateway。
curl根据文档发送数据的语法是:
curl https://www.mybank.co.uk/3dsecure
-H "Content-type: application/x-www-form-urlencoded"
-X POST
-d 'TermUrl=https://www.yourmerchantsite.co.uk/3DSecureConfirmation&PaReq=value-of-oneTime3DsToken&MD=merchantdatavalue'
然而,当我在Angular中这样做时:
$http({
method: 'POST',
url: 'url',
headers: {'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html'
},
data: $.param({TermUrl: obj.TermUrl ,Pareq: obj.Pareq }),
})
我收到错误
Possibly unhandled rejection: {"data":"<html><head><title>400 Bad
Request</title></head><body><h1>Bad Request</h1></body>
</html>","status":400,"config":
{"method":"POST","transformRequest":[null],"transformResponse":
[null],"jsonpCallbackParam":"callback","url":"payement gatway
url","headers":{"Content-Type":"application/x-www-form-urlencoded",
"Accept":"text/html,application/xhtml+xml"},"data":"TermUrl=url&Pare
q=value"},"statusText":"Bad Request","xhrStatus":"complete"}
请建议如何继续这个?
答案 0 :(得分:0)
首先,您遇到400 Bad Request(https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400)而不是404 Not Found。
这通常意味着您没有向服务器发送正确的数据,并且API期望某些特定参数(通常来自正文)。
检查API,查看所需的每个参数 - 它们的类型以及它们应该如何发送(正文参数?查询字符串等等)。
您可以使用浏览器网络标签或Postman等工具查看您实际发送到服务器的内容,以及它是否与服务器期望您发送的内容相匹配。
答案 1 :(得分:0)
查看3D Secure的API参考,您应该在http状态代码旁边找到详细的错误代码: https://developer.paysafe.com/en/3d-secure/api/#/introduction/error-summary/common-errors
应该可以轻松调试。