

TpinAppreceiptは、Appleをローカルで購入してAppleを読んで検証するための軽量の純粋なスーウィフトライブラリです。
注:Objective-C ProjectのTPINAPPreceipt-Objective-CプロジェクトでTPINAPPRECEIPTを使用する場合は、このガイドに従ってください。
TpinAppreceiptをCocoapodsを使用してプロジェクトに統合するには、 Podfileで指定します。
platform :ios , '12.0'
target 'YOUR_TARGET' do
use_frameworks!
pod 'TPInAppReceipt'
end次に、次のコマンドを実行します。
$ pod install Swiftファイルでは、tpinAppreceiptを使用したい場合は、 import TPInAppReceiptでフレームワークをインポートします。
AppleのSwiftパッケージマネージャーを使用して統合するには、 Package.swiftへの依存関係として以下を追加します。Swift:
. package ( url : " https://github.com/tikhop/TPInAppReceipt.git " , . upToNextMajor ( from : " 3.0.0 " ) )次に、TpinAppreceiptを使用するターゲットの依存関係として"TPInAppReceipt"指定します。
最後に、次のコマンドを実行します。
swift package updateInAppReceiptオブジェクトは、領収書とそれに関連する購入に関する情報をカプセル化します。アプリ内購入領収書を検証するには、 InAppReceiptオブジェクトを作成する必要があります。
InAppReceiptオブジェクトを作成するには、生の領収書データを提供するか、ローカル領収書を初期化できます。
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 、アプリ内購入領収書を検証するためのさまざまな便利な方法を提供します。
/// 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
}注:Appleは、アプリが起動した直後に領収書の検証を実行することをお勧めします。追加のセキュリティのために、アプリケーションの実行中にこのチェックを定期的に繰り返すことができます。注:iOSで検証が失敗した場合は、最初に領収書を更新してみてください。
アプリが自動更新可能なサブスクリプションの紹介価格を提供している場合、イントロまたは通常価格のいずれかを正しい価格を払う必要があります。
InAppReceiptクラスは、導入価格の適格性を決定するためのインターフェイスを提供します。最も単純な場合、同じサブスクリプショングループに属する製品識別子のSetを提供するだけです。
// 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 " ] )注:ユーザーが紹介オファーの資格があるかどうかを判断するには、最初に領収書を初期化および検証し、その後のみを確認する必要があります。
/// 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 ) 必要に応じて、この方法を使用して、使用している領収書が最新であることを確認してください。
InAppReceipt . refresh { ( error ) in
if let err = error
{
print ( err )
} else {
initializeReceipt ( )
}
} TpinAppreceiptはMITライセンスの下でリリースされます。詳細については、ライセンスを参照してください。