/TPInAppReceipt

Reading and Validating In App Store Receipt

Primary LanguageSwiftMIT LicenseMIT

CocoaPods Compatible Platform GitHub license

TPInAppReceipt

A lightweight iOS/OSX library for reading and validating Apple In-App Receipt.

Features

  • Extract all In-App Receipt Attributes
  • Hash Verification
  • Verify Bundle Version and Identifiers
  • No More Openssl
  • Signature Verification (In Progress)

Installation

CocoaPods

To integrate TPInAppReceipt into your project using CocoaPods, specify it in your Podfile:

platform :ios, '9.0'

target 'YOUR_TARGET' do
    use_frameworks!

    pod 'TPInAppReceipt'
end

Then, run the following command:

$ pod install

Requirements

  • iOS 9.0+ / OSX 10.11+
  • Swift 5.0+

Usage

Working With a Receipt

do {
  let receipt = try InAppReceipt.localReceipt() 
  
  //let receiptData: Data = ...
  //let receipt = try InAppReceipt.receipt(from: receiptData)
} catch {
  print(error)
}

Useful methods

// Retrieve Original TransactionIdentifier for Product Name
receipt.originalTransactionIdentifier(ofProductIdentifier: subscriptionName)

// Retrieve Active Auto Renewable Subscription's Purchases for Product Name and Specific Date
receipt.activeAutoRenewableSubscriptionPurchases(ofProductIdentifier: subscriptionName, forDate: Date())

// Retrieve All Purchases for Product Name
receipt.purchases(ofProductIdentifier: subscriptionName)

In App Receipt Hash Validation

do {
    try r.verifyHash()
} catch ReceiptValidatorError.hashValidationFaied {
    // Do smth
} catch {
    // Do smth
}