3

このアプリは、ユーザーがスキームに加入すると (1 か月、3 か月、6 か月、または 1 年) のみ、すべてのコンテンツにアクセスできるようになっています。そのため、最初にアプリをインストールすると、これらのスキームを購入するオプションを含むビューが表示されます。ユーザーがスキームを選択して購入すると、アクセス権が付与されます。

アプリケーションでデリゲートを初期化します。 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
}

インターフェイスが設定されたら。各サブスクリプション スキームに関連付けられている UIbuttons は、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 @"*****"

サーバー側のコードも掲載しましたが、機能していないようです。データベースにも何も記録されていないようです。

どうすればこれを正しく理解できますか?

4

1 に答える 1

0

自動更新可能なサブスクリプションには、サーバーコンポーネントは必要ありません。Appleは、サーバー上のサブスクリプションの記憶を自動的に処理します。

于 2012-04-17T14:46:45.523 に答える