PFPurchase

@interface PFPurchase : NSObject

PFPurchase provides a set of APIs for working with in-app purchases.

This class is currently for iOS only.

  • Add application logic block which is run when buying a product.

    This method should be called once for each product, and should be called before calling +buyProduct:block:. All invocations to +addObserverForProduct:block: should happen within the same method, and on the main thread. It is recommended to place all invocations of this method in application:didFinishLaunchingWithOptions:.

    Declaration

    Objective-C

    + (void)addObserverForProduct:(nonnull NSString *)productIdentifier
                            block:(nonnull PFPurchaseProductObservationBlock)block;

    Parameters

    productIdentifier

    the product identifier

    block

    The block to be run when buying a product.

  • Asynchronously initiates the purchase for the product.

    Declaration

    Objective-C

    + (void)buyProduct:(nonnull NSString *)productIdentifier
                 block:(nullable PFPurchaseBuyProductResultBlock)block;

    Parameters

    productIdentifier

    the product identifier

    block

    the completion block.

  • Asynchronously download the purchased asset, which is stored on Parse’s server.

    Parse verifies the receipt with Apple and delivers the content only if the receipt is valid.

    Declaration

    Objective-C

    + (void)downloadAssetForTransaction:(nonnull SKPaymentTransaction *)transaction
                             completion:(nonnull PFPurchaseDownloadAssetResultBlock)
                                            completion;

    Parameters

    transaction

    the transaction, which contains the receipt.

    completion

    the completion block.

  • Asynchronously download the purchased asset, which is stored on Parse’s server.

    Parse verifies the receipt with Apple and delivers the content only if the receipt is valid.

    Declaration

    Objective-C

    + (void)downloadAssetForTransaction:(nonnull SKPaymentTransaction *)transaction
                             completion:(nonnull PFPurchaseDownloadAssetResultBlock)
                                            completion
                               progress:(nullable PFProgressBlock)progress;

    Parameters

    transaction

    the transaction, which contains the receipt.

    completion

    the completion block.

    progress

    the progress block, which is called multiple times to reveal progress of the download.

  • Asynchronously restore completed transactions for the current user.

    Only nonconsumable purchases are restored. If observers for the products have been added before calling this method, invoking the method reruns the application logic associated with the purchase.

    Warning

    This method is only important to developers who want to preserve purchase states across different installations of the same app.

    Declaration

    Objective-C

    + (void)restore;
  • Returns a content path of the asset of a product, if it was purchased and downloaded.

    To download and verify purchases use +downloadAssetForTransaction:completion:.

    Warning

    This method will return nil, if the purchase wasn’t verified or if the asset was not downloaded.

    Declaration

    Objective-C

    + (nullable NSString *)assetContentPathForProduct:(nonnull PFProduct *)product;