I appkøb i iOS-applikationer med Swift

Implement In App Buy (IAP) i iOS-applikationer [hurtig]

Nu om dagen giver det meste af applikationen mulighed for at få den ekstra funktion eller indhold ved at købe . Denne proces er velkendt som IAP-køb (IAP), er en fantastisk måde at tjene penge på dine iOS- eller MacOS-applikationer.
Ja, det er uden tvivl, at hovedsageligt udviklerens (Apples selvfølgelig) indtægter er baseret på køb i appen . Synes godt om det eller ej , opkræver Apple 30% for hver vellykket transaktion, som din ansøgning foretager .

Så i dag skal vi diskutere om app-køb og se processen med at integrere app-køb i iOS-applikation med Swift 4.0-sprog.

Typer af app-køb:

Når brugeren foretager en IAP for at købe ekstra indhold af abonnement, foretages et af disse i appkøb:

  1. Forbrugsmæssigt: Brugeren bliver nødt til at købe disse varer hver gang, som han vil bruge dem, ikke kan bruges i fremtiden gratis. Når du geninstallerer, kan ændring af enhedsbruger muligvis miste deres forbrugsstoffer. For eksempel at købe spilvaluta, sundhed og tip osv.
  2. Ikke forbrugsstoffer: Bruger køber denne vare en gang, kan bruges i fremtiden gratis. Ved geninstallation og ændring af enhed vil disse produkter ikke gå tabt. Hvis brugeren mister, kan den muligvis downloade den igen gratis ved at gendanne køb i appen. For eksempel: opgradering af app til pro-version, fjernelse af annoncer osv.
  3. Ikke-fornyende abonnement: Bruger vil være i stand til at bruge disse varer i en fast periode, disse varer kan købes igen efter abonnementets afslutning. For eksempel: et sportssessionskort til en, tre eller seks møll.
  4. Abonnement, der kan fornyes automatisk: Bruger kan købe denne vare i en bestemt periode, den vil automatisk fornyes, når perioden er gået. For eksempel: Løbende tjenester (Netflix, Hulu Plus osv.), Magazine-abonnementer osv.

Vi vil forsøge at dække alt det, der er nødvendigt for at implementere IAP i iOS-applikation, vil blive diskuteret om følgende emner i dette:

  1. iTunes Connect-opsætning
  2. Koden i Swift
  3. Brug af koden
  4. Test af IAP

1. iTunes Connect-opsætning:

Vi diskuterer denne del i fire sektioner: Opsætning af bankkonto, Sandbox-brugeroprettelse, oprettelse af iTunes-app og oprettelse af IAP-produkter.

Opsæt bankkonto:

Hvis du ikke har opsætning af bankkonto i din iTunes-forbindelse, kan du ikke bruge IAP-tjenester . Så det er en meget vigtig del at få IAP-tjenester til at fungere. Vi kan gøre det ved at gå til afsnittet Aftaler, skat og bank på iTunes connect-kontoen. Det skal se sådan ud:

Sandbox-brugeroprettelse:

Nu er vi nødt til at oprette en sandkassebruger, for at oprette navigere til Brugere og roller i iTunes connect-konto og vælge sandkassetestere. Det er meget vigtigt at tilføje sandkassebruger til at teste IAP-tjenester, af sandkassebruger kan du foretage transaktioner gratis.

Husk altid at bruge en e-mail, der ikke er angivet med nogen Apple ID.

Oprettelse af iTunes-app:

Sådan opretter du et program på iTunes til til My Apps-sektionen på iTunes-forbindelseskonto eller bruger en eksisterende app, som du allerede har. For at oprette en applikation på iTunes skal du oprette en app-id fra din udviklerkonto.

Oprettelse af IAP-produkter:

For at oprette IAP-produkter skal du åbne din iTunes-applikation og navigere til afsnittet Funktioner. Klik på “+” -knappen, og vælg en af ​​de 4 typer, vi allerede har diskuteret. Angiv derefter alle de krævede metadata relateret til det IAP-produkt. Vær opmærksom på produkt-id.

Produkt-id skal være unikt og forståeligt, vi har brug for disse produkt-id'er for at få de ønskede IAP-produkter.
Her er nogle eksempler på IAP-produkter, som jeg har oprettet.

Så her er vi færdige med det første skridt hen imod integration af IAP. Lad os fortsætte til det næste trin, der er kode.

Oh yeah!! Jeg gjorde det.

2. Koden i Swift:

Opbevar koden i en separat klasse, som jeg har oprettet PKIAPHandler. Du er velkommen til at ændre navnet, hvis du ikke kan lide det . Vi vil gemme alle de ting, der er relateret til køb af apper i denne klasse.
Så lad os diskutere koden. Hvad denne klasse indeholder.

Ejendomme:

For det første skal du gemme alle brugbare IAP-produkter Ids i en matrix, hvor du vil vise alle oprette IAP-produkter (i trin IAP Products Oprettelse) i din applikation for at vise brugeren.
Der er en egenskab 'isLogEnabled', det hjælper dig med at aktivere konsolloggen til PKIAPHandler.
'delt' egenskab giver dig mulighed for at interagere med alle de medlemsfunktioner, du har brug for, mens IAP-tjenester.
For bedre at forstå har jeg knyttet GIST-filen til koden. Rul ned for at se på det.

Klassefunktioner:

  1. canMakePurchases (): returner en boolværdi (sand / falsk), enten kan enheden foretage køb eller ej.
  2. setProductIds (ids: [String]): Brug disse metoder til at indstille IAP-produkt-Ids til at arbejde med. Ring til disse metoder i viewDidLoad-metoden for din UIViewController, hvor du vil vise de tilgængelige IAP-produkter.
  3. fetchAvailableProducts (komplement: @escaping (([SKProduct]) -> Void)): Brug denne metode til at hente alle IAP-produktdetaljer til de ID'er, du har angivet ved hjælp af setProductIds-metoden. Det returnerer en række SKProduct, dette SKProduct-objekt har alle de detaljer, du har indtastet, mens du opretter IAP-produkter på iTunes. Hent denne matrix og opbevar den i en matrix til visning i fortegnelse og til fremover at blive brugt til køb.
  4. køb (produkt: SKProduct, komplement: @escaping ((PKIAPHandlerAlertType, SKProduct?, SKPaymentTransaction?) -> Void)): Brug denne metode til at starte køb for produktet (bruger SKProduct, som du har alt klar hentet af fetchAvailableProducts-metoden) . Det hæver betalingsdialogboksen til brugerbekræftelsen. I færdiggørelsesblok får du besked fra handler, produkt, der er købt og betalingstransaktion detaljer hvis det er købt med succes ellers vil produkt- og betalingstransaktion være nul.
  5. RestorePurchase (): Brug denne metode til at gendanne køb for det købte / ikke forbrugsstoffer.

Delegerede metoder:

  1. productsRequest (_ anmodning: SKProductsRequest, didReceive svar: SKProductsResponse): returnerer alle IAP-produkter, der er tilgængelige på iTunes med hensyn til de ID'er, du har angivet ved hjælp af setProductIds-metoden. Det bliver trigget lige efter opkald til metoden fetchAvailableProducts.
  2. betalingQueueRestoreCompleatedTransactionsFinished (_ kø: SKPaymentQueue): Håndterer en situation, hvor en bruger med succes gendanner et IAP-produkt.
  3. paymentQueue (_ kø: SKPaymentQueue, updatedTransactions transitions: [SKPaymentTransaction]): Denne delegerede metoder udløses lige efter opkald til køb (produkt: SKProduct) metoden. I denne metode får du alle detaljer, der er relateret til IAP-transaktion, enten købt eller mislykket vare.

3. Brug af koden:

Åbn din UIViewController, opret en tom matrix af typen SKProduct, indstil derefter IAP-produkt-ID'erne i viewDidLoad-funktionen og hent alle IAP-produktdetaljer og vis dem enten i UITableView, UICollectionView eller som du vil.

PKIAPHandler.shared.setProductIds (ids: self.productIDs)
PKIAPHandler.shared.fetchAvailableProdukter {[svag selv] (produkter) i
   vagt lad sSelf = self else {return}
   sSelf.productsArray = produkter
   sSelf.tableView.reloadData () // genindlæs din tabel- eller samlingsvisning
}

Den opretter enten en handling eller brug didSelect delegeret metode til tabelView / collectionView til at starte IAP-køb ved at kalde køb () -metoden.

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (produkt: self.productsArray [indexPath.row]) {(alarm, produkt, transaktion) i
   hvis lad tran = transaktion, så lad prod = produkt {
     // Brug transaktionsdetaljer og købte produkter, som du ønsker
   }
   Globals.shared.showWarnigMessage (alert.message)
   }
}

Her er kodefilen, rul ned for at se over den.

Vi er færdige med at implementere IAP i iOS-applikationen med hurtig.
Lad os nu teste.

Lad os gå til test

4. Test:

Først skal du logge ind på din iOS-enhed ved hjælp af den oprettede Sandbox-brugerkonto, derefter køre din applikation på den rigtige enhed og starte transaktionen. Du skal ikke bekymre dig om den pris, der vises i vinduet Alert, bare gå videre. Intet bliver opkrævet da du er sandkassebruger til applikationen.

Bemærk: I appkøb kan ikke testes på iOS-simulator. Så brug venligst ægte enhed.

!!! LYKKELIG KODNING !!!

Tak, fordi du læser, tryk venligst på anbefalingsikonet, hvis du kan lide denne samling . Spørgsmål? Efterlad dem i kommentaren.