Various improvements

This commit is contained in:
Ilya Laktyushin
2023-02-06 18:28:18 +04:00
parent a5bd955643
commit 78b02192cf
7 changed files with 180 additions and 63 deletions

View File

@@ -308,11 +308,17 @@ public final class InAppPurchaseManager: NSObject {
return signal
}
public func getValidTransactionIds() -> [String] {
public struct ReceiptPurchase: Equatable {
public let productId: String
public let transactionId: String
public let expirationDate: Date
}
public func getReceiptPurchases() -> [ReceiptPurchase] {
guard let data = getReceiptData(), let receipt = parseReceipt(data) else {
return []
}
return receipt.purchases.map { $0.transactionId }
return receipt.purchases.map { ReceiptPurchase(productId: $0.productId, transactionId: $0.transactionId, expirationDate: $0.expirationDate) }
}
}
@@ -359,7 +365,6 @@ extension InAppPurchaseManager: SKPaymentTransactionObserver {
switch transaction.transactionState {
case .purchased:
Logger.shared.log("InAppPurchaseManager", "Account \(accountPeerId), transaction \(transaction.transactionIdentifier ?? ""), original transaction \(transaction.original?.transactionIdentifier ?? "none") purchased")
transactionState = .purchased(transactionId: transaction.transactionIdentifier)
transactionsToAssign.append(transaction)
case .restored: