         
         catch let error as NSError {
             print(error.localizedDescription)
-            handler(false)
-            return
+            return handler(false)
         }
         
         // Prepare payload

            }
            catch let error as NSError {
                print(validationErrorString + urlRequestString + error.localizedDescription)
                handler(false, nil)
                return
            }
            
            /// Parse json
            guard let parseJSON = json else {
                print(validationErrorString + urlRequestString + "JSON parse error")
                handler(false, nil)
                return
            }
            
            /// Check for receipt status in json
            guard let status = parseJSON[JSONResponseKey.status.rawValue] as? Int else {
                print(validationErrorString + urlRequestString + "Receipt status not found in json response")
                handler(false, nil)
                return
            }
            
            /// Check receipt status is valid
            guard status == ReceiptStatusCode.valid.rawValue else {
                print(validationErrorString + urlRequestString + "Invalid receipt status in json response = \(status)")
                handler(false, status)
                return
            }
            
            print("Valid receipt status in json reponse: \(status)")

        SwiftyReceiptObtainer.shared.fetch { [unowned self] receiptURL in
            guard let validReceiptURL = receiptURL else {
                print("Receipt fetch error")
                return handler(false)
            }
            
            self.startReceiptValidation(forURL: validReceiptURL, handler: handler)
