Browse Source

Merge pull request #206 from bizz84/feature/purchase-details-skproduct

Nest SKProduct and Purchase fields inside PurchaseDetails type
Andrea Bizzotto 8 years ago
parent
commit
0dbb190df9

+ 1 - 1
SwiftyStoreKit/PaymentQueueController.swift

@@ -36,7 +36,7 @@ protocol TransactionController {
 }
 
 public enum TransactionResult {
-    case purchased(purchase: Purchase)
+    case purchased(purchase: PurchaseDetails)
     case restored(purchase: Purchase)
     case failed(error: SKError)
 }

+ 3 - 3
SwiftyStoreKit/PaymentsController.swift

@@ -72,9 +72,9 @@ class PaymentsController: TransactionController {
         let transactionState = transaction.transactionState
 
         if transactionState == .purchased {
-
-            let purchase = Purchase(productId: transactionProductIdentifier, quantity: transaction.payment.quantity, transaction: transaction, originalTransaction: transaction.original, needsFinishTransaction: !payment.atomically)
-
+            
+            let purchase = PurchaseDetails(productId: transactionProductIdentifier, quantity: transaction.payment.quantity, product: payment.product, transaction: transaction, needsFinishTransaction: !payment.atomically)
+            
             payment.callback(.purchased(purchase: purchase))
 
             if payment.atomically {

+ 9 - 1
SwiftyStoreKit/SwiftyStoreKit+Types.swift

@@ -35,6 +35,14 @@ public struct Purchase {
     public let needsFinishTransaction: Bool
 }
 
+public struct PurchaseDetails {
+    public let productId: String
+    public let quantity: Int
+    public let product: SKProduct
+    public let transaction: PaymentTransaction
+    public let needsFinishTransaction: Bool
+}
+
 //Conform to this protocol to provide custom receipt validator
 public protocol ReceiptValidator {
 	func validate(receipt: String, password autoRenewPassword: String?, completion: @escaping (VerifyReceiptResult) -> Void)
@@ -58,7 +66,7 @@ public struct RetrieveResults {
 
 // Purchase result
 public enum PurchaseResult {
-    case success(purchase: Purchase)
+    case success(purchase: PurchaseDetails)
     case error(error: SKError)
 }