IAP Introductory Pricing -- doesn't show the correct message

I create a subscription IAP with introductory pricing. When I try to purchase in the sandbox, it doesn't show the correct message in the system popup. I thought, it might be a sandbox limitation and went ahead to submit the app for review. It got rejected. I couldn't figure out what to do to fix it. Any thoughts?

Accepted Reply

When you test an iAP where introductory pricing is enable, make sure to use a test user account which has never been used with the app. I'd create a new test user account to test Introductory pricing with. If your sure that you did so, then this may be a bug report issue to submit for the App Store Server QA team to investigate.


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

Replies

When you test an iAP where introductory pricing is enable, make sure to use a test user account which has never been used with the app. I'd create a new test user account to test Introductory pricing with. If your sure that you did so, then this may be a bug report issue to submit for the App Store Server QA team to investigate.


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

Thanks. This worked.

Follow up question: Does this means I have to handle this in the real-world scenario? i.e. A user who has previously purchased a subscription and canceled it, will not see the offer?

My understanding is that showing offers after a lapsed period are a developer choice. Am I correct?

Please advise.

Introductory pricing ends after the first use. If you want to allow it after a lapsed period you will need to use non-renewing subscriptions not autorenewable subscriptions.

Thanks.


Meaning, that the system prompt will show full price, not the introductory price for subsequent purchases. Correct? So we will need to update the UI accordingly?

Your UI should get the price from price from this type of code:



-(void) productsRequest: (SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{   
     if([response.products count]>0){        
        NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
        [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
        [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
        [numberFormatter setLocale:[[response.products objectAtIndex:0] priceLocale]];
        
        UIAlertController *alert =
        [UIAlertController alertControllerWithTitle:@"Purchase Information" message:@"The following packages of\nadditional stones for Go\nare available for purchase.  Please select one." preferredStyle:UIAlertControllerStyleAlert];
       for(int iCount=(int)[response.products count]-1;iCount>=0;iCount--){
            [alert addAction:[UIAlertAction 
               actionWithTitle:[[[response.products objectAtIndex:iCount] localizedDescription] 
                  stringByAppendingFormat:@" %@",[numberFormatter stringFromNumber:
                   [[response.products objectAtIndex:iCount] price]]] 
               style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
                        SKPayment *paymentRequest= [SKPayment paymentWithProduct:
                            [response.products objectAtIndex:iCount]];
                        [[SKPaymentQueue defaultQueue] addPayment:paymentRequest];
                 }
            ]];
      }
     }