

TpinAppreceipt เป็นห้องสมุดที่มีน้ำหนักเบาและมีความบริสุทธิ์สำหรับการอ่านและตรวจสอบความถูกต้องของ Apple ในใบเสร็จรับเงินการซื้อแอพในพื้นที่
หมายเหตุ: tpinappreceipt ในโครงการ Objective-C-หากคุณต้องการใช้ tpinappreceipt ในโครงการ Objective-C โปรดทำตามคำแนะนำนี้
ในการรวม TPInAppReceipt เข้ากับโครงการของคุณโดยใช้ cocoapods ระบุไว้ใน Podfile ของคุณ:
platform :ios , '12.0'
target 'YOUR_TARGET' do
use_frameworks!
pod 'TPInAppReceipt'
endจากนั้นเรียกใช้คำสั่งต่อไปนี้:
$ pod install ในไฟล์ SWIFT ใด ๆ ที่คุณต้องการใช้ TPInAppReceipt นำเข้าเฟรมเวิร์กด้วย import TPInAppReceipt
หากต้องการรวมโดยใช้ Swift Package Manager ของ Apple ให้เพิ่มสิ่งต่อไปนี้เป็นการพึ่งพา Package.swift ของคุณ:
. package ( url : " https://github.com/tikhop/TPInAppReceipt.git " , . upToNextMajor ( from : " 3.0.0 " ) ) จากนั้นระบุ "TPInAppReceipt" เป็นการพึ่งพาเป้าหมายที่คุณต้องการใช้ tpinappreceipt
สุดท้ายรันคำสั่งต่อไปนี้:
swift package update วัตถุ InAppReceipt ห่อหุ้มข้อมูลเกี่ยวกับใบเสร็จรับเงินและการซื้อที่เกี่ยวข้อง ในการตรวจสอบใบเสร็จรับเงินซื้อในแอปคุณต้องสร้างวัตถุ 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 ดูใบอนุญาตสำหรับข้อมูลเพิ่มเติม