Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS SDK
Code

Pembelian Dalam Aplikasi di iOS Dengan Swift 3

by
Difficulty:BeginnerLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Hasannudin Amin (you can also view the original English article)

Final product image
What You'll Be Creating

Pengantar

Pembelian dalam aplikasi adalah fitur hebat bagi semua pengembang yang ingin mendapatkan lebih banyak pendapatan dan menawarkan konten dan fitur ekstra melalui aplikasinya. Misalnya, untuk permainan Anda bisa membeli permata atau koin, dan untuk aplikasi fotografi Anda bisa membuka efek atau alat baru. Dan Anda bisa melakukan semua ini dengan menggunakan kartu kredit atau metode pembayaran lainnya, tanpa keluar dari aplikasi.

Dalam tutorial ini, saya akan membahas semua langkah yang diperlukan untuk membuat produk IAP Consumable dan Non-Consumable di iTunes Connect, dan saya akan menunjukkan kode yang Anda perlukan untuk membeli kedua item tersebut. Saya telah membuat contoh proyek Xcode dengan label dan dua tombol, jadi download dan ikuti tutorial ini untuk memahami cara kerjanya.

Buat Sandbox Tester di iTunes Connect

Saya asumsikan Anda telah membuat aplikasi iOS di bagian My Apps di iTunes Connect. Hal pertama yang harus Anda lakukan adalah membuat Sandbox Tester untuk menguji IAP pada perangkat nyata Anda (tidak ada Simulator—ini tidak mendukung Pembelian Dalam Aplikasi).

Masuk Users and Roles, buka tab Sandbox Tester, dan klik tanda (+) di sebelah Tester.

Users and roles in iTunes Connect

Isi formulir untuk menambahkan sandbox tester baru. Setelah menyimpan info Anda, kembali ke bagian My App dan klik ikon aplikasi Anda untuk memasukkan detailnya dan membuat produk IAP.

Buat Produk IAP di iTunes Connect

Produk Consumable

Klik tab Features dan kemudian tanda (+) di sebelah In-App Purchases. Anda dapat membuat satu produk sekaligus, jadi mari kita mulai dengan satu menu Consumable.

Select Consumable In-App Purchase

IAP Consumable, seperti namanya, adalah produk yang bisa Anda beli berkali-kali. Kita akan menggunakannya untuk mengumpulkan "koin" tambahan di aplikasi demo kita.

Klik Create untuk menginisialisasi item IAP Anda. Pada layar berikutnya, Anda dapat mengatur semua info tentang produk Anda:

  • Reference Name: nama ini akan digunakan di iTunes Connect dan laporan Sales and Trends. Ini tidak akan ditampilkan di App Store dan Anda bisa mengetikkan nama yang Anda inginkan, tapi tidak boleh lebih dari 64 karakter.
  • Product ID: Pengenal alfanumerik unik yang akan diambil oleh aplikasi untuk mengenali produk Anda. Biasanya pengembang menggunakan sintaks reverse web untuk id produk. Dalam contoh ini kita memilih com.iaptutorial.coins. Nantinya kita akan paste ID ini sebagai string ke dalam kode kita.
  • Price: Pilih harga dari menu dropdown. Ingat bahwa untuk menjual produk pembelian dalam aplikasi Anda di App Store, Anda harus mengajukan permohonan untuk Paid Application Agreement di bagian Agreements, Tax & Banking.
  • Localizations: Demi tutorial ini kita hanya memilih bahasa Inggris, tapi Anda bisa menambahkan lebih banyak bahasa dengan mengklik tombol (+). Kemudian ketikkan Display Name dan Description. Keduanya akan terlihat di App Store.
  • Screenshot: Ungah tangkapan layar untuk ditinjau. Ini tidak akan ditampilkan di App Store dan itu harus memiliki ukuran yang valid untuk platform aplikasi Anda, jadi jika aplikasi Anda Universal, Anda dapat mengunggah tangkapan layar iPad.
  • Review Notes: Informasi tambahan tentang IAP Anda yang mungkin bisa membantu resensi.
Create a new IAP product

Setelah selesai, klik Save dan Anda akan mendapatkan lansiran ini:

Pembelian dalam aplikasi pertama Anda harus dikirimkan dengan versi aplikasi baru. Pilih dari bagian In-App Purchases pada aplikasi dan klik Submit.

Produk Non-Consumable

Sekarang klik tombol In-App Purchases di daftar di sebelah kiri, tepat di atas tombol Game Center, dan tambahkan produk IAP baru. Kali ini, pilih opsi Non-Consumable:

Create a Non-Consumable product

Klik Create dan ulangi langkah-langkah yang kami sebutkan di atas. Karena ini akan menjadi produk Non-Consumable, pengguna hanya dapat membelinya sekali saja, dan Apple memerlukan kemampuan untuk mengembalikan pembelian tersebut. Itu terjadi jika Anda mencopot pemasangan aplikasi dan memasangnya kembali lagi, atau mengunduhnya dari perangkat lain dengan ID Apple Anda yang sama dan perlu membeli kembali tanpa membayarnya dua kali. Jadi nanti kita akan menambahkan fungsi Restore Purchase pada kode kita.

Produk ID yang kami buat sekarang adalah com.iaptutorial.premium, dengan harga sebesar USD $2.99. Kita akan menyebutnya Unlock Premium Version.

Setelah selesai mengisi semua bidang, simpan produk Anda dan kembali ke halaman In-App Purchases. Sekarang Anda harus memiliki daftar dua produk Anda, dengan Name, Type, ID dan Status mereka yang ditetapkan sebagai Ready to Submit.

In-app Purchases list

Kembali ke halaman aplikasi Anda dengan mengklik tombol App Store dan Prepare for Submission. Gulir ke bawah ke bagian In-App Purchases, tepat di bawah Informasi General App Information, dan klik ke tombol (+) untuk menambahkan produk IAP Anda.

Add In-App Purchases to your apps info page

Plih semua dari mereka dan klik Done.

Select your IAP products

Terakhir, klik Save di pojok kanan atas layar dan Anda akan selesai dengan mengonfigurasi produk In-App Purchase di iTunes Connect.

Masuk ke Sandbox Tester di perangkat iOS

Sebelum sampai ke kode, ada satu hal lagi yang harus dilakukan. Pergi ke Settings > iTunes & App Store di perangkat iOS Anda. Jika Anda sudah login dengan ID Apple asli Anda, ketuk dan pilih Sign Out. Kemudian cukup masuk dengan kredensial untuk sanbox tester yang Anda buat. Setelah masuk, Anda mungkin mendapat peringatan seperti ini:

Alert from the device

Abaikan saja pesannya dan ketuk Perangkat Anda akan menanyakan kredensial masuk sandbox Anda lagi saat mencoba melakukan pembelian dan akan mengenali akun pengujian sehingga Anda tidak akan dikenakan biaya sepeser pun pada kartu kredit Anda untuk pembelian yang Anda lakukan.

Keluar dari Settings, pasang perangkat Anda ke Mac melalui kabel USB, dan mari kita mulai coding!

Kode

Jika Anda telah mendownload proyek demo kami, Anda akan melihat bahwa semua kode yang diperlukan untuk Pembelian Dalam Aplikasi telah ditulis, jadi jika Anda menjalankannya, Anda akan mendapatkan sesuatu seperti ini:

Demo IAP app

Jika Anda ingin menguji aplikasi, Anda harus mengganti Bundle Identifier ke id Anda sendiri. Jika tidak, Xcode tidak mengizinkan Anda menjalankan aplikasi di perangkat nyata dan aplikasi tidak akan mengenali dua produk IAP yang telah Anda buat.

Chage Bundle ID in the General tab in XCode

Masukkan ViewController.swift dan periksa kodenya. Pertama-tama, kami telah menambahkan pernyataan impor untuk StoreKit dan delegasi yang kita butuhkan untuk melacak transaksi pembayaran dan permintaan produk.

Kemudian kita telah menyatakan beberapa pandangan yang akan bermanfaat.

coinsLabel dan premiumLabel akan digunakan untuk menunjukkan hasil pembelian untuk kedua produk tersebut. consumableLabel dan nonConsumableLabel akan menampilkan deskripsi dan harga setiap produk IAP, yang telah kita buat sebelumnya di iTunes Connect.

Sekarang saatnya menambahkan beberapa variabel:

Dua baris pertama adalah untuk mengingat ID produk kita. Ini penting agar string tersebut sesuai dengan yang ada di bagian In-App Purchase pada iTunes Connect.

  • productID adalah string yang akan kita gunakan nanti untuk mendeteksi produk apa yang akan kita pilih untuk dibeli.
  • productRequest adalah contoh dari SKProductsRequest, yang dibutuhkan untuk mencari produk IAP dari aplikasi Anda di iTC.
  • iapProducts adalah array sederhana dari SKProducts. Harap dicatat bahwa prefiks SK berarti StoreKit, kerangka kerja iOS yang akan kita gunakan untuk menangani pembelian.

Dua baris terakhir memuat dua variabel tipe Boolean dan Integer yang diperlukan untuk melacak pembelian koin dan versi premium, masing-masing produk consumable dan non-consumable.

Kode berikut di viewDidLoad() melakukan beberapa hal segera setelah aplikasi dimulai:

Pertama kita hanya log setiap pembelian ke Xcode console. Kemudian kita menampilkan jumlah total koin yang kita beli dengan coinsLabel. Karena kita menjalankan aplikasi demo untuk pertama kalinya, ini akan menunjukkan COINS: 0.

Pernyataan if menetapkan teks premiumLabel sesuai dengan apakah produk yang non-consumable dibeli. Untuk memulai, itu akan menampilkan Premium version LOCKED! karena kita belum melakukan pembelian premium.

Baris kode terakhir memanggil metode yang akan kita lihat nanti, yang hanya menjemput produk yang sebelumnya telah kita simpan di iTC.

Sekarang mari kita lihat apa dua tombol pembelian yang telah kita tetapkan di aplikasi demo kita:

Kedua metode tersebut akan memanggil fungsi yang akan memeriksa apakah perangkat dapat melakukan pembelian, dan jika bisa, aplikasi akan memanggil metode delegasi StoreKit untuk memproses pembelian.

Seperti disebutkan sebelumnya, kita memerlukan tombol ketiga untuk mengembalikan pembelian non-consumable. Berikut kodenya:

Fungsi IBAction dilampirkan pada tombol Restore Purchase di Storyboard dan mulai terhubung ke sistem In-App Purchase Apple untuk mengembalikan pembelian jika sudah dibuat.

paymentQueueRestoreCompletedTransactionsFinished()  adalah metode delegasi dari kerangka StoreKit yang akan menghemat variabel nonConsumablePurchaseMade menjadi true setelah pembelian berhasil dipulihkan.

Kita selesai dengan tombol, jadi mari kita lihat fungsi fetchAvailableProducts() apa yang ada:

Kita pertama kali membuat sebuah instance dari NSSet, yang pada dasarnya adalah sebuah array dari string. Kita akan menyimpan dua ID produk yang telah kita nyatakan sebelumnya di sana.

Kemudian kita memulai sebuah SKProductsRequest berdasarkan pengidentifikasi tersebut, agar aplikasi dapat menampilkan info tentang produk IAP (deskripsi dan harga), yang akan diproses dengan metode delegasi ini:

Pada fungsi di atas, pertama-tama kita harus memeriksa apakah ada produk yang terdaftar di iTunes Connect dan atur rangkaian iapProducts kita. Kemudian kita bisa menginisialisasi SKProduct dan mencetak deskripsi dan harganya pada label.

Sebelum masuk ke inti kode In-App Purchase, kita memerlukan beberapa fungsi lagi:

Yang pertama memeriksa apakah perangkat Anda dapat melakukan pembelian. Fungsi kedua adalah yang kita sebut dari dua tombol. Ini memulai antrian pembayaran dan mengubah variabel productID kita menjadi productIdentifier yang dipilih.

Sekarang kita akhirnya sampai pada metode delegasi terakhir, yang menangani hasil pembayaran:

Fungsi ini memiliki pernyataan switch yang memeriksa setiap keadaan pembayaran. case pertama dipanggil jika pembelian telah berhasil dilakukan dan menyelesaikan transaksinya.

Di dalam blok ini, kita harus memeriksa ID produk apa yang telah kita pilih dan melakukan tindakan yang diperlukan untuk memperbarui aplikasi kami—jadi jika pengguna membeli 10 koin ekstra, kita akan menambahkan 10 pada variabel coin kita, menghemat nilainya dengan UserDefaults, tampilkan jumlah koin baru yang kita dapatkan, dan nyalakan peringatan tentang hal itu.

Perlu diketahui bahwa Anda dapat melakukan pembelian ini beberapa kali tanpa batas karena ini merupakan IAP yang consumable, dan Anda tidak memerlukan fungsi pembelian pengembalian.

Demikian pula, jika kita membeli produk premium non-consumable aplikasi menyetel variabel nonConsumablePurchaseMade ke true, menyimpannya, mengubah teks premiumLabel, dan mengaktifkan peringatan untuk memberi tahu Anda bahwa pembelian tersebut telah berhasil.

Dua cases lainnya menangani hasil pembayaran karena kegagalan dan pemulihan. Aplikasi akan mengaktifkan lansiran ubahsuaian dengan sendirinya jika transaksi Anda gagal karena alasan tertentu atau jika Anda telah memulihkan pembelian yang non-consumable.

Itu dia! Sekarang pastikan Anda masuk dengan kredensial Sandbox Tester dan jalankan aplikasi untuk mengujinya. Pertama kali, Anda akan mendapatkan peringatan seperti ini:

App Store Sign In alert

Pilih  dan masukkan nama pengguna dan kata sandi Sandbox Tester Anda untuk masuk. Hal ini terjadi karena aplikasi hanya dapat mengenali pengguna sebenarnya dari setelan iTunes & App Store, bukan Sandbox one.

Setelah masuk, Anda dapat melakukan pembelian kedua produk.

10 Coins purchase made

Non-Consumable Premium purchase made

Template CodeCanyon

Jika Anda bekerja dengan iOS dan ingin membuat pengembangan bahasa dan aplikasi Swift lebih jauh, periksa beberapa template aplikasi iOS saya di CodeCanyon.

Ada ratusan template aplikasi iOS lainnya di Envato Market juga, siap untuk disesuaikan dan pasti akan mempercepat alur kerja Anda. Pergi memeriksa mereka! Anda mungkin saja menghemat jam kerja di aplikasi Anda selanjutnya.

Kesimpulan

Dalam tutorial ini, kita telah membahas semua langkah yang diperlukan untuk membuat produk Pembelian Dalam Aplikasi di iTunes Connect dan cara menulis kode untuk mengaktifkannya di aplikasi Anda. Saya harap Anda dapat menerapkan pengetahuan ini di aplikasi iOS berikutnya!

Terima kasih telah membaca, dan saya berharap bertemu Anda lain waktu! Silakan periksa kursus dan tutorial kami yang lain tentang pengembangan aplikasi iOS dengan Swift.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.