JUCE
Classes | Public Member Functions | Public Attributes | List of all members
InAppPurchases Class Reference

Provides in-app purchase functionality. More...

Inheritance diagram for InAppPurchases:

Classes

struct  Download
 iOS only: represents in-app purchase download. More...
 
struct  Listener
 Represents an object that gets notified about events such as product info returned or product purchase finished. More...
 
struct  Product
 Represents a product available in the store. More...
 
struct  Purchase
 Represents a purchase of a product in the store. More...
 

Public Member Functions

bool isInAppPurchasesSupported () const
 Checks whether in-app purchases is supported on current platform. More...
 
void getProductsInformation (const StringArray &productIdentifiers)
 Asynchronously requests information for products with given ids. More...
 
void purchaseProduct (const String &productIdentifier, const String &upgradeOrDowngradeFromSubscriptionWithProductIdentifier={}, bool creditForUnusedSubscription=true)
 Asynchronously requests to buy a product with given id. More...
 
void restoreProductsBoughtList (bool includeDownloadInfo, const juce::String &subscriptionsSharedSecret={})
 Asynchronously asks about a list of products that a user has already bought. More...
 
void consumePurchase (const String &productIdentifier, const String &purchaseToken={})
 Android only: asynchronously sends a request to mark a purchase with given identifier as consumed. More...
 
void addListener (Listener *)
 Adds a listener. More...
 
void removeListener (Listener *)
 Removes a listener. More...
 
void startDownloads (const Array< Download *> &downloads)
 iOS only: Starts downloads of hosted content from the store. More...
 
void pauseDownloads (const Array< Download *> &downloads)
 iOS only: Pauses downloads of hosted content from the store. More...
 
void resumeDownloads (const Array< Download *> &downloads)
 iOS only: Resumes downloads of hosted content from the store. More...
 
void cancelDownloads (const Array< Download *> &downloads)
 iOS only: Cancels downloads of hosted content from the store. More...
 

Public Attributes

JUCE_DEPRECATED_WITH_BODY(void purchaseProduct(const String &productIdentifier, bool isSubscription, const StringArray &upgradeOrDowngradeFromSubscriptionsWithProductIdentifiers={}, bool creditForUnusedSubscription=true), { ignoreUnused(isSubscription);purchaseProduct(productIdentifier, upgradeOrDowngradeFromSubscriptionsWithProductIdentifiers[0], creditForUnusedSubscription);}) private friend void juce_inAppPurchaseCompleted (void *)
 
std::unique_ptr< Pimplpimpl
 

Detailed Description

Provides in-app purchase functionality.

Your app should create a single instance of this class, and on iOS it should be created as soon as your app starts. This is because on application startup any previously pending transactions will be resumed.

Once an InAppPurchases object is created, call addListener() to attach listeners.

Member Function Documentation

◆ isInAppPurchasesSupported()

bool InAppPurchases::isInAppPurchasesSupported ( ) const

Checks whether in-app purchases is supported on current platform.

On iOS this always returns true.

◆ getProductsInformation()

void InAppPurchases::getProductsInformation ( const StringArray productIdentifiers)

Asynchronously requests information for products with given ids.

Upon completion, for each enquired product there is going to be a corresponding Product object. If there is no information available for the given product identifier, it will be ignored.

◆ purchaseProduct()

void InAppPurchases::purchaseProduct ( const String productIdentifier,
const String upgradeOrDowngradeFromSubscriptionWithProductIdentifier = {},
bool  creditForUnusedSubscription = true 
)

Asynchronously requests to buy a product with given id.

Parameters
productIdentifierThe product identifier.
upgradeOrDowngradeFromSubscriptionWithProductIdentifier(Android only) specifies the subscription that will be replaced by the one being purchased now. Used only when buying a subscription that is an upgrade or downgrade from another.
creditForUnusedSubscription(Android only) controls whether a user should be credited for any unused subscription time on the product that is being upgraded or downgraded.

◆ restoreProductsBoughtList()

void InAppPurchases::restoreProductsBoughtList ( bool  includeDownloadInfo,
const juce::String &  subscriptionsSharedSecret = {} 
)

Asynchronously asks about a list of products that a user has already bought.

Upon completion, Listener::purchasesListReceived() callback will be invoked. The user may be prompted to login first.

Parameters
includeDownloadInfo(iOS only) if true, then after restoration is successful, the downloads array passed to Listener::purchasesListReceived() callback will contain all the download objects corresponding with the purchase. In the opposite case, the downloads array will be empty.
subscriptionsSharedSecret(iOS only) required when not including download information and when there are auto-renewable subscription set up with this app. Refer to In-App-Purchase settings in the store.

◆ consumePurchase()

void InAppPurchases::consumePurchase ( const String productIdentifier,
const String purchaseToken = {} 
)

Android only: asynchronously sends a request to mark a purchase with given identifier as consumed.

To consume a product, provide product identifier as well as a purchase token that was generated when the product was purchased. The purchase token can also be retrieved by using getProductsInformation(). In general if it is available on hand, it is better to use it, because otherwise another async request will be sent to the store, to first retrieve the token.

After successful consumption, a product will no longer be returned in getProductsBought() and it will be available for purchase.

On iOS consumption happens automatically. If the product was set as consumable, this function is a no-op.

◆ addListener()

void InAppPurchases::addListener ( Listener )

Adds a listener.

◆ removeListener()

void InAppPurchases::removeListener ( Listener )

Removes a listener.

◆ startDownloads()

void InAppPurchases::startDownloads ( const Array< Download *> &  downloads)

iOS only: Starts downloads of hosted content from the store.

◆ pauseDownloads()

void InAppPurchases::pauseDownloads ( const Array< Download *> &  downloads)

iOS only: Pauses downloads of hosted content from the store.

◆ resumeDownloads()

void InAppPurchases::resumeDownloads ( const Array< Download *> &  downloads)

iOS only: Resumes downloads of hosted content from the store.

◆ cancelDownloads()

void InAppPurchases::cancelDownloads ( const Array< Download *> &  downloads)

iOS only: Cancels downloads of hosted content from the store.

Member Data Documentation

◆ juce_inAppPurchaseCompleted

JUCE_DEPRECATED_WITH_BODY (void purchaseProduct (const String& productIdentifier, bool isSubscription, const StringArray& upgradeOrDowngradeFromSubscriptionsWithProductIdentifiers = {}, bool creditForUnusedSubscription = true), { ignoreUnused (isSubscription); purchaseProduct (productIdentifier, upgradeOrDowngradeFromSubscriptionsWithProductIdentifiers[0], creditForUnusedSubscription); }) private friend void InAppPurchases::juce_inAppPurchaseCompleted(void *)

◆ pimpl

std::unique_ptr<Pimpl> InAppPurchases::pimpl

The documentation for this class was generated from the following file: