Pembelian dan uji coba dalam aplikasi

Windows SDK menyediakan API yang dapat Anda gunakan untuk mengimplementasikan fitur berikut untuk menghasilkan lebih banyak uang dari aplikasi Platform Windows Universal (UWP) Anda:

  • Dalam aplikasi membeli Apakah aplikasi Anda gratis atau tidak, Anda dapat menjual konten atau fungsionalitas aplikasi baru (seperti membuka kunci tingkat permainan berikutnya) dari langsung dalam aplikasi.

  • Fungsionalitas uji coba Jika Anda mengonfigurasi aplikasi sebagai uji coba gratis di Pusat Mitra, Anda dapat menarik pelanggan untuk membeli versi lengkap aplikasi Anda dengan mengecualikan atau membatasi beberapa fitur selama periode uji coba. Anda juga dapat mengaktifkan fitur, seperti banner atau marka air, yang hanya ditampilkan selama uji coba, sebelum pelanggan membeli aplikasi Anda.

Artikel ini memberikan gambaran umum tentang cara kerja pembelian dan uji coba dalam aplikasi di aplikasi UWP.

Pilih namespace layanan mana yang akan digunakan

Ada dua namespace berbeda yang dapat Anda gunakan untuk menambahkan pembelian dalam aplikasi dan fungsionalitas uji coba ke aplikasi UWP Anda, tergantung pada versi Windows 10 atau Windows 11 yang ditargetkan aplikasi Anda. Meskipun API di namespace layanan ini melayani tujuan yang sama, api dirancang dengan sangat berbeda, dan kode tidak kompatibel antara dua API.

  • Windows.Services.Store Mulai Windows 10, versi 1607, aplikasi dapat menggunakan API di namespace layanan ini untuk menerapkan pembelian dan uji coba dalam aplikasi. Kami menyarankan agar Anda menggunakan anggota di namespace layanan ini jika proyek aplikasi Anda menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru di Visual Studio. Namespace layanan ini mendukung jenis add-on terbaru, seperti add-on yang dapat dikonsumsi yang dikelola Store, dan dirancang agar kompatibel dengan jenis produk dan fitur mendatang yang didukung oleh Pusat Mitra dan Toko. Untuk informasi selengkapnya tentang namespace layanan ini, lihat bagian Pembelian dan uji coba dalam aplikasi menggunakan namespace Windows.Services.Store di artikel ini.

  • Windows.ApplicationModel.Store Semua versi Windows 10 dan Windows 11 juga mendukung API yang lebih lama untuk pembelian dan uji coba dalam aplikasi di namespace ini. Untuk informasi tentang namespace Windows.ApplicationModel.Store , lihat Pembelian dan uji coba dalam aplikasi menggunakan namespace Windows.ApplicationModel.Store.

Penting

Namespace Windows.ApplicationModel.Store tidak lagi diperbarui dengan fitur baru, dan kami sarankan Anda menggunakan namespace Windows.Services.Store sebagai gantinya jika memungkinkan untuk aplikasi Anda. Namespace Windows.ApplicationModel.Store tidak didukung di aplikasi desktop Windows yang menggunakan Desktop Bridge atau di aplikasi atau game yang menggunakan kotak pasir pengembangan di Pusat Mitra (misalnya, ini adalah kasus untuk permainan apa pun yang terintegrasi dengan Xbox Live).

Konsep dasar

Setiap item yang ditawarkan di Toko umumnya disebut produk. Sebagian besar pengembang hanya bekerja dengan jenis produk berikut: aplikasi dan add-on.

Add-on adalah produk atau fitur yang Anda sediakan untuk pelanggan dalam konteks aplikasi Anda: misalnya, mata uang yang akan digunakan dalam aplikasi atau game, peta atau senjata baru untuk game, kemampuan untuk menggunakan aplikasi Anda tanpa iklan, atau konten digital seperti musik atau video untuk aplikasi yang memiliki kemampuan untuk menawarkan jenis konten tersebut. Setiap aplikasi dan add-on memiliki lisensi terkait yang menunjukkan apakah pengguna berhak menggunakan aplikasi atau add-on. Jika pengguna berhak menggunakan aplikasi atau add-on sebagai uji coba, lisensi juga menyediakan info tambahan tentang uji coba.

Untuk menawarkan add-on kepada pelanggan di aplikasi, Anda harus menentukan add-on untuk aplikasi Anda di Pusat Mitra sehingga Store mengetahuinya. Kemudian, aplikasi Anda dapat menggunakan API di namespace Windows.Services.Store atau Windows.ApplicationModel.Store untuk menawarkan add-on yang dijual kepada pengguna sebagai pembelian dalam aplikasi.

Aplikasi UWP dapat menawarkan jenis add-on berikut.

Jenis add-on Deskripsi
Tahan Lama Add-on yang bertahan selama masa pakai yang Anda tentukan di Pusat Mitra.

Secara default, add-on tahan lama tidak pernah kedaluwarsa, dalam hal ini mereka hanya dapat dibeli sekali. Jika Anda menentukan durasi tertentu untuk add-on, pengguna dapat membeli kembali add-on setelah kedaluwarsa.
Dapat dikonsumsi yang dikelola pengembang Add-on yang dapat dibeli, digunakan, lalu dibeli lagi setelah dikonsumsi. Anda bertanggung jawab untuk melacak saldo item pengguna yang diwakili add-on.

Ketika pengguna menggunakan item apa pun yang terkait dengan add-on, Anda bertanggung jawab untuk mempertahankan saldo pengguna dan untuk melaporkan pembelian add-on sebagai terpenuhi ke Store setelah pengguna mengonsumsi semua item. Pengguna tidak dapat membeli add-on lagi hingga aplikasi Anda melaporkan pembelian add-on sebelumnya sebagai terpenuhi.

Misalnya, jika add-on Anda mewakili 100 koin dalam game dan pengguna mengonsumsi 10 koin, aplikasi atau layanan Anda harus mempertahankan sisa saldo baru 90 koin untuk pengguna. Setelah pengguna menggunakan semua 100 koin, aplikasi Anda harus melaporkan add-on sesuai kebutuhan, lalu pengguna dapat membeli add-on 100 koin lagi.
Dapat dikonsumsi yang dikelola toko Add-on yang dapat dibeli, digunakan, dan dibeli lagi kapan saja. Penyimpanan melacak saldo item pengguna yang diwakili add-on.

Ketika pengguna menggunakan item apa pun yang terkait dengan add-on, Anda bertanggung jawab untuk melaporkan item tersebut sebagai terpenuhi ke Store, dan Store memperbarui saldo pengguna. Pengguna dapat membeli add-on sebanyak yang mereka inginkan (mereka tidak perlu mengonsumsi item terlebih dahulu). Aplikasi Anda dapat mengkueri saldo saat ini untuk pengguna kapan saja.

Misalnya, jika add-on Anda mewakili jumlah awal 100 koin dalam game dan pengguna mengonsumsi 50 koin, aplikasi Anda melaporkan ke Store bahwa 50 unit add-on terpenuhi, dan Simpan memperbarui sisa saldo. Jika pengguna kemudian membeli kembali add-on Anda untuk memperoleh 100 koin lagi, mereka sekarang akan memiliki total 150 koin.

Catatan Untuk menggunakan habis pakai yang dikelola Store, aplikasi Anda harus menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru di Visual Studio, dan harus menggunakan namespace Windows.Services.Store alih-alih namespace Windows.ApplicationModel.Store .
Langganan Add-on tahan lama di mana pelanggan terus ditagih pada interval berulang untuk tetap menggunakan add-on. Pelanggan dapat membatalkan langganan kapan saja untuk menghindari biaya lebih lanjut.

Catatan Untuk menggunakan add-on langganan, aplikasi Anda harus menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru di Visual Studio, dan harus menggunakan namespace Windows.Services.Store alih-alih namespace Windows.ApplicationModel.Store .

Catatan

Jenis add-on lainnya, seperti add-on tahan lama dengan paket (juga dikenal sebagai konten yang dapat diunduh atau DLC) hanya tersedia untuk sekumpulan pengembang terbatas, dan tidak tercakup dalam dokumentasi ini.

Pembelian dan uji coba dalam aplikasi menggunakan namespace Windows.Services.Store

Bagian ini memberikan gambaran umum tentang tugas dan konsep penting untuk namespace Windows.Services.Store . Namespace ini hanya tersedia untuk aplikasi yang menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru di Visual Studio (ini sesuai dengan Windows 10, versi 1607). Sebaiknya aplikasi menggunakan namespace Windows.Services.Store alih-alih namespace Windows.ApplicationModel.Store jika memungkinkan. Untuk informasi tentang namespace Windows.ApplicationModel.Store , lihat artikel ini.

Di bagian ini

Mulai menggunakan kelas StoreContext

Titik masuk utama ke namespace Windows.Services.Store adalah kelas StoreContext . Kelas ini menyediakan metode yang dapat Anda gunakan untuk mendapatkan info untuk aplikasi saat ini dan add-on yang tersedia, mendapatkan info lisensi untuk aplikasi saat ini atau add-on-nya, membeli aplikasi atau add-on untuk pengguna saat ini, dan melakukan tugas lain. Untuk mendapatkan objek StoreContext , lakukan salah satu hal berikut ini:

  • Dalam aplikasi pengguna tunggal (yaitu, aplikasi yang hanya berjalan dalam konteks pengguna yang meluncurkan aplikasi), gunakan metode GetDefault statis untuk mendapatkan objek StoreContext yang dapat Anda gunakan untuk mengakses data terkait Microsoft Store untuk pengguna. Sebagian besar aplikasi Platform Windows Universal (UWP) adalah aplikasi pengguna tunggal.

    Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
    
  • Di aplikasi multi-pengguna, gunakan metode GetForUser statis untuk mendapatkan objek StoreContext yang dapat Anda gunakan untuk mengakses data terkait Microsoft Store untuk pengguna tertentu yang masuk dengan akun Microsoft mereka saat menggunakan aplikasi. Contoh berikut mendapatkan objek StoreContext untuk pengguna pertama yang tersedia.

    var users = await Windows.System.User.FindAllAsync();
    Windows.Services.Store.StoreContext context = StoreContext.GetForUser(users[0]);
    

Catatan

Aplikasi desktop Windows yang menggunakan Desktop Bridge harus melakukan langkah tambahan untuk mengonfigurasi objek StoreContext sebelum dapat menggunakan objek ini. Untuk informasi selengkapnya, lihat bagian ini.

Setelah Anda memiliki objek StoreContext , Anda dapat mulai memanggil metode objek ini untuk mendapatkan info produk Store untuk aplikasi saat ini dan add-on-nya, mengambil info lisensi untuk aplikasi saat ini dan add-on-nya, membeli aplikasi atau add-on untuk pengguna saat ini, dan melakukan tugas lain. Untuk informasi selengkapnya tentang tugas umum yang bisa Anda lakukan menggunakan objek ini, lihat artikel berikut ini:

Untuk contoh aplikasi yang menunjukkan cara menggunakan StoreContext dan jenis lainnya di namespace Windows.Services.Store , lihat sampel Store.

Menerapkan pembelian dalam aplikasi

Untuk menawarkan pembelian dalam aplikasi kepada pelanggan di aplikasi Anda menggunakan namespace Windows.Services.Store :

  1. Jika aplikasi Anda menawarkan add-on yang dapat dibeli pelanggan, buat pengiriman add-on untuk aplikasi Anda di Pusat Mitra .

  2. Tulis kode di aplikasi Anda untuk mengambil info produk untuk aplikasi atau add-on yang ditawarkan oleh aplikasi Anda lalu tentukan apakah lisensi aktif (yaitu, apakah pengguna memiliki lisensi untuk menggunakan aplikasi atau add-on). Jika lisensi tidak aktif, tampilkan UI yang menawarkan aplikasi atau add-on untuk dijual kepada pengguna sebagai pembelian dalam aplikasi.

  3. Jika pengguna memilih untuk membeli aplikasi atau add-on Anda, gunakan metode yang sesuai untuk membeli produk:

  4. Uji implementasi Anda dengan mengikuti panduan pengujian dalam artikel ini.

Menerapkan fungsionalitas uji coba

Untuk mengecualikan atau membatasi fitur dalam versi uji coba aplikasi Anda menggunakan namespace Windows.Services.Store :

  1. Konfigurasikan aplikasi Anda sebagai uji coba gratis di Pusat Mitra.

  2. Tulis kode di aplikasi Anda untuk mengambil info produk untuk aplikasi Anda atau add-on yang ditawarkan oleh aplikasi Anda lalu tentukan apakah lisensi yang terkait dengan aplikasi adalah lisensi uji coba.

  3. Kecualikan atau batasi fitur tertentu di aplikasi Anda jika merupakan uji coba, lalu aktifkan fitur saat pengguna membeli lisensi penuh. Untuk informasi selengkapnya dan contoh kode, lihat Menerapkan versi percobaan aplikasi Anda.

  4. Uji implementasi Anda dengan mengikuti panduan pengujian dalam artikel ini.

Menguji implementasi pembelian atau uji coba dalam aplikasi Anda

Jika aplikasi Anda menggunakan API di namespace Windows.Services.Store untuk menerapkan fungsionalitas pembelian atau uji coba dalam aplikasi, Anda harus menerbitkan aplikasi ke Store dan mengunduh aplikasi ke perangkat pengembangan Anda untuk menggunakan lisensinya untuk pengujian. Ikuti proses ini untuk menguji kode Anda:

  1. Jika aplikasi Anda belum dipublikasikan dan tersedia di Store, pastikan aplikasi Anda memenuhi persyaratan Kit Sertifikasi Aplikasi Windows minimum, kirimkan aplikasi Anda di Pusat Mitra, dan pastikan aplikasi Anda melewati proses sertifikasi. Anda dapat mengonfigurasi aplikasi agar tidak dapat ditemukan di Store saat mengujinya. Harap perhatikan konfigurasi penerbangan paket yang tepat. Penerbangan paket yang salah dikonfigurasi mungkin tidak dapat diunduh.

  2. Selanjutnya, pastikan Anda telah menyelesaikan hal berikut:

  3. Dengan proyek Anda terbuka di Visual Studio, klik menu Proyek, arahkan ke Simpan, lalu klik Kaitkan Aplikasi dengan Toko. Selesaikan instruksi dalam wizard untuk mengaitkan proyek aplikasi dengan aplikasi di akun Pusat Mitra yang ingin Anda gunakan untuk pengujian.

    Catatan

    Jika Anda tidak mengaitkan proyek Anda dengan aplikasi di Store, metode StoreContext mengatur properti ExtendedError dari nilai pengembaliannya ke nilai kode kesalahan 0x803F6107. Nilai ini menunjukkan bahwa Store tidak memiliki pengetahuan tentang aplikasi.

  4. Jika Anda belum melakukannya, instal aplikasi dari Store yang Anda tentukan di langkah sebelumnya, jalankan aplikasi sekali, lalu tutup aplikasi ini. Ini memastikan bahwa lisensi yang valid untuk aplikasi diinstal ke perangkat pengembangan Anda.

  5. Di Visual Studio, mulai jalankan atau debug proyek Anda. Kode Anda harus mengambil aplikasi dan data add-on dari aplikasi Store yang Anda kaitkan dengan proyek lokal Anda. Jika Anda diminta untuk menginstal ulang aplikasi, ikuti instruksi lalu jalankan atau debug proyek Anda.

    Catatan

    Setelah menyelesaikan langkah-langkah ini, Anda dapat terus memperbarui kode aplikasi lalu men-debug proyek yang diperbarui di komputer pengembangan tanpa mengirimkan paket aplikasi baru ke Store. Anda hanya perlu mengunduh versi Store aplikasi Anda ke komputer pengembangan Anda sekali untuk mendapatkan lisensi lokal yang akan digunakan untuk pengujian. Anda hanya perlu mengirimkan paket aplikasi baru ke Store setelah menyelesaikan pengujian dan ingin melakukan pembelian dalam aplikasi atau fitur terkait uji coba di aplikasi Anda yang tersedia untuk pelanggan Anda.

Jika aplikasi Anda menggunakan namespace Windows.ApplicationModel.Store , Anda dapat menggunakan kelas CurrentAppSimulator di aplikasi untuk mensimulasikan info lisensi selama pengujian sebelum mengirimkan aplikasi ke Store. Untuk informasi selengkapnya, lihat Mulai menggunakan kelas CurrentApp dan CurrentAppSimulator.

Catatan

Namespace Windows.Services.Store tidak menyediakan kelas yang dapat Anda gunakan untuk mensimulasikan info lisensi selama pengujian. Jika Anda menggunakan namespace Windows.Services.Store untuk menerapkan pembelian atau uji coba dalam aplikasi, Anda harus menerbitkan aplikasi ke Store dan mengunduh aplikasi ke perangkat pengembangan Anda untuk menggunakan lisensinya untuk pengujian seperti yang dijelaskan di atas.

Tanda terima untuk pembelian dalam aplikasi

Namespace Windows.Services.Store tidak menyediakan API yang dapat Anda gunakan untuk mendapatkan tanda terima transaksi untuk pembelian yang berhasil dalam kode aplikasi Anda. Ini adalah pengalaman yang berbeda dari aplikasi yang menggunakan namespace Windows.ApplicationModel.Store , yang dapat menggunakan API sisi klien untuk mengambil tanda terima transaksi.

Jika Anda menerapkan pembelian dalam aplikasi menggunakan namespace Windows.Services.Store dan ingin memvalidasi apakah pelanggan tertentu telah membeli aplikasi atau add-on, Anda dapat menggunakan kueri untuk metode produk di REST API koleksi Microsoft Store. Data pengembalian untuk metode ini mengonfirmasi apakah pelanggan yang ditentukan memiliki pemberian izin untuk produk tertentu, dan menyediakan data untuk transaksi tempat pengguna memperoleh produk. API koleksi Microsoft Store menggunakan autentikasi Microsoft Azure AD untuk mengambil informasi ini.

Menggunakan kelas StoreContext dengan Desktop Bridge

Aplikasi desktop yang menggunakan Desktop Bridge dapat menggunakan kelas StoreContext untuk menerapkan pembelian dan uji coba dalam aplikasi. Namun, jika Anda memiliki aplikasi desktop Win32 atau aplikasi desktop yang memiliki handel jendela (HWND) yang terkait dengan kerangka kerja penyajian (seperti WPF atau aplikasi SDK Aplikasi Windows), aplikasi Anda harus mengonfigurasi objek StoreContext untuk menentukan jendela aplikasi mana yang merupakan jendela pemilik untuk dialog modal yang ditampilkan oleh objek.

Banyak anggota StoreContext (dan anggota jenis terkait lainnya yang diakses melalui objek StoreContext ) menampilkan dialog modal kepada pengguna untuk operasi terkait Store seperti membeli produk. Jika aplikasi desktop tidak mengonfigurasi objek StoreContext untuk menentukan jendela pemilik untuk dialog modal, objek ini akan mengembalikan data atau kesalahan yang tidak akurat.

Untuk mengonfigurasi objek StoreContext di aplikasi desktop yang menggunakan Desktop Bridge, ikuti langkah-langkah ini.

Untuk .NET 6 atau yang lebih baru

Jika aplikasi Anda ditulis dalam C# dengan .NET 6 atau yang lebih baru, ikuti langkah-langkah ini.

  1. Pastikan bahwa TargetFramework properti dalam file proyek diatur ke versi Windows SDK tertentu untuk mengakses WINDOWS Runtime API, yang menyediakan akses ke namespace WinRT.Interop . Contohnya:

    <PropertyGroup>
      <!-- You can also target other versions of the Windows SDK and .NET, e.g. "net6.0-windows10.0.19041.0" -->
      <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
    </PropertyGroup>
    
  2. Dapatkan objek StoreContext dengan menggunakan metode GetDefault (atau GetForUser jika aplikasi Anda adalah aplikasi multi-pengguna) seperti yang dijelaskan sebelumnya dalam artikel ini). Untuk menginisialisasi dialog dengan handel jendela yang ditentukan, gunakan metode WinRT.Interop.WindowNative.GetWindowHandle dan WinRT.Interop.InitializeWithWindow.Initialize (lihat Mengambil handel jendela (HWND) dan Menampilkan objek UI WinRT yang bergantung pada CoreWindow).

    StoreContext context = StoreContext.GetDefault();
    // Obtain window handle by passing in pointer to the window object
    var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(windowObject);
    // Initialize the dialog using wrapper funcion for IInitializeWithWindow
    WinRT.Interop.InitializeWithWindow.Initialize(context, hwnd); 
    

Untuk versi .NET atau C++ yang lebih lama

Jika aplikasi Anda ditulis dengan versi .NET yang lebih lama atau di C++, ikuti langkah-langkah ini.

  1. Lakukan salah satu hal berikut untuk mengaktifkan aplikasi Anda untuk mengakses antarmuka IInitializeWithWindow :

    • Jika aplikasi Anda ditulis dalam bahasa terkelola seperti C# atau Visual Basic (sebelum .NET 6), maka deklarasikan antarmuka IInitializeWithWindow dalam kode aplikasi Anda dengan atribut ComImport seperti yang ditunjukkan dalam contoh C# berikut. Contoh ini mengasumsikan bahwa file kode Anda memiliki pernyataan penggunaan untuk namespace System.Runtime.InteropServices .

      [ComImport]
      [Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
      [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
      public interface IInitializeWithWindow
      {
          void Initialize(IntPtr hwnd);
      }
      
    • Jika aplikasi Anda ditulis dalam C++, tambahkan referensi ke shobjidl.h file header dalam kode Anda. File header ini berisi deklarasi antarmuka IInitializeWithWindow .

  2. Dapatkan objek StoreContext dengan menggunakan metode GetDefault (atau GetForUser jika aplikasi Anda adalah aplikasi multi-pengguna) seperti yang dijelaskan sebelumnya dalam artikel ini, dan transmisikan objek ini ke objek IInitializeWithWindow. Kemudian, panggil metode IInitializeWithWindow.Initialize, dan lewati handel jendela yang ingin Anda jadikan pemilik untuk dialog modal apa pun yang ditunjukkan oleh metode StoreContext . Contoh C# berikut menunjukkan cara meneruskan handel jendela utama aplikasi Anda ke metode . Lihat juga Mengambil handel jendela (HWND) dan Menampilkan objek UI WinRT yang bergantung pada CoreWindow.

    StoreContext context = StoreContext.GetDefault();
    IInitializeWithWindow initWindow = (IInitializeWithWindow)(object)context;
    initWindow.Initialize(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
    

Produk, SKU, dan ketersediaan

Setiap produk di Toko memiliki setidaknya satu SKU, dan setiap SKU memiliki setidaknya satu ketersediaan. Konsep-konsep ini diabstraksi jauh dari sebagian besar pengembang di Pusat Mitra, dan sebagian besar pengembang tidak akan pernah menentukan SKU atau ketersediaan untuk aplikasi atau add-on mereka. Namun, karena model objek untuk produk Store di namespace Windows.Services.Store mencakup SKU dan ketersediaan, pemahaman dasar tentang konsep ini dapat membantu untuk beberapa skenario.

Objek Deskripsi
Produk Produk mengacu pada semua jenis produk yang tersedia di Toko, termasuk aplikasi atau add-on.

Setiap produk di Toko memiliki objek StoreProduct yang sesuai. Kelas ini menyediakan properti yang dapat Anda gunakan untuk mengakses data seperti ID Penyimpanan produk, gambar dan video untuk daftar Toko, dan info harga. Ini juga menyediakan metode yang dapat Anda gunakan untuk membeli produk.
SKU SKU adalah versi tertentu dari produk dengan deskripsi, harga, dan detail produk unik lainnya sendiri. Setiap aplikasi atau add-on memiliki SKU default. Satu-satunya waktu sebagian besar pengembang akan memiliki beberapa SKU untuk aplikasi adalah jika mereka menerbitkan versi lengkap aplikasi mereka dan versi uji coba (di katalog Store, masing-masing versi ini adalah SKU yang berbeda dari aplikasi yang sama).

Beberapa penerbit memiliki kemampuan untuk menentukan SKU mereka sendiri. Misalnya, penerbit game besar mungkin merilis game dengan satu SKU yang menunjukkan darah hijau di pasar yang tidak memungkinkan darah merah dan SKU berbeda yang menunjukkan darah merah di semua pasar lain. Atau, penerbit yang menjual konten video digital mungkin menerbitkan dua SKU untuk video, satu SKU untuk versi definisi tinggi dan SKU yang berbeda untuk versi definisi standar.

Setiap SKU di Store memiliki objek StoreSku yang sesuai. Setiap StoreProduct memiliki properti Skus yang dapat Anda gunakan untuk mengakses SKU untuk produk.
Ketersediaan Ketersediaan adalah versi tertentu dari SKU dengan info harga uniknya sendiri. Setiap SKU memiliki ketersediaan default. Beberapa penerbit memiliki kemampuan untuk menentukan ketersediaan mereka sendiri untuk memperkenalkan opsi harga yang berbeda untuk SKU tertentu.

Setiap ketersediaan di Store memiliki objek StoreAvailability yang sesuai. Setiap StoreSku memiliki properti Availabilities yang dapat Anda gunakan untuk mengakses ketersediaan untuk SKU. Untuk sebagian besar pengembang, setiap SKU memiliki satu ketersediaan default.

ID Penyimpanan

Setiap aplikasi, add-on, atau produk lain di Toko memiliki ID Toko terkait (ini juga kadang-kadang disebut ID Penyimpanan produk). Banyak API memerlukan ID Toko untuk melakukan operasi pada aplikasi atau add-on.

ID Penyimpanan produk apa pun di Toko adalah string alfa-numerik 12 karakter, seperti 9NBLGGH4R315. Ada beberapa cara berbeda untuk mendapatkan ID Toko untuk produk di Toko:

  • Untuk aplikasi, Anda bisa mendapatkan ID Toko di halaman Identitas aplikasi di Pusat Mitra.
  • Untuk add-on, Anda bisa mendapatkan ID Toko di halaman gambaran umum add-on di Pusat Mitra.
  • Untuk produk apa pun, Anda juga bisa mendapatkan ID Toko secara terprogram dengan menggunakan properti StoreId dari objek StoreProduct yang mewakili produk.

Untuk produk dengan SKU dan ketersediaan, SKU dan ketersediaan juga memiliki ID Toko mereka sendiri dengan format yang berbeda.

Objek Format ID Penyimpanan
SKU ID Penyimpanan untuk SKU memiliki format <product Store ID>/xxxx, di mana xxxx adalah string alfa-numerik 4 karakter yang mengidentifikasi SKU untuk produk. Contohnya, 9NBLGGH4R315/000N. ID ini dikembalikan oleh properti StoreId dari objek StoreSku , dan terkadang disebut ID Penyimpanan SKU.
Ketersediaan ID Penyimpanan untuk ketersediaan memiliki format <product Store ID>/xxxx/yyyyyyyyyyyy, di mana xxxx adalah string alfa-numerik 4 karakter yang mengidentifikasi SKU untuk produk dan yyyyyyyyyyyy merupakan string alfa-numerik 12 karakter yang mengidentifikasi ketersediaan untuk SKU. Contohnya, 9NBLGGH4R315/000N/4KW6QZD2VN6X. ID ini dikembalikan oleh properti StoreId dari objek StoreAvailability , dan terkadang disebut ID Penyimpanan ketersediaan.

Cara menggunakan ID produk untuk add-on dalam kode Anda

Jika ingin membuat add-on tersedia untuk pelanggan dalam konteks aplikasi, Anda harus memasukkan ID produk unik untuk add-on saat membuat pengiriman add-on di Pusat Mitra. Anda dapat menggunakan ID produk ini untuk merujuk ke add-on dalam kode Anda, meskipun skenario tertentu di mana Anda dapat menggunakan ID produk bergantung pada namespace layanan mana yang Anda gunakan untuk pembelian dalam aplikasi di aplikasi Anda.

Catatan

ID produk yang Anda masukkan di Pusat Mitra untuk add-on berbeda dari ID Toko add-on. ID Penyimpanan dihasilkan oleh Pusat Mitra.

Aplikasi yang menggunakan namespace Windows.Services.Store

Jika aplikasi Anda menggunakan namespace Windows.Services.Store , Anda dapat menggunakan ID produk untuk dengan mudah mengidentifikasi StoreProduct yang mewakili add-on Anda atau StoreLicense yang mewakili lisensi add-on Anda. ID produk diekspos oleh properti StoreProduct.InAppOfferToken dan StoreLicense.InAppOfferToken .

Catatan

Meskipun ID produk adalah cara yang berguna untuk mengidentifikasi add-on dalam kode Anda, sebagian besar operasi di namespace Windows.Services.Store menggunakan ID Toko add-on alih-alih ID produk. Misalnya, untuk secara terprogram mengambil satu atau beberapa add-on yang diketahui untuk aplikasi, teruskan ID Penyimpanan (bukan ID produk) add-on ke metode GetStoreProductsAsync . Demikian pula, untuk melaporkan add-on yang dapat dikonsumsi seperti yang terpenuhi, teruskan ID Toko add-on (bukan ID produk) ke metode ReportConsumableFulfillmentAsync .

Aplikasi yang menggunakan namespace Windows.ApplicationModel.Store

Jika aplikasi Anda menggunakan namespace Windows.ApplicationModel.Store , Anda harus menggunakan ID produk yang Anda tetapkan ke add-on di Pusat Mitra untuk sebagian besar operasi. Contohnya: