2016-05-05 3 views
0

Ich implementiere eine Adaptive Zahlung mit verzögerter verketteter Zahlung. , das zu tun, habe ich einfach die folgenden Schritte ausführen:PayPal mpl Android, Initialisierungsproblem mit ENV_SANDBOX

1) Von Server-Seite I https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval die eine preapproval Taste I für Android verwenden mpl

2) Von Client-Seite erhalten verwenden die Benutzer genehmigen den Schlüssel zu lassen

3) von Server-Seite I-Zahlungen mit dem preapproval Schlüssel erstellen, vom Benutzer genehmigt

Das Problem ist, dass ich mpl in der Sandbox-Umgebung verwenden möge, alles zu testen, aber, wenn ich initialisieren die PayPal-Bibliothek (in Android) bekomme ich den folgenden Fehler in onActivityResult:

"ANWENDUNG NICHT AUTORISIERT", ERROR CODE: -1

Dies ist der Code:

PayPal pp = PayPal.getInstance(); 
if (pp == null) { 
     pp = PayPal.initWithAppID(this, "APP-80W284485P519543T", PayPal.ENV_SANDBOX); 
     pp.setLanguage("en_US"); 
     pp.setFeesPayer(PayPal.FEEPAYER_SECONDARYONLY); 
     pp.setShippingEnabled(true); 
     pp.setDynamicAmountCalculationEnabled(false); 
     boolean isAppInit = pp.isLibraryInitialized(); 
} 
pp.setPreapprovalKey("PA-64N62546XG272001B"); 

Intent preapproveIntent = pp.preapprove(preapproval, Taskhunters.getContext()); 
startActivityForResult(preapproveIntent, REQUEST_CODE); 

Stattdessen, wenn ich die Umgebung PayPal.ENV_NONE verwenden, die Anwendung ordnungsgemäß initialisiert wird, aber ich muss Testen Sie es in der Sandbox-Umgebung, da sonst der PreApproval-Schlüssel nicht als "genehmigt" festgelegt ist und ich den Zahlungsfluss nicht abschließen kann.

Ich habe drei Sandbox-Konten ordnungsgemäß erstellt und alle API-Aufrufe, die ich vom Server machen, funktionieren perfekt.

Also die Frage ist: WIE ICH DEN MPL ARBEITEN MIT DER SANDBOX-UMGEBUNG ???

Für diejenigen, die vorschlagen, den eingebetteten Fluss zu verwenden, habe ich es bereits versucht, aber die Benutzerfreundlichkeit ist schrecklich.

Danke für jede Hilfe!

Antwort

0

Endlich fand ich das Problem. MPL benötigt die Berechtigung READ_PHONE_STATE, die von Android 6 zu einer "gefährlichen Berechtigung" wurde. Um MPL wieder funktionsfähig zu machen, bitten Sie den Benutzer, diese Berechtigung zu erteilen, bevor Sie die Bibliothek verwenden.

+0

Testen Sie auf 6.0? – moDev

+0

ja, ich bin. 6.0.1 genau – Prem

+0

funktioniert es jetzt gut 6.0? Ich habe Probleme mit 5.1 – moDev