Приложение таково, что весь контент может быть доступен только после того, как пользователь подписался на схему (1 месяц, 3 месяца, 6 месяцев или год). Поэтому изначально, когда приложение впервые установлено, появляется представление с вариантами покупки этих схем. Когда пользователь выбирает схему и совершает покупку, ему предоставляется доступ.
Я инициализирую делегата в приложении: didFinishLaunchingWithOptions:
В первом ViewController я слушаю уведомление kProductFetchedNotification. и как только я получаю все продукты, я заполняю интерфейс. Я также проверяю, активна ли подписка
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(productFetchSuccesful:) name:kProductFetchedNotification object:nil];
...
if([[MKStoreManager sharedManager] isSubscriptionActive:kFeatureAId]){
[self grantAccess];
}else if([[MKStoreManager sharedManager] isSubscriptionActive:kFeatureBId]){
...
...
}
-(void)productFetchSuccesful:(NSNotification*)notification{
NSArray *products = (NSArray*)[[MKStoreManager sharedManager] purchasableObjectsDescription];
NSLog(@"%@",products);
//*****populate ui
}
После заполнения интерфейса. Кнопки UI, связанные с каждой схемой подписки, связаны с IBAction
-(IBAction)purchaseSubscription:(id)sender{
UIButton *currentBtn = (UIButton*)sender;
switch (currrentBtn.tag) {
case product1Tag:
[[MKStoreManager sharedManager] buyFeature:kFeatureAId
onComplete:^(NSString* purchasedFeature)
{
NSLog(@"Purchased: %@", purchasedFeature);
[self grantAccess];
}
onCancelled:^
{
}];
break;
case product2Tag:
...
...
...
}
}
Я установил значения в MKStoreKitConfigs.h, установил OWN_SERVER и поделился секретом
#define kConsumableBaseFeatureId @"com.mycompany.myapp."
#define kFeatureAId @"1month"
#define kFeatureBId @"7days"
#define kConsumableFeatureBId @"com.mycompany.myapp.005"
#define FishBasket @"FishBasket"
#define SERVER_PRODUCT_MODEL 1
#define OWN_SERVER @"http://testsite.com/demo/itunes"
#define REVIEW_ALLOWED 1
//#warning Shared Secret Missing Ignore this warning if you don't use auto-renewable subscriptions
#define kSharedSecret @"*****"
Я также установил коды на стороне сервера, но, похоже, он не работает. Кажется, в базе данных тоже ничего не записано.
Как мне это понять?