我正在迁移我们的软件,该软件代表商家使用PayPal SOAP API向PayPal发出请求,将其迁移到PayPal REST API基础结构。
我正在使用我的PayPal开发人员帐户的客户ID /机密,使用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"}
。
似乎沙盒帐户必须再有一个步骤才能将权限授予开发者帐户。对于SOAP API,我可以在以下屏幕中添加第三方的用户名。然后,我可以使用与X-PAYPAL-SECURITY-USERID
标头值相同的用户名。但是,我似乎无法以相同的方式链接沙盒帐户,因为主帐户(我从中获取客户ID的帐户)没有“第三方用户名”。
要对这些类型的REST API进行第三方调用的确切配置是什么?
您需要成为PayPal合作伙伴才能使用该类型的功能。如果您想成为合作伙伴,请联系PayPal。
如果要使用它们的通常可访问的API,则有两个选择。
payee
对象:https://developer.paypal.com/docs/checkout/integration-features/custom-payee/,可以减少控制权(例如,无法获得授权或退款)