Σε αγορές εφαρμογών σε εφαρμογές iOS με Swift

Εφαρμογή στην αγορά εφαρμογής (IAP) σε εφαρμογές iOS [swift]

Τώρα μερικές ημέρες, το μεγαλύτερο μέρος της εφαρμογής παρέχει την επιλογή για να πάρετε την πρόσθετη δυνατότητα ή το περιεχόμενο κάνοντας την αγορά . Αυτή η διαδικασία είναι γνωστή ως In App Purchase (IAP), είναι ένας πολύ καλός τρόπος για να κερδίσετε τα χρήματα από τις εφαρμογές iOS ή MacOS.
Ναι, είναι ένα αναμφισβήτητο γεγονός ότι τα έσοδα του κυρίως προγραμματιστή (φυσικά της Apple) βασίζονται στις αγορές In App . Όπως ή όχι, η Apple χρεώνει 30% για κάθε επιτυχημένη συναλλαγή που θα κάνει η αίτησή σας .

Έτσι, σήμερα πρόκειται να συζητήσουμε για τις αγορές In App και να δούμε τη διαδικασία ενσωμάτωσης της εφαρμογής Buy In App στην εφαρμογή iOS με τη γλώσσα Swift 4.0.

Τύποι αγορών εφαρμογών:

Όταν ο χρήστης κάνει οποιοδήποτε IAP για να αγοράσει επιπλέον περιεχόμενο συνδρομής, κάντε ένα από αυτά στην αγορά εφαρμογής:

  1. Αναλώσιμο: Ο χρήστης θα πρέπει να αγοράζει αυτά τα στοιχεία κάθε φορά, καθώς θέλει να τα χρησιμοποιήσει, δεν μπορεί να χρησιμοποιηθεί στο μέλλον δωρεάν. Κατά την επανεγκατάσταση, η αλλαγή του χρήστη της συσκευής μπορεί να χάσει τα αναλώσιμα προϊόντα. Για παράδειγμα, αγοράζοντας νόμισμα παιχνιδιού, υγεία και υπαινιγμούς κ.λπ.
  2. Μη αναλώσιμο: Ο χρήστης αγοράζει αυτά τα στοιχεία μία φορά, μπορεί να χρησιμοποιηθεί στο μέλλον δωρεάν. Κατά την επανεγκατάσταση, αλλάζοντας τη συσκευή, αυτά τα προϊόντα δεν θα χαθούν. Εάν ο χρήστης χάσει, ίσως να είναι σε θέση να το κατεβάσει ξανά δωρεάν, αποκαθιστώντας τις αγορές εντός εφαρμογής. Για παράδειγμα: αναβάθμιση της εφαρμογής σε έκδοση pro, κατάργηση διαφημίσεων κ.λπ.
  3. Μη ανανεωμένες συνδρομές: Ο χρήστης θα μπορεί να χρησιμοποιεί αυτά τα στοιχεία για μια καθορισμένη χρονική περίοδο, τα στοιχεία αυτά μπορούν να αγοραστούν και πάλι μετά το τέλος της συνδρομής. Για παράδειγμα: μια αθλητική περίοδος περνάει για ένα, τρία ή έξι μήνες.
  4. Συνδρομές αυτόματης ανανέωσης: Ο χρήστης μπορεί να αγοράσει αυτά τα στοιχεία για μια συγκεκριμένη χρονική περίοδο. Θα ανανεωθεί αυτόματα όταν περάσει η περίοδος. Για παράδειγμα: Συνεχιζόμενες υπηρεσίες (Netflix, Hulu Plus κ.λπ.), Συνδρομές περιοδικών κλπ.

Θα προσπαθήσουμε να καλύψουμε όλα τα πράγματα που είναι απαραίτητα για την υλοποίηση του IAP στην εφαρμογή iOS, θα συζητηθούν στα παρακάτω θέματα:

  1. iTunes Connect Setup
  2. Ο Κώδικας στο Swift
  3. Χρησιμοποιώντας τον κώδικα
  4. Δοκιμή του IAP

1. Εγκατάσταση σύνδεσης iTunes:

Θα συζητήσουμε αυτό το μέρος σε τέσσερις ενότητες: Εγκατάσταση τραπεζικού λογαριασμού, δημιουργία χρήστη Sandbox, δημιουργία εφαρμογών iTunes και δημιουργία προϊόντων IAP.

Εγκατάσταση τραπεζικού λογαριασμού:

Αν δεν έχετε τη ρύθμιση του τραπεζικού λογαριασμού στο λογαριασμό σύνδεσης iTunes, δεν θα μπορείτε να χρησιμοποιήσετε τις υπηρεσίες IAP . Έτσι, είναι πολύ σημαντικό να λειτουργούν οι υπηρεσίες IAP. Μπορούμε να το κάνουμε με τη μετάβαση στο τμήμα Συμφωνιών, Φορολογίας και Τραπεζών του iTunes connect account. Θα πρέπει να μοιάζει με αυτό:

Δημιουργία χρήστη Sandbox:

Τώρα, πρέπει να δημιουργήσουμε έναν χρήστη sandbox, για να δημιουργήσετε πλοήγηση στους Χρήστες και Ρόλους στο iTunes connect account και να επιλέξετε την ενότητα Δοκιμαστές Sandbox. Είναι πολύ σημαντικό να προσθέσετε χρήστη του sandbox για να δοκιμάσετε τις υπηρεσίες IAP, από τον χρήστη του sandbox μπορείτε να κάνετε συναλλαγές δωρεάν.

Να θυμάστε πάντα ότι πρέπει να χρησιμοποιείτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου που δεν συνοδεύεται από αναγνωριστικό της Apple.

Δημιουργία εφαρμογής iTunes:

Για να δημιουργήσετε μια εφαρμογή στο iTunes στην ενότητα Οι εφαρμογές μου στο iTunes connect account ή χρησιμοποιήστε μια υπάρχουσα εφαρμογή που έχετε ήδη. Για να δημιουργήσετε μια εφαρμογή στο iTunes θα πρέπει να δημιουργήσετε ένα λογαριασμό App Id από εσάς το λογαριασμό προγραμματιστή.

Δημιουργία προϊόντων IAP:

Για να δημιουργήσετε προϊόντα IAP, ανοίξτε την εφαρμογή iTunes και μεταβείτε στην ενότητα Χαρακτηριστικά. Κάντε κλικ στο κουμπί "+" και επιλέξτε έναν από τους 4 τύπους που έχουμε ήδη συζητήσει. Στη συνέχεια, παρέχετε όλα τα απαιτούμενα μεταδεδομένα που σχετίζονται με αυτό το Προϊόν IAP. Δώστε προσοχή στο αναγνωριστικό προϊόντος.

Το αναγνωριστικό προϊόντος πρέπει να είναι μοναδικό και κατανοητό, θα χρειαζόμαστε αυτά τα αναγνωριστικά προϊόντων για να αποκτήσουμε τα επιθυμητά προϊόντα IAP.
Ακολουθούν ορισμένα παραδείγματα προϊόντων IAP που έχω δημιουργήσει.

Έτσι λοιπόν, ολοκληρώσαμε το πρώτο βήμα προς την ενσωμάτωση του IAP. Ας προχωρήσουμε στο επόμενο βήμα που είναι κώδικας.

Ω! ναι!! Τα κατάφερα.

2. Ο Κώδικας Swift:

Κρατήστε τον κώδικα σε μια ξεχωριστή κλάση που έχω δημιουργήσει το PKIAPHandler, μη διστάσετε να αλλάξετε το όνομα αν δεν σας αρέσει. Θα αποθηκεύσουμε όλα τα πράγματα που σχετίζονται με την Αγορά Εφαρμογών στην κατηγορία αυτή.
Ας συζητήσουμε λοιπόν τον κώδικα. Τι περιλαμβάνει αυτή η τάξη.

Ιδιότητες:

Πρώτον, πρέπει να αποθηκεύσετε όλα τα Ids των IAP προϊόντων σε ένα πίνακα, όπου θα εμφανίσετε όλα τα προϊόντα IAP που δημιουργείτε (στο στάδιο IAP Products Creation) σε εσάς την εφαρμογή για να δείξετε στον χρήστη.
Υπάρχει μια ιδιότητα `isLogEnabled` που θα σας βοηθήσει να ενεργοποιήσετε το αρχείο καταγραφής κονσόλας του PKIAPHandler.
η ιδιότητα "κοινόχρηστων" θα σας επιτρέψει να αλληλεπιδράσετε με όλες τις λειτουργίες μελών που χρειάζεστε για να χρησιμοποιήσετε τις υπηρεσίες IAP.
Για καλύτερη κατανόηση έχω επισυνάψει το αρχείο GIST του κώδικα. Μετακινηθείτε προς τα κάτω για να το δείτε.

Λειτουργίες κλάσης:

  1. canMakePurchases (): επιστρέφει μια τιμή bool (true / false) είτε η συσκευή είναι σε θέση να κάνει αγορά είτε όχι.
  2. setProductIds (IDs: [String]): Χρησιμοποιήστε αυτές τις μεθόδους για να ρυθμίσετε τα Ids των προϊόντων IAP για να εργαστείτε με. Καλέστε αυτές τις μεθόδους κατά τη μέθοδο DidLoad του UIViewController στο οποίο θα δείτε τα διαθέσιμα προϊόντα IAP.
  3. fetchAvailableProducts (συμμόρφωση: @escaping (([SKProduct]) -> Void)): Χρησιμοποιήστε αυτή τη μέθοδο για να συγκεντρώσετε όλα τα στοιχεία του προϊόντος IAP για τα αναγνωριστικά που έχετε ορίσει από τη μέθοδο setProductIds. Θα επιστρέψει μια σειρά SKProduct, αυτό το αντικείμενο SKProduct θα έχει όλες τις λεπτομέρειες που εισαγάγατε κατά τη δημιουργία των προϊόντων IAP στο iTunes. Αποκτήστε αυτόν τον πίνακα και διατηρήστε τον σε πίνακα για να εμφανιστεί στην καταχώριση και να χρησιμοποιηθεί στο μέλλον για την αγορά.
  4. αγοράστε (προϊόν: SKProduct, complition: @escaping (PKIAPHandlerAlertType, SKProduct ;, SKPaymentTransaction?) -> Void)): Χρησιμοποιήστε αυτή τη μέθοδο για να ξεκινήσετε την αγορά για το προϊόν (χρησιμοποιήστε το SKProduct που έχετε όλα έτοιμα με τη μέθοδο fetchAvailableProducts) . Θα αυξήσει το παράθυρο διαλόγου πληρωμής για την επιβεβαίωση του χρήστη. Στο τετραγωνίδιο ολοκλήρωσης, θα λάβετε μήνυμα από το χειριστή, το προϊόν που αγόρασε και τα στοιχεία της συναλλαγής πληρωμής, εάν αγοράσει με επιτυχία, διαφορετικά το προϊόν και η συναλλαγή πληρωμής θα είναι μηδέν.
  5. restorePurchase (): Χρησιμοποιήστε αυτή τη μέθοδο για να επαναφέρετε την αγορά για το στοιχείο που αγοράσατε / μη αναλώσιμο.

Μέθοδοι εκπροσώπων:

  1. productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse): επιστρέφει όλα τα προϊόντα IAP που είναι διαθέσιμα στο iTunes σε σχέση με τα αναγνωριστικά που έχετε ορίσει με τη μέθοδο setProductIds. Θα ενεργοποιηθεί αμέσως μετά την κλήση της μεθόδου fetchAvailableProducts.
  2. payQueueRestoreCompletedTransactionsFinished (_ ουρά: SKPaymentQueue): Αντιμετωπίζει μια κατάσταση όπου ένας χρήστης αποκαθιστά με επιτυχία ένα προϊόν IAP.
  3. payQueue (_ ουρά: SKPaymentQueue, ενημερωμένες συναλλαγές συναλλαγών: [SKPaymentTransaction]): Αυτές οι μέθοδοι αντιπροσώπων ενεργοποιήθηκαν αμέσως μετά την κλήση της μεθόδου αγοράς (προϊόν: SKProduct). Σε αυτήν τη μέθοδο, θα λάβετε όλες τις λεπτομέρειες που σχετίζονται με τη συναλλαγή IAP είτε με στοιχείο που αγοράσατε είτε απέτυχε.

3. Χρήση του κώδικα:

Ανοίξτε το UIViewController, δημιουργήστε έναν άδειο πίνακα τύπου SKProduct και, στη συνέχεια, τη λειτουργία DidLoad ορίστε τα αναγνωριστικά προϊόντων IAP και παραλάβετε όλα τα προϊόντα IAP λεπτομερώς και τα δείτε είτε σε UITableView, UICollectionView είτε όπως θέλετε.

PKIAPHandler.shared.setProductIds (IDs: self.productIDs)
PKIAPHandler.shared.fetchAvailableProducts {[αδύναμος εαυτός] (προϊόντα) στο
   φύλακας αφήστε sSelf = μόνο άλλος {επιστροφή}
   sSelf.productsArray = προϊόντα
   sSelf.tableView.reloadData () // επαναλάβετε την προβολή πίνακα ή συλλογής
}}

Δημιουργήστε μια ενέργεια ή χρησιμοποιήστε τη μέθοδο didSelect delegate της tableView / collectionView για να ξεκινήσετε τη μέθοδο Buy Purchase by calling calling ().

func tableView (_tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (προϊόν: self.productsArray [indexPath.row]) {(ειδοποίηση, προϊόν, συναλλαγή) στο
   αν αφήσουμε tran = transaction, let prod = προϊόν {
     // χρησιμοποιήστε τις λεπτομέρειες της συναλλαγής και αγοράστε το προϊόν όπως θέλετε
   }}
   Globals.shared.showWarnigMessage (alert.message)
   }}
}}

Εδώ είναι το αρχείο κώδικα, μετακινηθείτε προς τα κάτω για να το δείτε.

Έχουμε κάνει εδώ για την εφαρμογή του IAP σε iOS εφαρμογή με γρήγορη.
Τώρα, Ας πάμε για δοκιμές.

Πάμε για δοκιμή

4. Δοκιμές:

Καταρχάς, συνδεθείτε στη συσκευή iOS χρησιμοποιώντας τον δημιουργημένο λογαριασμό χρήστη Sandbox και, στη συνέχεια, εκτελέστε την εφαρμογή σας στην πραγματική συσκευή και ξεκινήστε τη συναλλαγή. Μην ανησυχείτε για την τιμή που εμφανίζεται στο παράθυρο Ειδοποίηση απλά προχωρήστε. Τίποτα δεν θα χρεωθεί δεδομένου ότι είστε χρήστης sandbox για την εφαρμογή.

Σημείωση: Στην εφαρμογή Οι αγορές δεν μπορούν να δοκιμαστούν σε προσομοιωτή iOS. Έτσι, χρησιμοποιήστε πραγματική συσκευή.

!!! ΚΩΔΙΚΟΣ ΕΥΚΑΙΡΙΑΣ !!!

Σας ευχαριστούμε για την ανάγνωση, παρακαλώ πατήστε το εικονίδιο σύστασης εάν αυτή είναι αυτή η συλλογή. Ερωτήσεις; Αφήστε τα στο σχόλιο.