2017-11-22 6 views
3

Ich versuche, die list of payments empfangen (Verkauf) on behalf on an user using Oauth.Erhalten Sie die Zahlung von einem Benutzer über Paypal Oauth erhalten?

Ich kann erfolgreich über Oauth verbinden, aber wenn ich versuche, um die Liste der Zahlungen mit der folgenden Anforderung abzurufen:

r = requests.get(
    'https://api.sandbox.paypal.com/v1/payments/payment', 
    headers={'authorization': 'Bearer {0}'.format(access_token)}, 
    params={ 
     'count': 100, 
     'sort_by': 'create_time', 
     'sort_order': 'desc' 
    } 
) 

Ich erhalte eine Fehlermeldung vom Server: PERMISSION_DENIED

{"name":"PERMISSION_DENIED","message":"No permission for the requested operation","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"33d30d1074b1e"} 

Ich bin mir ziemlich sicher, dass es mit den Scopes zusammenhängt, die ich beim Verbinden des Kunden gefragt habe (keine für die Tests), aber wenn ich versuche, den folgenden Bereich zu verwenden:

'scope': "openid https://api.paypal.com/v1/payments/.*" 

Ich bekomme den folgenden Fehler: "Scope ungültig".

Also, wie kann ich eine Liste der Zahlungen im Namen eines Benutzers abrufen? (Lesezugriff einfach!)

+0

Wie geht es Ihnen in der Sandbox? - Ich nehme an, Sie erstellen eine App, z. test1 und das ist mit einem Käufer verbunden, z.B. [email protected] - dann machen Sie eine POST/v1/Zahlungen/Zahlungsanforderung mit Zahlungsempfänger für z.B. [email protected] - Haben Sie eine andere ID [email protected] und autorisieren Sie seller2, die Daten von seller1 zu sehen? –

+0

Nicht wirklich. Ich habe eine Anwendung (REST) ​​erstellt, die ich für OAuth verwende (funktioniert gut, wenn ich nach dem Gültigkeitsbereich "openid" frage). Ich verbinde mich mit diesem Konto mit einer Sandbox (Fälschung). Auch hier funktioniert es. Aber ich kann die Liste der Zahlungen nicht bekommen. Wenn ich nach dem Zahlungsumfang frage, habe ich den erwähnten Fehler. –

+0

ist der Fluss, dass Sie Ihren Händler dazu bringen, sich mit PayPal für einen bestimmten Bereich einzuloggen und dann das Token zu erhalten und zu versuchen, den Anruf zu tätigen, um die Zahlungen in seinem Namen abzurufen? –

Antwort

0

Der Fehler tritt normalerweise auf, wenn der Bereich, den Sie in Ihrer API anfordern, nicht über die in Ihrer App aktivierten Attribute verfügt. Überprüfen Sie den Umfang, den Sie in der Anfrage übergeben und überprüfen Sie Ihre App unter https://developer.paypal.com -> Anwendungen -> App-Name -> Anmelden -> Erweiterte Optionen -> Erweitern Sie jeden der anpassen Link und überprüfen Sie die Attribute für die Bereiche in Ihrer Anfrage.

Wenn Sie verschiedene App-Schlüssel für Sandbox vs. Produktion verwenden, haben Sie außerdem sichergestellt, dass der entsprechende Authentifizierungsmodus ausgewählt ist?