Ich habe Profilfreigabe Option mit PayPal iOS Sdk erfolgreich implementiert. Ich bekomme richtigen Code, sobald Benutzer in Paypal-Konto in der App angemeldet. Ich habe versucht, die Benutzerinformationen mit curl Befehl zu erhalten Ich habe Erfolg.Wie bekomme ich das PayPal-Refresh-Token durch API-Aufruf in iOS
Jetzt möchte ich 2. und 3. Schritt durch API-Aufruf implementieren.
Unten ist, was ich implementiert habe, um Aktualisierungstoken von PayPal-Server zu erhalten.
func getTheRefreshToken(authToken:NSString) {
print("Token \(authToken)")
let urlPath: String = "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice"
let url: NSURL = NSURL(string: urlPath)!
let request: NSMutableURLRequest = NSMutableURLRequest(URL: url)
let basicAuthCredentials: String = "AXvaZH_Bs9**CLIENTID**0RbhP0G8Miw-y:ED_xgio**SECRET**YFwMOWLfcVGs"
let plainData = (basicAuthCredentials as NSString).dataUsingEncoding(NSUTF8StringEncoding)
let base64String = "Basic \(plainData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)))"
request.HTTPMethod = "POST"
let params = ["grant_type":"authorization_code","redirect_uri":"urn:ietf:wg:oauth:2.0:oob", "authorization_code":authToken as String] as Dictionary<String, String>
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.addValue(base64String, forHTTPHeaderField: "Authorization")
request.timeoutInterval = 60
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(params, options: [])
request.HTTPShouldHandleCookies=false
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response: NSURLResponse?, data: NSData?, error: NSError?) in
let refreshResponse = NSString(data: data!, encoding: NSISOLatin1StringEncoding)
print("Response \(refreshResponse!)")
}
}
Jedes Mal bekomme ich den Fehler mit grant_type als null.
Fehler
Response {"error_description":"Grant type is null","error":"invalid_grant","correlation_id":"e5d4cc9c47d21","information_link":"https://developer.paypal.com/docs/api/#errors"}
Ich habe bereits den Curl-Befehl gemacht und er gibt mir ein korrektes Ergebnis. Ich möchte nur die serverseitige Integration überspringen. Ich habe das Problem bereits gelöst. Danke für Ihre Hilfe :) – Hiren