【发布时间】:2020-05-19 14:34:05
【问题描述】:
我正在尝试使用新的 PayPal Payouts API。我想获得一个访问令牌,让我能够进行如下查询:
https://developer.paypal.com/docs/api/payments.payouts-batch/v1/
我可以像这样获得范围为“TRANSACTION_DETAILS”的访问令牌:
scope := "TRANSACTION_DETAILS"
url := fmt.Sprintf("https://api.sandbox.paypal.com/v1/oauth2/token?scope=%s", scope)
reqBody := "grant_type=client_credentials"
reqBodyBuf := bytes.NewBuffer([]byte(reqBody))
req, err := http.NewRequest("POST", url, reqBodyBuf)
但是当我发出 POST 请求以获取付款时:
url := fmt.Sprintf("https://api.sandbox.paypal.com/v1/payments/payouts")
file, err := ioutil.ReadFile("payout.json")
req, err := http.NewRequest("POST", url, bytes.NewBuffer(file))
req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", accessToken))
req.Header.Set("Accept", "application/json")
req.Header.Set("Accept-Language", "en_US")
client := &http.Client{}
resp, err := client.Do(req)
我收到此错误:
{"name":"REQUIRED_SCOPE_MISSING","message":"访问令牌没有 必需的 范围。","debug_id":"603c58d7fe693","information_link":"https://developer.paypal.com/docs/api/payments.payouts-batch/#errors","links":[]}
我在网上搜索了一个小时,试图找到一个完整的范围列表以及适用于上述 /v1/payments/payouts 请求的范围,但我找不到任何东西 - 有谁知道我是怎么做到的可以找出我提出请求所需的范围吗?
【问题讨论】:
-
您是否在developer.paypal.com/developer/applications 中为您的ClientID 的沙盒模式REST App 启用了所有相关的权限复选框?还要确保您没有在任何重复请求上重复使用相同的
sender_batch_id,因为这可能会导致错误