Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
- print("Received Payment Transaction Response from Apple")
- for transaction:AnyObject in transactions {
- if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction {
- switch trans.transactionState {
- case .purchased:
- print("Product Purchased")
- SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
- // Handle the purchase
- UserDefaults.standard.set(true , forKey: "purchased")
- // Get the receipt if it's available
- if let appStoreReceiptURL = Bundle.main.appStoreReceiptURL,
- FileManager.default.fileExists(atPath: appStoreReceiptURL.path) {
- do {
- let receiptData = try Data(contentsOf: appStoreReceiptURL, options: .alwaysMapped)
- print(receiptData)
- let receiptString = receiptData.base64EncodedString(options: [])
- // Read receiptData
- // Encode data as JSON
- let jsonData = try? JSONSerialization.data(withJSONObject: receiptString)
- // Create POST request
- let url = URL(string: "http://fe01.kilosierracharlie.me/verifypayment")!
- var request = URLRequest(url: url)
- request.httpMethod = "POST"
- request.setValue("application/json", forHTTPHeaderField: "Content-Type")
- request.httpBody = jsonData
- // Send the data
- URLSession.shared.dataTask(with: request) { data, response, error in
- guard let data = data, error == nil else {
- print(error?.localizedDescription ?? "No data")
- print("No data could be sent to the server. Please contact us.")
- return
- }
- let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
- if let responseJSON = responseJSON as? [String: Any] {
- print(responseJSON)
- }
- }
- }
- catch {
- print("Couldn't read receipt data with error: " + error.localizedDescription)
- }
- }
- break;
- case .failed:
- print("Purchased Failed")
- SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
- break;
- case .restored:
- print("Already Purchased")
- SKPaymentQueue.default().restoreCompletedTransactions()
- // Handle the purchase
- UserDefaults.standard.set(true , forKey: "purchased")
- //adView.hidden = true
- break;
- default:
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement