首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PayPal API返回RESOURCE_NOT_FOUND / INVALID_RESOURCE_ID,但事务列在Sandbox帐户中

PayPal API返回RESOURCE_NOT_FOUND / INVALID_RESOURCE_ID,但事务列在Sandbox帐户中
EN

Stack Overflow用户
提问于 2020-04-05 12:47:27
回答 2查看 5.9K关注 0票数 5

我也有类似的问题。

设置

  • PayPal沙箱环境
  • 两个测试帐户(个人和商业帐户)。在测试过程中,个人账户购买了一种产品。交易将转到业务帐户。
  • 我创建了REST应用程序,它连接到上面的Sandbox业务帐户。
  • 我使用业务帐户的凭据登录到:https://www.sandbox.paypal.com/以生成一个PayPal按钮。该按钮的HTML代码被添加到我的网站。

步骤

  • 我打开网站,点击PayPal按钮。
  • 我用个人帐户的凭据登录到PayPal Sandbox。
  • 我完成付款过程。
  • 我登录到业务帐户,我看到交易(订单)列在那里。我可以看到交易ID。

问题

在对API的所有请求中,我使用了客户端ID和REST应用程序的秘密,我已经为测试目的创建了这个应用程序。

之后,我打开Postman,并向PayPal API发送了以下请求,以生成访问令牌(Doc:https://developer.paypal.com/docs/api/get-an-access-token-curl/)。

代码语言:javascript
运行
复制
curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
   -H "Accept: application/json" \
   -H "Accept-Language: en_US" \
   -u "client_id:secret" \
   -d "grant_type=client_credentials"

到现在为止还好。然后,我向PayPal APIv1发送一个API请求,以获得有关订单的更多细节。我使用的事务ID,根据我所读的是相同的订单Id。

代码语言:javascript
运行
复制
curl -v -X GET https://api.sandbox.paypal.com/v1/checkout/orders/TRANSACTION_ID \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"

我明白了:

代码语言:javascript
运行
复制
{
    "http_code": 404,
    "body": {
        "name": "INVALID_RESOURCE_ID",
        "message": "INVALID_RESOURCE_ID",
        "information_link": "https://developer.paypal.com/docs/api/orders/v1/#error-INVALID_RESOURCE_ID",
        "debug_id": "c02871817abba"
    }
}

我试过APIv2:

代码语言:javascript
运行
复制
curl -v -X GET https://api.sandbox.paypal.com/v1/checkout/orders/ORDER_ID \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"

我明白了:

代码语言:javascript
运行
复制
{
    "http_code": 404,
    "body": {
        "name": "RESOURCE_NOT_FOUND",
        "details": [
            {
                "issue": "INVALID_RESOURCE_ID",
                "description": "Specified resource ID does not exist. Please check the resource ID and try again."
            }
        ],
        "message": "The specified resource does not exist.",
        "debug_id": "c2c24f91a44fd",
        "links": [
            {
                "href": "https://developer.paypal.com/docs/api/orders/v2/#error-INVALID_RESOURCE_ID",
                "rel": "information_link",
                "method": "GET"
            }
        ]
    }
}

困惑

业务帐户中清楚地列出了事务,但是API说没有这样的事务。

建议/解决方案?

溶液

通过PayPal按钮(使用业务帐户生成)启动支付的默认行为是Sale,而不是Order。有关两者之间差异的更多细节,请阅读此处- https://www.paypal.com/us/smarthelp/article/what-are-the-differences-between-the-express-checkout-payment-actions-ts1501

解决方案是向另一个PayPal API方法发出请求(请检查:https://developer.paypal.com/docs/paypal-plus/germany/how-to/show-sale/?fbclid=IwAR30yROZMjKT2LlRgSRuVBMGrjdmN1MGbuJ50rUiUBWwW11FSpGdxk5JNpY#show-sale-details)。

以下是返回正确数据的请求。

代码语言:javascript
运行
复制
curl -v -X GET https://api.sandbox.paypal.com/v1/payments/sale/TRANSACTION_ID \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"
EN

Stack Overflow用户

发布于 2020-04-05 15:00:22

v2/orders对象仅用于支付批准,它们不是事务。它们的in仅在调试时保持一个月左右,因为它们不具有记帐功能,并且不能在PayPal.com中引用。

另一方面,PayPal事务由v2/payments对象表示,在捕获v2/order时返回该对象。您可以通过适当的get调用再次获得捕获的详细信息:到达

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61042832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档