In app aankopen in iOS-applicaties met Swift

Implementeer In App Purchase (IAP) in iOS-applicaties [snel]

Nu biedt het grootste deel van de applicatie de optie om de extra functie of inhoud te krijgen door een aankoop te doen . Dit proces staat bekend als In App Purchase (IAP), is een geweldige manier om geld te verdienen met uw iOS- of MacOS-applicaties.
Ja, het is een onbetwistbaar feit dat de inkomsten van de ontwikkelaar (natuurlijk van Apple) gebaseerd zijn op de in-app aankopen . Of je het nu leuk vindt of niet , Apple brengt 30% in rekening voor elke succesvolle transactie die je applicatie zal maken .

Dus vandaag gaan we het hebben over de In App-aankopen en zien we het proces van integratie van In App Purchase in iOS-applicatie met Swift 4.0-taal.

Soorten in-app aankopen:

Wanneer de gebruiker een IAP maakt om extra inhoud van een abonnement te kopen, voert u een van deze uit bij de aankoop van een app:

  1. Verbruiksartikelen: de gebruiker moet deze items elke keer kopen, omdat ze ze willen gebruiken en in de toekomst niet gratis kunnen worden gebruikt. Bij het opnieuw installeren, kan het veranderen van apparaatgebruiker zijn verbruiksgoederen verliezen. Bijvoorbeeld het kopen van spelvaluta, gezondheid en hints etc.
  2. Niet-consumeerbaar: gebruiker koopt dit item eenmalig, kan in de toekomst gratis worden gebruikt. Bij het opnieuw installeren en wijzigen van het apparaat gaan deze producten niet verloren. Als de gebruiker verliest, kan deze mogelijk opnieuw gratis worden gedownload door in-app-aankopen te herstellen. Bijvoorbeeld: app upgraden naar pro-versie, advertenties verwijderen etc.
  3. Niet-verlengende abonnementen: de gebruiker kan deze items gedurende een vaste periode gebruiken, deze items kunnen na het einde van het abonnement opnieuw worden gekocht. Bijvoorbeeld: een sportsessiepas voor één, drie of zes motten.
  4. Auto-hernieuwbare abonnementen: gebruiker kan dit item voor een bepaalde periode kopen. Het wordt automatisch verlengd wanneer de periode is verstreken. Bijvoorbeeld: doorlopende services (Netflix, Hulu Plus, enz.), Tijdschriftabonnementen enz.

We zullen proberen alles te behandelen wat nodig is om IAP in iOS-toepassing te implementeren, zullen hier de volgende onderwerpen bespreken:

  1. iTunes Connect instellen
  2. De code in Swift
  3. Gebruik de code
  4. IAP testen

1. iTunes Connect instellen:

We zullen dit deel in vier delen bespreken: bankrekening instellen, Sandbox-gebruiker maken, iTunes-app maken en IAP-producten maken.

Bankrekening instellen:

Als u de bankrekening niet hebt ingesteld in uw iTunes connect-account, kunt u geen IAP-services gebruiken . Het is dus een belangrijk onderdeel om de IAP-services te laten werken. We kunnen dit doen door naar het gedeelte Overeenkomsten, Belasting en Bankieren van iTunes Connect-account te gaan. Het zou er ongeveer zo uit moeten zien:

Sandbox-gebruikerscreatie:

Nu moeten we een sandbox-gebruiker maken, om naar Gebruikers en rollen in iTunes connect-account te navigeren en de sectie Sandbox-testers te kiezen. Het is heel belangrijk om een ​​sandbox-gebruiker toe te voegen om de IAP-services te testen, per sandbox-gebruiker kunt u gratis transacties uitvoeren.

Denk er altijd aan om een ​​e-mail te gebruiken die niet is aangepakt met een Apple ID.

iTunes-app maken:

Om een ​​applicatie op iTunes te maken naar naar Mijn apps-gedeelte van iTunes connect account, of een bestaande app te gebruiken die je al hebt. Om een ​​toepassing op iTunes te maken, moet u een app-ID maken van uw ontwikkelaarsaccount.

IAP-producten maken:

Om IAP-producten te maken, opent u uw iTunes-toepassing en navigeert u naar het gedeelte Functies. Klik op de knop "+" en kies een van de 4 typen die we al hebben besproken. Geef vervolgens alle vereiste metagegevens met betrekking tot dat IAP-product. Let op de product-id.

Product-ID moet uniek en begrijpelijk zijn, we hebben deze product-ID's nodig om de gewenste IAP-producten te krijgen.
Hier zijn enkele voorbeelden van IAP-producten die ik heb gemaakt.

Dus hier zijn we klaar met de eerste stap naar de integratie van IAP. Laten we doorgaan naar de volgende stap die code is.

O ja!! Ik heb het gehaald.

2. De code in Swift:

Bewaar de code in een aparte klasse die ik PKIAPHandler heb gemaakt, voel je vrij om de naam te wijzigen als je het niet leuk vindt . We zullen alle dingen met betrekking tot In App Purchase in deze klasse opslaan.
Laten we de code dus bespreken. Wat deze klasse bevat.

eigenschappen:

Allereerst moet u alle bruikbare IAP-producten-ID's opslaan in een array, waarin u alle gemaakte IAP-producten (in stap IAP-producten maken) in uw toepassing zult laten zien om de gebruiker te tonen.
Er is een eigenschap `isLogEnabled` waarmee u het consolelogboek van de PKIAPHandler kunt inschakelen.
Met `shared` property kunt u communiceren met alle lidfuncties die u moet gebruiken tijdens IAP-services.
Voor een beter begrip heb ik het GIST-bestand van de code bijgevoegd. Scroll naar beneden om er naar te kijken.

Klasse Functies:

  1. canMakePurchases (): retourneer een Bool-waarde (waar / onwaar), hetzij het apparaat kan aankopen doen of niet.
  2. setProductIds (ids: [String]): gebruik deze methoden om de IAP-product-ID's in te stellen om mee te werken. Roep deze methoden aan in viewDidLoad-methode van uw UIViewController waarin u de beschikbare IAP-producten gaat tonen.
  3. fetchAvailableProducts (complition: @escaping (([SKProduct]) -> Void)): gebruik deze methode om alle IAP-productdetails op te halen voor de ID's die u hebt ingesteld met de setProductIds-methode. Er wordt een reeks SKProduct geretourneerd, dit SKProduct-object bevat alle details die u hebt ingevoerd tijdens het maken van IAP-producten op iTunes. Download deze array en bewaar deze in een array voor weergave in de lijst en voor toekomstige aankopen.
  4. aankoop (product: SKProduct, complition: @escaping ((PKIAPHandlerAlertType, SKProduct ?, SKPaymentTransaction?) -> Void)): gebruik deze methode om de aankoop voor het product te initiëren (gebruiker de SKProduct die u al hebt opgehaald met de methode fetchAvailableProducts) . Het opent het betalingsdialoogvenster voor de gebruikersbevestiging. In het voltooiingsblok ontvangt u een bericht van de handler, het product dat is gekocht en de betalingstransactiegegevens als het met succes is gekocht, anders zijn de product- en betalingstransactie nul.
  5. restorePurchase (): gebruik deze methode om de aankoop voor het gekochte / niet-verbruikbare artikel te herstellen.

Gedelegeerde methoden:

  1. productsRequest (_verzoek: SKProductsRequest, didReceive response: SKProductsResponse): retourneert alle IAP-producten die beschikbaar zijn op iTunes met betrekking tot de ID's die u hebt ingesteld met de setProductIds-methode. Het wordt geactiveerd zodra u de methode fetchAvailableProducts aanroept.
  2. paymentQueueRestoreCompletedTransactionsFinished (_ wachtrij: SKPaymentQueue): behandelt een situatie waarin een gebruiker een IAP-product met succes herstelt.
  3. paymentQueue (_ wachtrij: SKPaymentQueue, updatedTransactions-transacties: [SKPaymentTransaction]): deze gedelegeerde methode is geactiveerd net nadat de aankoopmethode (product: SKProduct) is aangeroepen. Bij deze methode krijgt u alle details met betrekking tot IAP-transacties, ofwel gekocht of mislukt.

3. Gebruik van de code:

Open uw UIViewController, maak een lege reeks van het type SKProduct, stel vervolgens in viewDidLoad de IAP-producten-ID's in en haal alle details van de IAP-producten op en toon ze in UITableView, UICollectionView of zoals u wilt.

PKIAPHandler.shared.setProductIds (ids: self.productIDs)
PKIAPHandler.shared.fetchAvailableProducts {[weak self] (products) in
   guard let sSelf = self else {return}
   sSelf.productsArray = products
   sSelf.tableView.reloadData () // herlaad uw tabel- of collectieweergave
}

Ze maken een actie of gebruiken de methode didSelect delegeren van tableView / collectionView om de IAP-aankoop te starten door de methode purchase () aan te roepen.

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (product: self.productsArray [indexPath.row]) {(waarschuwing, product, transactie) in
   als laat tran = transactie, laat prod = product {
     // gebruik transactiegegevens en gekochte producten zoals u dat wilt
   }
   Globals.shared.showWarnigMessage (alert.message)
   }
}

Hier is het codebestand, scrol omlaag om het te bekijken.

We zijn hier klaar voor het snel implementeren van de IAP in iOS-applicatie.
Laten we nu gaan testen.

Laten we gaan testen

4. Testen:

Meld u eerst aan bij uw iOS-apparaat met het gemaakte Sandbox-gebruikersaccount, voer vervolgens uw applicatie uit op het echte apparaat en start de transactie. Maak je geen zorgen over de prijs die in het waarschuwingsvenster wordt weergegeven, ga gewoon verder. Er worden niets in rekening gebracht omdat u sandbox-gebruiker bent voor de toepassing.

Opmerking: In App aankopen kunnen niet worden getest op iOS simulator. Gebruik daarom een ​​echt apparaat.

!!! GELUKKIG CODEREN !!!

Bedankt voor het lezen, klik op het pictogram aanbevelen als je deze verzameling leuk vindt . Vragen? Laat ze achter in de reactie.