Я добавил покупку в приложении в свое приложение, оно хорошо работает в среде песочницы, но когда я изменяю его URL-адрес с песочницы на приложение и запускаю приложение, оно ведет себя неожиданно.
Вот мой код:
Ниже приведен метод, с помощью которого мы запрашиваем у Apple информацию о покупках в приложении пользователя.
-(BOOL) getSubscriptionStatusFromAppleWithReceipt:(NSData *) receiptData
{
NSError *error;
NSMutableDictionary *requestContents = [NSMutableDictionary dictionaryWithObject:
[receiptData base64EncodedStringWithOptions:0] forKey:@"receipt-data"];
NSString *sharedSecret = @“*********************”;
if (sharedSecret) requestContents[@"password"] = sharedSecret;
NSData *requestData = [NSJSONSerialization dataWithJSONObject:requestContents options:0 error:&error];
NSString *strUrl = @"";
// Live server
strUrl = @"https://buy.itunes.apple.com/verifyReceipt";
// Devlopment server
// strUrl = @ "https://sandbox.itunes.apple.com/verifyReceipt";
NSMutableURLRequest *storeRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:strUrl]];
[storeRequest setHTTPMethod:@"POST"];
[storeRequest setHTTPBody:requestData];
queue = [NSOperationQueue mainQueue];
// NSError *error = nil;
NSHTTPURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:storeRequest returningResponse:&response error:&error];
if (!error)
{
NSString* newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
if ([jsonResponse[@"latest_receipt_info"] isKindOfClass:[NSArray class]])
{
NSArray *receiptInfo = (NSArray *) jsonResponse[@"latest_receipt_info"];
return [self parseJsonFromAppleServer:receiptInfo];
}
}
else
{ NSLog(@"%@", error.localizedDescription);
}
return false;
}
И следующий метод в этом, я получаю последний индекс массива квитанций и пытаюсь получить детали подписки пользователя.
Должен ли я загрузить его во время тестового полета или каким-либо иным способом отличить его от живого в разработке?
Как проверить это в живом окружении.
Спасибо