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时的状态。 给真正的初始化一个运行的机会。