I appkjøp i iOS-applikasjoner med Swift

Implement In App Buy (IAP) i iOS-applikasjoner [raskt]

Nå om dagen gir det meste av applikasjonen muligheten til å få den ekstra funksjonen eller innholdet ved å kjøpe . Denne prosessen er kjent som IAP Purchase (IAP), er en flott måte å tjene penger på fra iOS- eller MacOS-applikasjonene.
Ja, det er uten tvil at hovedsakelig utviklerens (Apples selvfølgelig) inntekter er basert på kjøp av apper . Liker det eller ikke , belaster Apple 30% for hver vellykkede transaksjon som applikasjonen din vil gjøre.

Så i dag skal vi diskutere innkjøp av apper og se prosessen med å integrere kjøp av apper i iOS-applikasjon med Swift 4.0-språk.

Typer av appkjøp:

Når brukeren lager et hvilket som helst IAP for å kjøpe ekstra innhold av abonnement, foretar du ett av disse i appkjøpet:

  1. Forbrukbar: Bruker vil måtte kjøpe disse varene hver gang, som de vil bruke dem, ikke kan brukes i fremtiden gratis. Når du installerer på nytt, kan endring av enhetsbruker miste forbruksproduktene sine. For eksempel å kjøpe spillvaluta, helse og hint osv.
  2. Ikke forbruksvare: Bruker kjøper denne varen en gang, kan brukes i fremtiden gratis. Når du installerer på nytt, bytter enhet av disse produktene ikke. Hvis brukeren taper, kan det hende at du kan laste den ned gratis ved å gjenopprette kjøp i appen. For eksempel: oppgradere app til proversjon, fjerne annonser etc.
  3. Ikke-fornyende abonnement: Bruker vil kunne bruke disse varene i en fast periode, disse varene kan kjøpes igjen etter abonnementsslutt. For eksempel: et sportsøktkort for en, tre eller seks møll.
  4. Autofornybare abonnementer: Bruker kan kjøpe denne varen i en spesifikk tidsperiode. Den blir automatisk fornyet når perioden har gått. For eksempel: Pågående tjenester (Netflix, Hulu Plus, etc.), Magazine-abonnementer etc.

Vi vil prøve å dekke alt det som trengs for å implementere IAP i iOS-applikasjonen, vil diskutere følgende temaer i dette:

  1. iTunes Connect Setup
  2. Koden i Swift
  3. Bruker koden
  4. Testing av IAP

1. iTunes Connect Setup:

Vi vil diskutere denne delen i fire seksjoner: Konfigurer bankkonto, oppretting av Sandbox-bruker, oppretting av iTunes-apper og oppretting av IAP-produkter.

Sett opp bankkonto:

Hvis du ikke har bankkontooppsettet i iTunes-tilkoblingskontoen din, vil du ikke kunne bruke IAP-tjenester . Så det er en viktig del å få IAP-tjenestene til å fungere. Vi kan gjøre det ved å gå til Avtaler, skatter og banktjenester på iTunes connect-kontoen. Det skal se slik ut:

Sandbox User Creation:

Nå må vi opprette en sandkassebruker, lage naviger til brukere og roller i iTunes-tilkoblingskontoen og velge Sandkassetestere-delen. Det er veldig viktig å legge til sandkassebruker for å teste IAP-tjenestene, av sandkassebruker kan du gjøre transaksjoner gratis.

Remember Husk alltid å bruke en e-post som ikke har noen Apple-ID.

Opprettelse av iTunes-app:

Slik oppretter du en applikasjon på iTunes til My Apps-delen av iTunes-tilkoblingskontoen, eller bruker en eksisterende app som du allerede har. For å opprette en applikasjon på iTunes må du opprette en app-ID fra din utviklerkonto.

Oppretting av IAP-produkter:

For å lage IAP-produkter, åpner du iTunes-applikasjonen og naviger til Funksjoner-delen. Klikk på “+” -knappen og velg en av de fire typene som vi allerede har diskutert. Oppgi deretter alle nødvendige metadata relatert til det IAP-produktet. Vær oppmerksom på produkt-ID.

Produkt-ID skal være unik og forståelig. Vi trenger disse produkt-IDene for å få de ønskede IAP-produktene.
Her er noen eksempler på IAP-produkter som jeg har laget.

Så her er vi ferdig med det første skrittet mot integrering av IAP. La oss fortsette til neste trinn som er kode.

Ååå !! Jeg lagde den.

2. Koden i Swift:

Oppbevar koden i en egen klasse som jeg har opprettet PKIAPHandler, må du gjerne endre navnet hvis du ikke liker det . Vi vil lagre alle tingene relatert til kjøp av apper i denne klassen.
Så la oss diskutere koden. Hva denne klassen inneholder.

Eiendommer:

For det første må du lagre alle brukbare IAP-produkter Ids i en matrise, der du skal vise alle opprette IAP-produktene (i trinn IAP Products Creation) i applikasjonen din for å vise brukeren.
Det er en egenskap "isLogEnabled" som hjelper deg å aktivere konsollloggen til PKIAPHandler.
"delt" eiendom lar deg samhandle med alle medlemsfunksjonene du trenger å bruke mens IAP-tjenester.
For bedre forståelse har jeg lagt ved GIST-filen med koden. Bla nedover for å se på det.

Klassefunksjoner:

  1. canMakePurchases (): returner en bool-verdi (sann / usann) enten enheten er i stand til å kjøpe eller ikke.
  2. setProductIds (ids: [String]): Bruk disse metodene for å stille IAP-produktene til å arbeide med. Kall disse metodene i viewDidLoad-metoden til UIViewController der du skal vise tilgjengelige IAP-produkter.
  3. fetchAvailableProducts (komplement: @escaping (([SKProduct]) -> Void)): Bruk denne metoden for å hente alle IAP-produktdetaljer for ID-ene du har angitt med setProductIds-metoden. Det returnerer en rekke SKProduct, dette SKProduct-objektet har alle detaljene du skrev inn mens du opprettet IAP-produkter på iTunes. Få tak i denne matrisen og oppbevar den i en matrise for å vises i oppføringen og for fremtidig å bli brukt til kjøp.
  4. kjøp (produkt: SKProduct, komplement: @escaping ((PKIAPHandlerAlertType, SKProduct?, SKPaymentTransaction?) -> Void)): Bruk denne metoden for å starte kjøp for produktet (bruker SKProduct som du har hentet helt av fetchAvailableProducts-metoden) . Den hever betalingsdialogboksen for brukerbekreftelsen. I ferdigstillelsesblokk vil du få melding fra handler, produkt om kjøp og betalingstransaksjonsdetaljer hvis kjøpt vellykket. Ellers vil produkt- og betalingstransaksjon være null.
  5. RestorePurchase (): Bruk denne metoden for å gjenopprette kjøpet for den kjøpte / ikke-forbruksartikelen.

Delegerte metoder:

  1. productsRequest (_ forespørsel: SKProductsRequest, didReceive response: SKProductsResponse): returnerer alle IAP-produktene som er tilgjengelige på iTunes med hensyn til ID-ene du har angitt med setProductIds-metoden. Det blir trigget like etter å ha kalt metoden fetchAvailableProducts.
  2. betalingQueueRestoreCompleatedTransactionsFinished (_ kø: SKPaymentQueue): Håndterer en situasjon der brukeren gjenoppretter et IAP-produkt.
  3. paymentQueue (_ kø: SKPaymentQueue, updatedTransactions transaksjoner: [SKPaymentTransaction]): Denne delegerte metodene utløses rett etter å ha ringt til kjøpsmetoden (produkt: SKProduct). I denne metoden får du all informasjon relatert til IAP-transaksjon enten kjøpt eller mislykket.

3. Bruke koden:

Åpne din UIViewController, opprett en tom rekke av typen SKProduct, og sett deretter IAP-produkt-IDene i viewDidLoad-funksjonen 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 {[svakt selv] (produkter) i
   vakt la sSelf = self else {return}
   sSelf.productsArray = produkter
   sSelf.tableView.reloadData () // last inn bord- eller samlevisningen
}

Enten oppretter du en handling eller bruk didSelect delegert-metoden for tableView / collectionView for å starte IAP-kjøpet ved å ringe purchase () -metoden.

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (produkt: self.productsArray [indexPath.row]) {(varsling, produkt, transaksjon) i
   hvis la tran = transaksjon, la prod = produkt {
     // bruke transaksjonsdetaljer og kjøpt produkt som du vil
   }
   Globals.shared.showWarnigMessage (alert.message)
   }
}

Her er kodefilen, bla ned for å se over den.

Vi er ferdige her for å implementere IAP i iOS-applikasjonen med hurtig.
La oss gå for testing.

La oss gå for testing

4. Testing:

Først må du logge på iOS-enheten din ved hjelp av den opprettede Sandbox-brukerkontoen, deretter kjøre applikasjonen på den virkelige enheten og starte transaksjonen. Ikke bekymre deg for prisen som vises i Varsel-vinduet, bare gå lenger. Ingenting vil bli belastet ettersom du er sandkassebruker for applikasjonen.

Merk: I appkjøp kan ikke testes på iOS-simulator. Så bruk gjerne ekte enhet.

!!! LYKKELIG KODING !!!

Takk for at du leser, trykk på anbefalingsikonet hvis du liker denne samlingen . Spørsmål? Legg igjen dem i kommentaren.