How to display local pricing in app too match App Store pricing for different currencies?

Hi there!


My app recently got rejected because the pricing displayed within the app differs from the pop-up purchase modal that displays the user's local currency (as per the app store pricing).


Background: We have created three types of in-app auto-renewable subscriptions. The options (& prices) displayed within a static page of our app only show AUD pricing (as that's our predominant market) but we've made the app available globally. The in-app purchase price displayed (once user's tap to purchase) is that of their local currency as we followed the process set out by Apple for local territory pricing (determined by them).


Issue: We were rejected because the pricing displayed in our app doesn't match the pricing of app-store in-app purchase and Apple believe this is confusing. i.e. Pricing in App = $19.00 AUD, US App Store pop-up shows equivalent purchase price to be $12.99USD (they don't match).


Question: What have others used as a work-around for this? The only options we think we have are:

1) Create multiple versions of the app and make them available to different app stores with screens that display local currency pricing

2) Create some sort of dynamic content that updates the price displayed to be in line with the country's app store pricing

3) Remove the app from all other app stores and limit it to Australia only.


If you could please tell me the simplest way to match the pricing we display with the local currency pricing of the app store, that would be super helpful!


Thanks heaps!

Replies

Use the StoreKit API to request the current price and locale.

There are two 'solutions'.


One, just add "These prices are for US Customers. Local prices may vary but will be displayed before your purchase is finalized." It might work.


Or two, use code like this:

-(void) productsRequest: (SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
    
    dispatch_async(dispatch_get_main_queue(), ^{    //   NEW !!!!!!
    
    int count=(int)[response.products count];
    if(count>0 && [SKPaymentQueue canMakePayments]){
        self->productButtons=[[NSMutableArray alloc] init];
        NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
        [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
        [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
        [numberFormatter setLocale:[[response.products objectAtIndex:0] priceLocale]];
        int buttonCounter;
        for (buttonCounter=0; buttonCounter<count; buttonCounter++) {
            [self->productButtons addObject:
                [[[response.products objectAtIndex:buttonCounter] localizedDescription]
                    stringByAppendingFormat:@" %@",
                      [numberFormatter stringFromNumber:
                      [[response.products objectAtIndex:buttonCounter] price]]]];
        }
         // handle display of prices using productButtons array
    }

    });   // NEW !!!!
}
Post not yet marked as solved Up vote reply of PBK Down vote reply of PBK