我正在创建一个应用程序,我必须使用paypal
付款,成功付款后我必须生成付款详细信息,因此我需要访问令牌。
我得到了如何获取访问令牌的方法,我试着投入。它和我成功使用客户端ID和客户端密钥获取该访问令牌。直到这个没有问题。
但是当我在我的代码中放置这些凭据(Client_ID和Client_Secret)时,它总是返回无效的客户端凭证。
NSURL *URL = [NSURL URLWithString:@"https://api.sandbox.paypal.com/v1/oauth2/token"];
// NSURLRequest *request = [NSURLRequest requestWithURL:URL
// cachePolicy:NSURLRequestUseProtocolCachePolicy
// timeoutInterval:30.0];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:URL];
NSString *client_id = @"xxxxxxxxxxxxxx";
NSString *client_secret = @"xxxxxxxxxxxxxx";
[request setHTTPMethod:@"POST"];
NSString *authStr = [NSString stringWithFormat:@"%@:%@", client_id, client_secret];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [authData base64EncodingWithLineLength:80]];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"en_US" forHTTPHeaderField:@"Accept-Language"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"client_credentials",@"grant_type", nil];
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:nil];
request.HTTPBody = jsonData;
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
以下是我在didFinishLoading
2015-07-14 14:54:25.130 paypalNativeDemo[1478:61010] {"error":"invalid_client","error_description":"Invalid client credentials"}
答案 0 :(得分:0)
通常,此错误是由于REST应用程序尚未获得批准。我建议您通过帐户中的号码与PayPal支持小组联系,并告知代理您正在呼叫以检查您的REST应用程序的状态。
答案 1 :(得分:0)
沙箱凭据与实时不同。如果您正在与沙盒交谈,请确保您正在使用沙箱client_id
。