iPhone PayPal初始化失败
我尝试在我的应用程序中启动PayPal。 有时我得到“networking超时”的错误,如果我重新尝试初始化贝宝这个警报出现一次又一次。 如何避免这一点? 如何正确重新PayPal? 我的代码是:
- (void)initializePayPal { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; [PayPal initializeWithAppID:PP_APP_ID forEnvironment:ENV_SANDBOX]; while([PayPal initializationStatus] == STATUS_INPROGRESS){ [NSThread sleepForTimeInterval:1]; } 开关([PayPal initializationStatus]){ 情况STATUS_COMPLETED_SUCCESS: 的NSLog(@ “STATUS_COMPLETED_SUCCESS”); 打破; 情况STATUS_COMPLETED_ERROR:{ NSDictionary * responseMessage = [PayPal getInstance] .responseMessage; NSLog(@“STATUS_COMPLETED_ERROR:%@”,responseMessage); if([[responseMessage objectForKey:@“errorId”] integerValue] == 10818){ [self initializePayPal]; } } 打破; 默认: 打破; } [游泳池释放]; }
PayPal初始化失败,有时当我使用ENV_SANDBOX问题解决了,当我开始使用ENV_LIVE,而不是ENV_SANDBOX
事实上,你的程序将永远不会工作。
PayPal.initializePayPal
是一个asynchronous方法,它的do-initialize部分必须在消息循环中运行。 所以在你的代码中while语句是从返回到事件循环的主线程。 你需要做的是离开这个方法,并尝试testing你的用户界面中的任何贝宝function时的状态。 给真正的初始化一个运行的机会。