In-App Purchase failing in iOS 9 after payment update

We have had many users reporting that they have paid for our product via in-app purchase but we have failed to unlock the content. The common denominator between these reports is iOS 9. We have offered IAP for years and haven't experienced this issue until now.


We have found that the issue occurs when the customer is prompted to update their App Store payment information during the IAP process. This takes them out of our app. Then upon returning, the content is still locked. I was also able to replicate this by purchasing our product with a store build.


The Apple staff member in this related forum https://forums.developer.apple.com/thread/6431 indicates that the transaction will move to the a SKPaymentTransactionStateFailed when the user is directed out of the app to update their payment information. After updating their information, a SKPaymentTransactionStatePurchased is received. That forum suggests that finishTransaction should be called on the failed transaction. Then, finishTransaction should be called again after SKPaymentTransactionStatePurchased is received and the content is unlocked. This is what we have been doing for a long time but this doesn't appear to be working with iOS 9. It seems that we are only getting a call for the change to SKPaymentTransactionStateFailed but not for a subsequent SKPaymentTransactionStatePurchased. I can't guaruntee that we are not getting the state SKPaymentTransactionStatePurchased call as we can't use the debugger with our store builds but our code is simple enough to say this is very likely


Here is a simplified version of our code:


- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
  for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchasing:
                break;
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
               [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
            default:
                break;
        }
    }
}


We would like to know if others are experiencing IAP issue with iOS 9? Also, is it correct to call finishTransaction after SKPaymentTransactionStateFailed? If we do, will we still receive another delegate call for SKPaymentTransactionStatePurchased?


Any help that can be offered would be appreciated.


Bill

We have auto-renewing subscriptions and it is affecting us FWIW

Has anyone submitted a bug report per the instructions I posted earlier in the day? If so, please send me the bug report number.

Anytime I ask the StoreKit engineering whether they are aware of a problem, they ask for a bug report so that they understand the issue.


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

Its 29967331

nkroy,


I've forwarded the bug report to the Apps Ops Engineering QA team. I suspect that you may have selected the iOS product group, as I can't see the contents. I've asked that the bug report be passed on to the proper team. I've also sent a PDF of this developer posting to the team so that they can see how many developers report being affected.


I welcome all other bug reports - the more submissions, the higher the priority this issue will receive,


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

Thakns, Rich. I wrote up bug id 29980134 yesterday. I'm also filing a Technical Support Incident. This is a really bad issue that causes our customers to spend money and then not have a login to our app. I am surprised that Apple is not giving it higher priority, as it calls into question the reliability of the entire Apple in-app purchase process, and thus makes it less likely for people to give their money to Apple.


We have auto-renewing subscriptions, FYI.

submitted bugreport #29993514 with store log and detailed reporduction steps

We are experiencing this issue again as well -- started about 1 week ago -- and are submitting a radar.

I'm told that the iTunes Store Engineering team has been investigating this issue. The team has not provided me with any additional information.


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

We are also experiencing the issue. I've filed a radar for it (ID #29980349). I've also emailed you our console logs directly in case it helps the iTunes Store engineering team debug the problem.


Thanks,

Ara

Maybe we should all tweet at Phil Schiller, since he is in charge of the App Store now. If we hit him with tweets from 15 - 20 people in a short period of time, hopefully this issue will be fixed, both the immediate problem and the larger organizational issues.


To find my tweet at Phil, go to my profile on Twitter (jeffhunterx) and look at my most recent tweets. Feel free to pile on. (Sorry for the obtuseness, but if I include a link to Twitter, my posts don't seem to actually make it to this forum.)

Yeah, this should be a massive embarrassment to Apple. Things have now been broken for a week and we're all getting flooded with justifyably angry customer complaints. It's really hard to believe that Apple wasn't aware of the problem on their own, since you'd think that iTunes Store customer support is probably getting a lot of tickets about this, too. Also, seemingly the exact same problem occured in September 2015 and again in December 2013, so you'd think someone would have put some tests in place to prevent this from happening again, or at least detect it.


So either Apple has been unaware of a serious problem processing payments for a whole week, or they've known about it, and been unable to fix it within a week. Either way, like I said, it should be a massive embarrassment. We're talking about a bug affecting customer payments, not some minor bug like a rendering glitch.


Oh, and of course there is no actual communication with developers about the problem. According to the Apple System Status page (search for it on Google), there are no problems with the App Store right now, everything is fine!

We're also experiencing the same issue when using auto renewable subscriptions. I've filed bug report #30017642.

Alright y'all, Apple doesn't communicate with developers, so we'll never hear anything official on this, but here's some hearsay for you:


The problem appears to be fixed as of Friday afternoon. Our customers who were affected by this are now reporting that their transactions are going through. In some cases these transactions are up to a week old, so this is generating quite a bit of customer confusion (we send an email when a user makes a purchase), but at least the transactions are going through.


A reputable payments processor like Stripe would put a problem like this on their status page and probably post a detailed post-mortem, but I won't hold my breath for any kind of communication from Apple.


See you all in this thread next year when things are broken again!

I was just told by my iTunes Store contacts that a fix was implemented into the servers earlier today. I don't have the time, nor was there an explanation as to the cause of the problem. If you find that this issue still persists, then your application may be triggering this problem in a different way. I would submit a bug report per the instructions I outlined above.


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

awesome. thanks for the update!

In-App Purchase failing in iOS 9 after payment update
 
 
Q