Guide to Auto-Renewable Subscriptions in Swift

Anurag Pandey

AccuWeather Senior iOS Developer

June 4, 2021

Image
 

Auto-renewable subscription is an iOS purchase category that allows developers to monetize their apps by charging for the content or features. To offer subscriptions, you’ll need to implement StoreKit APIs in your app, configure your subscriptions in App Store Connect and assign them to a subscription group (a group of subscriptions with different access levels, prices, and durations).


So let's dive into implementing auto-renewable subscriptions and make some money.

Configure the Subscription Product

Step 1: Set up a subscription product in App Store Connect

Login to the iTunes Connect in-app purchases and create a subscription product as shown below:

In-App Purchases

Configure Your Subscription Product Here

Image

In-App Purchases

Configure Your Subscription Product Here

Image

In-App Purchases

Configure Your Subscription Product Here

Image

Step 2: Generate app-specific shared secret key

Now that you have set up the subscription product on iTunes Connect, you need a way to fetch subscription details on the app. Apple does not provide anything built into iOS or a REST API that gives you simple subscription details. Apple does have an API (receipt validation API) that when given a user's local receipt and a shared secret generated in iTunes Connect, it returns a JSON object of the user's purchase history for your app, including their current subscription information.

 

In order to access the receipt validation API, you need an app-specific shared secret key. Generate the shared secret key and never regenerate it if you have a live app and use it on the App Store.

App-Specific Shared Secret

This is where you Manage App-Specific Shared Secret

Image

App-Specific Shared Secret

This is where you Manage App-Specific Shared Secret

Image

Let's Dive Into Coding

Now we have all the configuration done, we can get into some coding.

Step 3: Create StorekitHandler

First, create a StoreKitHandler class that imports StoreKit. Here is a code sample of how to initialize StorekitHandler that pulls all the products from the App Store:
Image
StoreKitHandler needs to conform to SKPaymentTransactionObserver and SKProductsRequestDelegate. With our SKProductsRequest delegate set and the request started, we need a way to grab the response and implement the SKProductsRequest delegate method:
Image

Step 4: Initiate a purchase and restore a request

Now we are all set up to handle the purchase request, let’s get into how to initiate a purchase and restore a request:
Image

Step 5: Confirm request is successful

If your product request is successful, we just need to observe the purchase response SKPaymentTransactionObserver’s paymentQueue method. paymentQueue method contains a list of transactions and each transaction has transactionState as below:
Image
Your app may need to support multiple countries and is supposed to show the price in a localized currency. Apple has made that easy for us. SKProduct contains price details and can be accessed as below:
Image
A successful purchase event in the paymentQueue method doesn’t signify a successful purchase, because a successful purchase event means that purchase was done in the past. It doesn’t mean a subscription is valid. To verify the validity of a subscription product, we need to validate receipt.

Subscription Best Practices

Here are a few important best practices to work by:

 

    1. Never store subscription data such as prices and descriptions for example, in your app. Always rely on Apple for this latest data. This will give you the ability to change prices and make unique promotional offerings without releasing a new app version.

 

  1. Describe your subscription clearly so your users know exactly what they’re buying. Also a clear description is required from Apple to avoid any App Store rejections.

Anurag Pandey

Anurag Pandey

AccuWeather Senior iOS Developer

An iOS enthusiast with a passion to dive deeply into architectures, design patterns, standard principles and explore new technologies.

AccuWeather Enterprise Solutions, the world's leading commercial weather source partnering with more than 240 of Fortune 500 companies and thousands of businesses and government agencies worldwide, provides the most accurate, actionable weather data, forecasts, and intelligence that saves lives, protects property, drives revenue, minimizes risk, increases productivity, and more for clients worldwide. AccuWeather Enterprise Solutions has focused on the business impacts of weather for over 50 years, serving clients in all 50 states in the United States and worldwide including all of North America, Europe, Africa, Australia, South America and Asia. Clients across all industries rely on AccuWeather Enterprise Solutions for the most accurate weather information and insights to drive quantifiable business results. Government and emergency management agencies also rely on AccuWeather for the best forecasts of severe weather events - floods, tornadoes, hurricanes, cyclones and others - available from any source. By forecasting and communicating the weather the most accurately and effectively worldwide, focusing on impacts - telling people how, why, and what they need to do in order to save lives and minimize losses - AccuWeather has saved tens of thousands of lives and tens of billions of dollars in property damage.

Related Posts

Press Release

LG to Add AccuWeather NOW Live Streaming Service to its Lineup

AccuWeather Global Weather Center, January 27, 2021 - AccuWeather NOWTM, the new video streaming product from AccuWeather, the proven leader in weather forecast accuracy, announced it is joining LG Channels' growing roster of over 300 channels, meeting an increasing demand for streaming weather and climate news and content. LG users can now access AccuWeather's forecasts...

Thu, 27 Jan 2022 14:21:51 GMT

Press Release

Industry Leader AccuWeather Launches ClimateReady™ Risk Mitigation

Conceived to help organizations identify threats and risks specific to their operations, new offering will help improve safety, productivity, supply chain resilience, and asset protection, and serve as a catalyst for climate change preparedness and innovation. AccuWeather Global Weather Center, January 25, 2022 - AccuWeather today announced the launch of ClimateReady™ Risk Mitigation to help...

Mon, 24 Jan 2022 22:13:04 GMT

Press Release

AccuWeather Acquires Plume Labs

Acquisition combines global weather leader's award-winning forecasts, warnings, insights, digital capabilities with Plume Labs' industry-leading air pollution data, products, and expertise AccuWeather Global Weather Center, January 24, 2022 - Global weather and digital media leader AccuWeather today announced it has acquired Paris-based environmental technology company Plume Labs® for an undisclosed amount, effective immediately. The deal...

Sat, 22 Jan 2022 22:33:15 GMT