

TpinAppreceipt est une bibliothèque légère et pure-swift pour lire et valider Apple dans le reçu d'achat d'applications localement.
Remarque: TpinAppReceipt dans Objective-C Project - Si vous souhaitez utiliser tpinAppreceipt dans le projet Objective-C, veuillez suivre ce guide.
Pour intégrer TpinAppreceipt dans votre projet à l'aide de cocoapods, spécifiez-le dans votre Podfile :
platform :ios , '12.0'
target 'YOUR_TARGET' do
use_frameworks!
pod 'TPInAppReceipt'
endEnsuite, exécutez la commande suivante:
$ pod install Dans n'importe quel fichier Swift, vous souhaitez utiliser tpinappreceipt, importez le framework avec import TPInAppReceipt .
Pour intégrer à l'aide de Swift Package Manager d'Apple, ajoutez ce qui suit en tant que dépendance à votre Package.swift :
. package ( url : " https://github.com/tikhop/TPInAppReceipt.git " , . upToNextMajor ( from : " 3.0.0 " ) ) Ensuite, spécifiez "TPInAppReceipt" comme dépendance de la cible dans laquelle vous souhaitez utiliser tpinAppreceipt.
Enfin, exécutez la commande suivante:
swift package update L'objet InAppReceipt résume des informations sur un reçu et les achats qui y sont associés. Pour valider le reçu d'achat dans l'application, vous devez créer un objet InAppReceipt .
Pour créer un objet InAppReceipt , vous pouvez soit fournir des données de réception brutes ou initialiser un reçu local.
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 fournit une variété de méthodes de commodité pour valider le reçu d'achat dans l'application:
/// 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
}Remarque: Apple recommande d'effectuer une validation de réception juste après le lancement de votre application. Pour une sécurité supplémentaire, vous pouvez répéter cette vérification périodiquement pendant l'exécution de votre application. Remarque: Si la validation échoue dans iOS, essayez d'abord de rafraîchir le reçu.
Si votre application offre un prix de lancement pour les abonnements à renouvellement automatique, vous devrez dissuader le prix correct, soit l'intro ou le prix régulier.
La classe InAppReceipt fournit une interface pour déterminer l'admissibilité au prix d'introduction. Au plus simple, fournissez simplement un Set d'identifiants de produits qui appartiennent au même groupe d'abonnement:
// 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 " ] )Remarque: Pour déterminer si un utilisateur est admissible à une offre d'introduction, vous devez d'abord initialiser et valider le reçu et seulement vérifier l'admissibilité.
/// 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 ) Si nécessaire, utilisez cette méthode pour vous assurer que le reçu avec lequel vous travaillez est à jour.
InAppReceipt . refresh { ( error ) in
if let err = error
{
print ( err )
} else {
initializeReceipt ( )
}
} TpinAppreceipt est libéré sous une licence MIT. Voir la licence pour plus d'informations.