

TPinAtrepreceipt ist eine leichte, reine Swift-Bibliothek zum Lesen und Validieren von Apple in App-Kaufquittung vor Ort.
HINWEIS: TPinApreceipt im Objective-C-Projekt-Wenn Sie TPinApreceipt im Objective-C-Projekt verwenden möchten, folgen Sie bitte diesem Handbuch.
Um TPinschätzung mit Cocoapods in Ihr Projekt zu integrieren, geben Sie es in Ihrer Podfile an:
platform :ios , '12.0'
target 'YOUR_TARGET' do
use_frameworks!
pod 'TPInAppReceipt'
endFühren Sie dann den folgenden Befehl aus:
$ pod install Importieren Sie in jeder SWIFT -Datei, die Sie mit TPinApreceipt verwenden möchten, das Framework mit import TPInAppReceipt .
Um mit dem Swift -Paket -Manager von Apple zu integrieren, fügen Sie Ihrem Package.swift Folgendes als Abhängigkeit hinzu.
. package ( url : " https://github.com/tikhop/TPInAppReceipt.git " , . upToNextMajor ( from : " 3.0.0 " ) ) Geben Sie dann "TPInAppReceipt" als Abhängigkeit des Ziels an, in dem Sie TPinAtrepreceipt verwenden möchten.
Führen Sie schließlich den folgenden Befehl aus:
swift package update Das InAppReceipt Objekt fasst Informationen zu einer Quittung und den damit verbundenen Einkäufen zusammen. Um die In-App-Kaufquittung zu validieren, müssen Sie ein InAppReceipt Objekt erstellen.
So erstellen Sie ein InAppReceipt Objekt, können Sie entweder eine Rohbelegdaten angeben oder eine lokale Quittung initialisieren.
do {
/// Initialize receipt
let receipt = try InAppReceipt . localReceipt ( )
// let receipt = try InAppReceipt() // Returns local receipt
// let receiptData: Data = ...
// let receipt = try InAppReceipt.receipt(from: receiptData)
} catch {
print ( error )
}
TPInAppReceipt bietet eine Vielzahl von Komfortmethoden zur Validierung des In-App-Kaufs:
/// Verify hash
try ? receipt . verifyHash ( )
/// Verify bundle identifier
try ? receipt . verifyBundleIdentifier ( )
/// Verify bundle version
try ? receipt . verifyBundleVersion ( )
/// Verify signature
try ? receipt . verifySignature ( )
/// Validate all at once
do {
try receipt . verify ( )
} catch IARError . validationFailed ( reason : . hashValidation ) {
// Do smth
} catch IARError . validationFailed ( reason : . bundleIdentifierVerification ) {
// Do smth
} catch IARError . validationFailed ( reason : . signatureValidation ) {
// Do smth
} catch {
// Do smth
}HINWEIS: Apple empfiehlt, die Empfangsvalidierung gleich nach dem Start Ihrer App durchzuführen. Für zusätzliche Sicherheit können Sie diese Überprüfung regelmäßig wiederholen, während Ihre Anwendung ausgeführt wird. Hinweis: Wenn die Validierung in iOS fehlschlägt, versuchen Sie zuerst, die Quittung zu aktualisieren.
Wenn Ihre App Einführungspreise für automatisch erneuerbare Abonnements anbietet, müssen Sie den richtigen Preis, entweder den Intro oder den regulären Preis, abgeben.
Die InAppReceipt -Klasse bietet eine Schnittstelle zur Bestimmung der Einführungszahlen. Geben Sie einfach am einfachsten eine Set von Produktidentifikatoren an, die zur gleichen Abonnementgruppe gehören:
// Check whether user is eligible for any products within the same subscription group
var isEligible = receipt . isEligibleForIntroductoryOffer ( for : [ " com.test.product.bronze " , " com.test.product.silver " , " com.test.product.gold " ] )Hinweis: Um festzustellen, ob ein Benutzer für ein Einführungsangebot berechtigt ist, müssen Sie zuerst und nur die Quittung initialisieren und validieren und dann nach Berechtigung prüfen.
/// Initialize receipt
let receipt = try ! InAppReceipt . localReceipt ( )
/// Base64 Encoded Receipt
let base64Receipt = receipt . base64
/// Check whether receipt contains any purchases
let hasPurchases = receipt . hasPurchases
/// All auto renewable `InAppPurchase`s,
let purchases : [ InAppPurchase ] = receipt . autoRenewablePurchases
/// all ACTIVE auto renewable `InAppPurchase`s,
let activePurchases : [ InAppPurchase ] = receipt . activeAutoRenewableSubscriptionPurchases // 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 ) Verwenden Sie diese Methode bei Bedarf, um sicherzustellen, dass die Quittung, mit der Sie arbeiten, aktuell ist.
InAppReceipt . refresh { ( error ) in
if let err = error
{
print ( err )
} else {
initializeReceipt ( )
}
} TPinAtrepreceipt wird unter einer MIT -Lizenz veröffentlicht. Weitere Informationen finden Sie unter Lizenz.