Aktifkan pembelian aplikasi dan add-on dalam aplikasi

Artikel ini menunjukkan cara menggunakan anggota di ruang nama Windows.Services.Store untuk meminta pembelian aplikasi saat ini atau salah satu add-on untuk pengguna. Misalnya, jika pengguna saat ini memiliki versi uji coba aplikasi, Anda dapat menggunakan proses ini untuk membeli lisensi penuh bagi pengguna. Atau, Anda dapat menggunakan proses ini untuk membeli add-on, seperti level game baru untuk pengguna.

Untuk meminta pembelian aplikasi atau add-on, ruang nama Windows.Services.Store menyediakan beberapa metode berbeda:

Setiap metode menyajikan UI pembelian standar kepada pengguna dan kemudian diselesaikan secara asinkron setelah transaksi selesai. Metode ini mengembalikan objek yang menunjukkan apakah transaksi berhasil.

Catatan

Namespace Windows.Services.Store diperkenalkan pada Windows 10, versi 1607, dan hanya dapat digunakan dalam proyek yang menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis di Visual Studio. Jika aplikasi Anda menargetkan versi Windows 10 yang lebih lama, Anda harus menggunakan ruang nama Windows.ApplicationModel.Store alih-alih ruang nama Windows.Services.Store. Untuk informasi selengkapnya, lihat artikel ini.

Prasyarat

Contoh ini memiliki prasyarat sebagai berikut:

  • Proyek Visual Studio untuk aplikasi Universal Windows Platform (UWP) yang menargetkan Windows 10 Anniversary Edition (10.0; Build 14393) atau rilis yang lebih baru.
  • Anda telah membuat pengajuan aplikasi di Pusat Mitra dan aplikasi ini dipublikasikan di Toko. Anda dapat mengonfigurasi aplikasi secara opsional sehingga tidak dapat ditemukan di Toko saat Anda mengujinya. Untuk informasi lebih lanjut, lihat panduan pengujian kami.
  • Jika anda ingin mengaktifkan pembelian dalam aplikasi untuk add-on untuk aplikasi, anda juga harus membuat add-on di Partner Center.

Kode dalam contoh ini mengasumsikan:

  • Kode berjalan dalam konteks Halaman yang berisi namaworkingProgressRing ProgressRing dan TextBlock bernama textBlock. Objek-objek ini digunakan untuk menunjukkan bahwa operasi asinkron terjadi dan untuk menampilkan pesan output, masing-masing.
  • File kode memiliki pernyataan penggunaan untuk ruang nama Windows.Services.Store.
  • Aplikasi ini adalah aplikasi pengguna tunggal yang hanya berjalan dalam konteks pengguna yang meluncurkan aplikasi. Untuk informasi selengkapnya, lihat Pembelian dan uji coba dalam aplikasi.

Catatan

Jika Anda memiliki aplikasi desktop yang menggunakan Jembatan Desktop, Anda mungkin perlu menambahkan kode tambahan yang tidak ditampilkan dalam contoh ini untuk mengonfigurasi objek StoreContext . Untuk informasi selengkapnya, lihat Menggunakan kelas StoreContext di aplikasi desktop yang menggunakan Jembatan Desktop.

Contoh kode

Contoh ini menunjukkan cara menggunakan metode RequestPurchaseAsync dari kelas StoreContext untuk membeli aplikasi atau add-on dengan ID Toko yang diketahui. Untuk aplikasi sampel lengkap, lihat sampel Simpan.

private StoreContext context = null;

public async void PurchaseAddOn(string storeId)
{
    if (context == null)
    {
        context = StoreContext.GetDefault();
        // If your app is a desktop app that uses the Desktop Bridge, you
        // may need additional code to configure the StoreContext object.
        // For more info, see https://aka.ms/storecontext-for-desktop.
    }

    workingProgressRing.IsActive = true;
    StorePurchaseResult result = await context.RequestPurchaseAsync(storeId);
    workingProgressRing.IsActive = false;

    // Capture the error message for the operation, if any.
    string extendedError = string.Empty;
    if (result.ExtendedError != null)
    {
        extendedError = result.ExtendedError.Message;
    }

    switch (result.Status)
    {
        case StorePurchaseStatus.AlreadyPurchased:
            textBlock.Text = "The user has already purchased the product.";
            break;

        case StorePurchaseStatus.Succeeded:
            textBlock.Text = "The purchase was successful.";
            break;

        case StorePurchaseStatus.NotPurchased:
            textBlock.Text = "The purchase did not complete. " +
                "The user may have cancelled the purchase. ExtendedError: " + extendedError;
            break;

        case StorePurchaseStatus.NetworkError:
            textBlock.Text = "The purchase was unsuccessful due to a network error. " +
                "ExtendedError: " + extendedError;
            break;

        case StorePurchaseStatus.ServerError:
            textBlock.Text = "The purchase was unsuccessful due to a server error. " +
                "ExtendedError: " + extendedError;
            break;

        default:
            textBlock.Text = "The purchase was unsuccessful due to an unknown error. " +
                "ExtendedError: " + extendedError;
            break;
    }
}

Video

Tonton video berikut untuk gambaran umum tentang cara menerapkan pembelian dalam aplikasi di aplikasi Anda.