iPhone Store Kit "не может подключиться к магазину Itunes" не может подключиться к магазину Itunes " - PullRequest
0 голосов
/ 18 октября 2011

привет, я реализовал storeKit в своем приложении для ios, это код:

-(IBAction)Purchase:(id)sender{
SKPayment *payment = [SKPayment paymentWithProductIdentifier:@"month"];
[[SKPaymentQueue defaultQueue]addTransactionObserver:self];
[[SKPaymentQueue defaultQueue]addPayment:payment];
}


-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
    SKProduct *VailProduct = nil;
    int count = [response.products count];
    if (count>0) {
        VailProduct = [response.products objectAtIndex:0];
    } else if (!VailProduct){
        UIAlertView *theAlert = [[UIAlertView alloc]initWithTitle:@"LOG" message:@"No Products Are Availble!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
        [theAlert show];
        [theAlert release];

    }

}

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
    for (SKPaymentTransaction *transaction in transactions) {
        switch (transaction.transactionState) {
        case SKPaymentTransactionStatePurchasing:

                break;
                case SKPaymentTransactionStatePurchased:
                [self EnableEmergencyCenter];
                [[SKPaymentQueue defaultQueue]finishTransaction:transaction];
                break;

                case SKPaymentTransactionStateRestored:
                [[SKPaymentQueue defaultQueue]finishTransaction:transaction];
                break;

                case SKPaymentTransactionStateFailed:
                if (transaction.error.code != SKErrorPaymentCancelled) {
                    UIAlertView *theAlert = [[UIAlertView alloc]initWithTitle:@"LOG" message:[NSString stringWithFormat:@"%@",transaction.error] delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
                    [theAlert show];
                    [theAlert release];

                }
                [[SKPaymentQueue defaultQueue]finishTransaction:transaction];
                break;
        }
    }
}

это приходит на viewDidLoad:

if ([SKPaymentQueue canMakePayments])
{
     // Display a store to the user.
    UIAlertView *theAlert = [[UIAlertView alloc]initWithTitle:@"LOG" message:@"Device Can Make Payments!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [theAlert show];
    [theAlert release];

    SKProductsRequest *ProductRequst = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObject:@"month"]];
    ProductRequst.delegate = self;
    [ProductRequst start];
}
else {
     // Warn the user that purchases are disabled.
    UIAlertView *theAlert = [[UIAlertView alloc]initWithTitle:@"LOG" message:@"Device Can't Make Payments!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
    [theAlert show];
    [theAlert release];
}

идентификатор продукта точен, но я продолжаю получать эту ошибку, вызванную оператором switch

    case SKPaymentTransactionStateFailed:
        if (transaction.error.code != SKErrorPaymentCancelled) {
            UIAlertView *theAlert = [[UIAlertView alloc]initWithTitle:@"LOG" message:[NSString stringWithFormat:@"%@",transaction.error] delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
            [theAlert show];
            [theAlert release];

помогите пожалуйста:)

Ответы [ 2 ]

1 голос
/ 26 сентября 2013

Поскольку этот вопрос был задан год назад, я думаю, что проблема уже решена, но я все равно попробую свою удачу.

Попробуйте следующие вещи:

  • создайте новый профиль обеспечения, установите его и подпишите им свое приложение. Иногда старые профили не будут обновляться при их редактировании, и поэтому процесс оплаты не будет работать.
  • Если вы правильно получили продукты и ранее установили версию приложения для iTunes, вам нужно удалить приложение с устройства и установить его через XCode.

Надеюсь, это поможет

EDIT:

Это также может помочь вам

Ошибка домена = код SKErrorDomain = 0 «Операция не может быть завершена. (SKErrorDomain ошибка 0.) ”

1 голос
/ 18 октября 2011

Покупка не удалась, потому что транзакция технически не удалась, и это не связано конкретно с тем, что она не может подключиться ... это может быть связано с рядом причин. Дважды проверьте правильность идентификатора продукта. Я думаю, что ваша проблема, скорее всего, в том, что вы не подписываете свое приложение сертификатом разработки, который связан с идентификатором приложения, используемым для вашего приложения. В iTunes Connect, с каким идентификатором приложения связано ваше приложение? Это должен быть идентификатор приложения, ОПРЕДЕЛЕННО для этого приложения (то есть com.ChillySky.InAppPurchaseApp, НЕ com.ChillySky. *), Без подстановочных знаков! Также вам необходимо сгенерировать специальный сертификат разработки, чтобы протестировать это приложение на вашем устройстве. ЭТО ДОЛЖНО БЫТЬ СВЯЗАНО С ПРАВИЛЬНЫМ ИДЕНТИФИКАТОРОМ ПРИЛОЖЕНИЯ !! Если что-то из этого не правильно, ваша покупка в приложении не пройдет. Это была самая большая проблема для меня. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...