Я нахожусь в процессе переноса нашего программного обеспечения, которое от имени торговцев делает запросы в PayPal, используя PayPal SOAP API, в инфраструктуру API PayPal REST.
Я использую Клиент Идентификатор / Секрет моей учетной записи разработчика PayPal для получения токена Bearer из Песочницы, используя https://api.sandbox.paypal.com/v1/oauth2/token.
Затем я звоню на https://api.sandbox.paypal.com/v2/checkout/orders используя наш токен на предъявителя, чтобы делать запросы от имени продавца. Я использую заголовок PayPal-Auth-Assertion со следующим (закодированным) JWT-токеном:
Header:
{
"typ": "JWT",
"alg": "HS256"
}
Body: {
"email": "[merchant e-mail]",
"iss": "[my client id]"
}
"Электронная почта продавца" является одной из учетных записей песочницы, которую я открыт в https://developer.paypal.com/developer/accounts/
В ответ я получаю (400) Bad Request {"error":"invalid_request","error_description":"No permissions to set target_client_id"}
.
Похоже, что для учетной записи песочницы должен быть дополнительный шаг, чтобы предоставить разрешения для аккаунт разработчика. Для API SOAP я мог бы добавить имя пользователя третьей стороны на следующем экране
. Тогда я мог бы использовать то же имя пользователя, что и значение заголовка для X-PAYPAL-SECURITY-USERID
. Однако я не могу связать учетную запись «песочницы» таким же образом, потому что для основной учетной записи не существует «имени пользователя третьей стороны» (от которого я получаю идентификатор клиента).
Что именно имеет быть настроен для разрешения этих типов сторонних вызовов для REST API?