Implementing In-App Purchases on iOS
Tags: ios, swift
Published: 2020-06-10 10:48:21

Monetizing apps is challenging. In this course, [Implementing In-App Purchases on iOS](https://bit.ly/implementing-in-app-purchases-ios), you’ll learn to offer digital products and services directly within your app as in-app purchases. 

# Course Outline

First, you’ll explore how to translate business requirements into digital products and configure them in App Store Connect and Xcode. 

Next, you’ll discover how to build and test a store within your app using StoreKit. 

Finally, you’ll learn how to make sure purchases made within your app are authentic, and unlock content that’s been purchased by your users. 

When you’re finished with this course, you’ll have the skills and knowledge needed to implement in-app purchases on iOS!

## 1 – Preparing to Implement In-App Purchases

Prepare to implement in-app purchases by understanding what’s involved from a big picture standpoint.

You will learn to configure digital products in App Store Connect and Xcode to kick off your in-app purchase learning adventure.

Topics in this module include...

* The Perks (And the Work) Ahead of You
* First Things First - Checking off the Prerequisites
* Matching Product Types to Business Requirements
* Setting Up Products in App Store Connect
* Setting Up an Auto-Renewable Subscription
* Configuring an Xcode Project for In-App Purchases

## 2 – Building In-App Purchase Functionality with StoreKit

The focus of this module is on the StoreKit APIs for working with digital products and App Store Connect.

You will learn to build and test a fully-working store view that will support in-app purchases.  

Topics in this module include...

* Using StoreKit to Build In-App Purchase Functionality: A Roadmap
* Retrieving a Set of Products for Purchase from the App Store
* Displaying Products in a User Interface
* Implementing a “Buy” Button
* Preparing to Test Purchases by Setting up a Sandbox Tester Account
* Making Test Purchases
* Implementing a “Restore Purchases” Button

## 3 – Protecting Your Revenue by Verifying Purchase Authenticity

After all your hard work to implement in-app purchases, how awful would it be if malicious users *stole* the content you've labored to create?

In this module, you will learn to implement measures to protect revenue generated through in-app purchases by validating App Store receipts.

Receipt validation is a notoriously burdensome hassle. But it doesn't have to be!

I will teach you how to implement server-side receipt validation from end-to-end with *no* third-party libraries, *no* complicated server setup, and *no* platform-specific proprietary tools.

Here's the roadmap of topics incluced:

* Verifying Purchase Authenticity by Validating App Store Receipts
* Weighing Strategies for Receipt Validation
* Charting the Course for Server-side Receipt Validation
* Sending the Receipt from Your App to Your Server
* Writing Server-side Code to Forward the Receipt to the App Store for Validation
* Handling the Response from the App Store on Your Server
* Accounting for the Sandbox Environment on Your Server
* Handling the Response from Your Server in Your App
* The Case of the Missing Receipt: Requesting a Refresh

## 4 – Unlocking Purchased Content

After a user makes a valid purchase, you've got to unlock the content they legitimately bought!

Each product type has its own nuances for how to unlock and provide the associated content though. 

What do you need to think about, and what code do you need to write to make it happen?

To find out, you will explore these topics:

* Analyzing Content-providing Logic by Product Type
* Persisting Purchased Products Securely
* Using the iOS Keychain
* Keeping Track of Consumable Product Inventory
* Managing Non-Renewing Subscriptions
* Synchronizing Purchases Across Devices
* Handling Auto-Renewable Subscriptions
* Saving Non-Consumable Transactions
* Preparing for App Store Review

# Feedback Welcome!

From the beginning I set out to make the course I wish *I* had when I started learning to implement in-app purchases for *my* apps.  My unwavering goal is to help you filter the noise and learn as efficiently as possible.  My hope is that this course benefits you in your iOS development career!

I welcome feedback on this course, and on other iOS development courses you might be interested in seeing in the Pluralsight library. Happy learning!