Skip to content

Reading and Validating In App Purchase Receipt Locally.

License

Notifications You must be signed in to change notification settings

tikhop/TPInAppReceipt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

390 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TPInAppReceipt

Swift Package Manager compatible Platform GitHub license

TPInAppReceipt is a lightweight, pure-Swift library for reading and validating Apple In App Purchase Receipt locally.

Installation

Requirements

  • Swift 6.0+ / Xcode 16+
  • macOS 10.15+ / iOS 13+ / tvOS 13+ / watchOS 6.2+ / visionOS 1+

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/tikhop/TPInAppReceipt.git", from: "4.0.2")
]
.target(
    name: "YourTarget",
    dependencies: ["TPInAppReceipt"]
)

Usage

Decoding and Reading

import TPInAppReceipt

// Local receipt
let receipt = try await AppReceipt.local

// From raw data
let receipt = try AppReceipt.receipt(from: data)

Access receipt fields, query purchases, check subscriptions and introductory offer eligibility.

See Working with Receipt for details.

Validating

Default validation: certificate chain + signature + hash + metadata.

let result = await receipt.validate()

switch result {
case .valid:
    break
case .invalid(let error):
    print(error)
}

Supports custom validators via @VerifierBuilder.

See Validating Receipt for details.

Blocking API

For contexts where async is not available.

@_spi(Blocking) import TPInAppReceipt

let receipt = try AppReceipt.local_blocking
let result = receipt.validate_blocking()

See Blocking Mode for details.

Migrating from v3

See TPInAppReceipt 4.0 Migration Guide.

Essential Reading

License

MIT

Sponsor this project

 

Packages

No packages published

Contributors 14

Languages