Guest User

Untitled

a guest
Nov 14th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. override func viewDidLoad() {
  2. super.viewDidLoad()
  3.  
  4. if(SKPaymentQueue.canMakePayments()) {
  5. print("IAP is enabled, loading")
  6. let productID: NSSet = NSSet(objects: "Seb.DiPlus.RenewingSubMonthAuto", "Seb.DiPlus.RenewingSubYearAuto")
  7. let request: SKProductsRequest = SKProductsRequest(productIdentifiers: productID as! Set<String>)
  8. request.delegate = self
  9. request.start()
  10. } else {
  11. print("please enable IAPS")
  12. }
  13. }
  14.  
  15. @IBAction func subscribeMonth(_ sender: Any) {
  16. for product in list {
  17. let prodID = product.productIdentifier
  18. if(prodID == "Seb.DiPlus.RenewingSubMonthAuto") {
  19. p = product
  20. buyProduct()
  21. }
  22. }
  23. }
  24.  
  25. @IBAction func subscribeYear(_ sender: Any) {
  26. for product in list {
  27. let prodID = product.productIdentifier
  28. if(prodID == "Seb.DiPlus.RenewingSubYearAuto") {
  29. p = product
  30. buyProduct()
  31. }
  32. }
  33. }
  34.  
  35. @IBAction func restoreComplete(_ sender: UIButton) {
  36. restorePurchases()
  37. }
  38.  
  39. @IBAction func exit(_ sender: Any) {
  40. _exit(0)
  41. }
  42.  
  43. func restorePurchases() {
  44. if SKPaymentQueue.canMakePayments(){
  45. print("restored complete")
  46. SKPaymentQueue.default().add(self)
  47. SKPaymentQueue.default().restoreCompletedTransactions()
  48. }
  49. else{
  50. print("restored faild, IAP not activ?")
  51. }
  52. }
  53.  
  54. func buyProduct() {
  55. print("buy " + p.productIdentifier)
  56. let pay = SKPayment(product: p)
  57. SKPaymentQueue.default().add(self)
  58. SKPaymentQueue.default().add(pay as SKPayment)
  59. }
  60.  
  61. func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
  62. print("product request")
  63. let myProduct = response.products
  64. for product in myProduct {
  65. print("product added")
  66. print(product.productIdentifier)
  67. print(product.localizedTitle)
  68. print(product.localizedDescription)
  69. print(product.price)
  70.  
  71. list.append(product)
  72. }
  73. }
  74.  
  75. func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
  76. print("transactions restored")
  77. for transaction in queue.transactions {
  78. let t: SKPaymentTransaction = transaction
  79. let prodID = t.payment.productIdentifier as String
  80.  
  81. switch prodID {
  82. case "Seb.DiPlus.RenewingSubMonthAuto":
  83. print("Subscribe Month!")
  84. if abo < 1 {
  85. readySubscribe()
  86. }
  87. abo = 1
  88. break
  89. case "Seb.DiPlus.RenewingSubYearAuto":
  90. print("Subscribe Year!")
  91. if abo < 1 {
  92. readySubscribe()
  93. }
  94. abo = 1
  95. break
  96. default:
  97. print("IAP not found")
  98. }
  99. }
  100. }
  101.  
  102. func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
  103. print("add payment")
  104.  
  105. for transaction: AnyObject in transactions {
  106. let trans = transaction as! SKPaymentTransaction
  107. print("ERROR: ", trans.error)
  108.  
  109. switch trans.transactionState {
  110. case .purchased:
  111. print("buy ok, unlock IAP HERE")
  112. print(p.productIdentifier)
  113.  
  114. let prodID = p.productIdentifier
  115. switch prodID {
  116. case "Seb.DiPlus.RenewingSubMonthAuto":
  117. print("Subscribe Month!!")
  118. if abo < 1 {
  119. readySubscribe()
  120. }
  121. abo = 1
  122. break
  123. case "Seb.DiPlus.RenewingSubYearAuto":
  124. print("Subscribe Year!!")
  125. if abo < 1 {
  126. readySubscribe()
  127. }
  128. abo = 1
  129. break
  130. default:
  131. print("IAP not found")
  132. }
  133. queue.finishTransaction(trans)
  134. case .failed:
  135. print("buy error")
  136. alert(title: "Fehlgeschlagen", message: trans.error?.localizedDescription)
  137. queue.finishTransaction(trans)
  138. break
  139. default:
  140. print("Default")
  141. break
  142. }
  143. }
  144. }
  145.  
  146. func readySubscribe() {
  147. UserDefaults.standard.setValue(checkSubscribe, forKeyPath: "subscribe")
  148. UserDefaults.standard.synchronize()
  149. self.performSegue(withIdentifier: "readySubscribe", sender: self)
  150.  
  151. }
  152.  
  153. func alert (title:String, message:String?){
  154.  
  155. let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert)
  156.  
  157. alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { (action) in
  158. alert.dismiss(animated: true, completion: nil)
  159. }))
  160.  
  161. self.present(alert, animated: true, completion: nil)
  162. }
Add Comment
Please, Sign In to add comment