Advertisement
lcolli98

Untitled

Jan 26th, 2020
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.47 KB | None | 0 0
  1. func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
  2.         print("Received Payment Transaction Response from Apple")
  3.  
  4.         for transaction:AnyObject in transactions {
  5.             if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction {
  6.                 switch trans.transactionState {
  7.                 case .purchased:
  8.                     print("Product Purchased")
  9.                     SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
  10.                     // Handle the purchase
  11.                     UserDefaults.standard.set(true , forKey: "purchased")
  12.                     // Get the receipt if it's available
  13.                     if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL,
  14.                         FileManager.default.fileExists(atPath: appStoreReceiptURL.path) {
  15.  
  16.                         do {
  17.                             let receiptData = try Data(contentsOf: appStoreReceiptURL, options: .alwaysMapped)
  18.                             print(receiptData)
  19.  
  20.                             let receiptString = receiptData.base64EncodedString(options: [])
  21.  
  22.                             // Read receiptData
  23.                             // Encode data as JSON
  24.                             let jsonData = try? JSONSerialization.data(withJSONObject: receiptString)
  25.  
  26.                             // Create POST request
  27.                             let url = URL(string: "http://fe01.kilosierracharlie.me/verifypayment")!
  28.                             var request = URLRequest(url: url)
  29.                             request.httpMethod = "POST"
  30.                             request.setValue("application/json", forHTTPHeaderField: "Content-Type")
  31.                             request.httpBody = jsonData
  32.  
  33.                             // Send the data
  34.                             URLSession.shared.dataTask(with: request) { data, response, error in
  35.                                 guard let data = data, error == nil else {
  36.                                     print(error?.localizedDescription ?? "No data")
  37.                                     print("No data could be sent to the server. Please contact us.")
  38.                                     return
  39.                                 }
  40.                                 let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
  41.                                 if let responseJSON = responseJSON as? [String: Any] {
  42.                                     print(responseJSON)
  43.                                 }
  44.                             }
  45.                         }
  46.                         catch {
  47.                             print("Couldn't read receipt data with error: " + error.localizedDescription)
  48.                         }
  49.                     }
  50.                     break;
  51.                    
  52.                 case .failed:
  53.                     print("Purchased Failed")
  54.                     SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
  55.                     break;
  56.  
  57.                 case .restored:
  58.                     print("Already Purchased")
  59.                     SKPaymentQueue.default().restoreCompletedTransactions()
  60.  
  61.                     // Handle the purchase
  62.                     UserDefaults.standard.set(true , forKey: "purchased")
  63.                     //adView.hidden = true
  64.                     break;
  65.                 default:
  66.                     break;
  67.                 }
  68.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement