From 853d7aba1fa82eafba3f83a945013e07ddd31e3c Mon Sep 17 00:00:00 2001 From: Andrea Bizzotto Date: Thu, 11 May 2017 16:17:15 +0100 Subject: [PATCH] Add optional product value to Purchase type, to be non-nil when making a purchase --- SwiftyStoreKit/CompleteTransactionsController.swift | 7 ++++++- SwiftyStoreKit/PaymentsController.swift | 7 ++++++- SwiftyStoreKit/RestorePurchasesController.swift | 7 ++++++- SwiftyStoreKit/SwiftyStoreKit+Types.swift | 1 + 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/SwiftyStoreKit/CompleteTransactionsController.swift b/SwiftyStoreKit/CompleteTransactionsController.swift index 72023983..e4e831a3 100644 --- a/SwiftyStoreKit/CompleteTransactionsController.swift +++ b/SwiftyStoreKit/CompleteTransactionsController.swift @@ -55,7 +55,12 @@ class CompleteTransactionsController: TransactionController { if transactionState != .purchasing { - let purchase = Purchase(productId: transaction.payment.productIdentifier, quantity: transaction.payment.quantity, transaction: transaction, originalTransaction: transaction.original, needsFinishTransaction: !completeTransactions.atomically) + let purchase = Purchase(productId: transaction.payment.productIdentifier, + quantity: transaction.payment.quantity, + product: nil, + transaction: transaction, + originalTransaction: transaction.original, + needsFinishTransaction: !completeTransactions.atomically) purchases.append(purchase) diff --git a/SwiftyStoreKit/PaymentsController.swift b/SwiftyStoreKit/PaymentsController.swift index 4391e195..4de37075 100644 --- a/SwiftyStoreKit/PaymentsController.swift +++ b/SwiftyStoreKit/PaymentsController.swift @@ -73,7 +73,12 @@ class PaymentsController: TransactionController { if transactionState == .purchased { - let purchase = Purchase(productId: transactionProductIdentifier, quantity: transaction.payment.quantity, transaction: transaction, originalTransaction: transaction.original, needsFinishTransaction: !payment.atomically) + let purchase = Purchase(productId: transactionProductIdentifier, + quantity: transaction.payment.quantity, + product: payment.product, + transaction: transaction, + originalTransaction: transaction.original, + needsFinishTransaction: !payment.atomically) payment.callback(.purchased(purchase: purchase)) diff --git a/SwiftyStoreKit/RestorePurchasesController.swift b/SwiftyStoreKit/RestorePurchasesController.swift index 4e37414d..47f19b4c 100644 --- a/SwiftyStoreKit/RestorePurchasesController.swift +++ b/SwiftyStoreKit/RestorePurchasesController.swift @@ -51,7 +51,12 @@ class RestorePurchasesController: TransactionController { let transactionProductIdentifier = transaction.payment.productIdentifier - let purchase = Purchase(productId: transactionProductIdentifier, quantity: transaction.payment.quantity, transaction: transaction, originalTransaction: transaction.original, needsFinishTransaction: !atomically) + let purchase = Purchase(productId: transactionProductIdentifier, + quantity: transaction.payment.quantity, + product: nil, + transaction: transaction, + originalTransaction: transaction.original, + needsFinishTransaction: !atomically) if atomically { paymentQueue.finishTransaction(transaction) } diff --git a/SwiftyStoreKit/SwiftyStoreKit+Types.swift b/SwiftyStoreKit/SwiftyStoreKit+Types.swift index 22254a2c..b2d15945 100644 --- a/SwiftyStoreKit/SwiftyStoreKit+Types.swift +++ b/SwiftyStoreKit/SwiftyStoreKit+Types.swift @@ -30,6 +30,7 @@ import StoreKit public struct Purchase { public let productId: String public let quantity: Int + public let product: SKProduct? // only available when making a purchase public let transaction: PaymentTransaction public let originalTransaction: PaymentTransaction? public let needsFinishTransaction: Bool