gpt4 book ai didi

c# - PayPal 沙盒执行调用返回错误 400 错误请求

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:02 25 4
gpt4 key购买 nike

在实现服务器 Paypal 集成时,POST Create 调用可以正常工作到 https://api.sandbox.paypal.com/v1/payments/payment与在 API 中找到的匹配的响应对象。服务器成功返回结果给Client,paypal.request.post的.then(res)函数的res.id为:PAY-76T970067E989851JLPCMKA

在用户授权支付后,客户端向我的服务器的执行端点发送请求,负载为:

{
"paymentID" : "PAY-76T970067E989851JLPLCMKA",
"payerID" : "3LSD3Q8J7T3ZL"
}

然后服务器将查询的有效载荷重新建模到 paypal 的 POST 执行端点,如下所示:

标题:

Content-Type = "application/json"
Authorization = "Bearer " + accessToken // checked not expired

和主体负载为:

{"payer_id" : "3LSD3Q8J7T3ZL"}

然后发帖到:

https://api.sandbox.paypal.com/v1/payments/payment/PAY-76T970067E989851JLPLCMKA/execute

此时,paypal 服务器响应:远程服务器返回错误:(400) 错误请求。

据我所知,这符合此处概述的 API 要求:https://developer.paypal.com/docs/api/payments/v1/#payment_execute

附带说明一下,我在自己的服务器上设置了一个端点,以检查提交给 Paypal 执行端点的 header 和 JSON 负载是否正确。

如有任何建议,我们将不胜感激。

最佳答案

已解决:虽然在调用 Paypal 的 Execute 端点时会返回错误,但问题实际上出在 Create payload 中。 提交给 Create 端点的 soft_descriptor 属性必须是唯一的,就像 invoice_number 属性一样。这两个值都可以在 Transaction 对象中找到,如下所示:

https://developer.paypal.com/docs/api/payments/v1/#definition-transaction .

确实,错误应该在创建付款时被捕获,而不是在执行时被捕获,但是,希望这对其他人有帮助。

Paypal 注意事项:API 中的更多信息可以避免很多麻烦。

关于c# - PayPal 沙盒执行调用返回错误 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53036396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com