         case .autoRenewable:
             return (receipt["latest_receipt_info"] as? [ReceiptInfo], nil)
         case .nonRenewing(let duration):
-            let appReceipt = receipt["receipt"] as? [String: AnyObject]
-            return (appReceipt?["in_app"] as? [ReceiptInfo], duration)
+            return (getInAppReceipt(receipt: receipt), duration)
         }
     }
 

    ) -> VerifyPurchaseResult {

        // Get receipts info for the product
        let appReceipt = receipt["receipt"] as? [String: AnyObject]
        let receiptsInfo = appReceipt?["in_app"] as? [ReceiptInfo]
        let filteredReceiptsInfo = filterReceiptsInfo(receipts: receiptsInfo, withProductId: productId)
        let nonCancelledReceiptsInfo = filteredReceiptsInfo.filter { receipt in receipt["cancellation_date"] == nil }

        let receiptItems = nonCancelledReceiptsInfo.flatMap { ReceiptItem(receiptInfo: $0) }

            return nil
        }
        return Date(millisecondsSince1970: requestDateString)
    }
    
    private class func getInAppReceipt(receipt: ReceiptInfo) -> [ReceiptInfo]? {
        
        let appReceipt = receipt["receipt"] as? ReceiptInfo
        return appReceipt?["in_app"] as? [ReceiptInfo]
    }

    /**
