ios - Non-consumable In app purchase receipt verification crashes -


im working on project in swift 3.0 i'm trying inapp receipt verification using delegates. though works on sandbox environment reason crashes in production environment, i'm unable find cause.my code bellow, appreciate since first time i'm doing it.

    func startvalidatingreceipt() {         if let isexists = try? self.getreceipturl()?.checkresourceisreachable(), isexists == true {             {             let data = try data(contentsof: self.getreceipturl()!)                 self.startvalidatingdata(data: data)             }catch {                 let appreceiptrefreshrequest = skreceiptrefreshrequest(receiptproperties: nil)                 appreceiptrefreshrequest.delegate = self                 appreceiptrefreshrequest.start()             }         }else {         print("no receipt purchase")         }     }     func getreceipturl() -> url? {         return bundle.main.appstorereceipturl     }       enum receiptvalidationurls:string {         case sandbox = "https://sandbox.itunes.apple.com/verifyreceipt"         case production = "https://buy.itunes.apple.com/verifyreceipt"          static var url:url{             if isdebug {             return url.init(string: self.sandbox.rawvalue)!             }else{             return url.init(string: self.production.rawvalue)!             }         }     }     func startvalidatingdata(data:data){           let base64encodedreceipt = data.base64encodedstring()         let requestdictionary = ["receipt-data":base64encodedreceipt]         guard jsonserialization.isvalidjsonobject(requestdictionary) else {  print("requestdictionary not valid json");  return }         {             let requestdata = try jsonserialization.data(withjsonobject: requestdictionary)             nslog("the environment is: %@", receiptvalidationurls.url.absolutestring)//this check url in console when in production             guard let validationurl = url(string: receiptvalidationurls.url.absolutestring) else { print("the validation url not created, unlikely error"); return }             let session = urlsession(configuration: urlsessionconfiguration.default)             var request = urlrequest(url: validationurl)             request.httpmethod = "post"             request.cachepolicy = urlrequest.cachepolicy.reloadignoringcachedata             let task = session.uploadtask(with: request, from: requestdata) { (data, response, error) in                 if let data = data , error == nil {                     {                         let appreceiptjson = try jsonserialization.jsonobject(with: data)                         print((appreceiptjson anyobject).count)                         print("success. here json representation of app receipt: \(appreceiptjson)")                         let environment = (appreceiptjson as? nsdictionary)?["environment"]                          if self.appenvironment != nil {                             self.appenvironment! (environment as! string)                         }                     } catch let error nserror {                         print("json serialization failed error: \(error)")                     }                 } else {                     print("the upload task returned error: \(error)")                 }             }             task.resume()         } catch let error nserror {             print("json serialization failed error: \(error)")         }     }      func requestdidfinish(_ request: skrequest) {          {              self.startvalidatingreceipt()          } catch {          }     }      func request(_ request: skrequest, didfailwitherror error: error) {         print("app receipt refresh request did fail error: \(error)")      } 


Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -