Anda harus memberikan implementasi antarmuka IStoreListener
yang digunakan Unity IAPUnity In App Purchase
Lihat di Glossary untuk menginformasikan penerapan acara terkait pembelian.
Hubungi metode UnityPurchasing.Initialize
untuk memulai proses awalisasi, memasok implementasi dan konfigurasi pendengar Anda.
Perhatikan bahwa awalisasi tidak akan gagal jika jaringan tidak tersedia; Unity IAP akan terus mencoba untuk menginisialisasikan di latar belakang. Awalisasi hanya akan gagal jika Unity IAP menemukan masalah yang tidak dapat dipulihkan seperti kesalahan konfigurasi atau IAP dinonaktifkan dalam pengaturan perangkat.
Sering Unity IAP dapat mengambil periode arbitrase waktu untuk menginisialisasi; tak terbatas jika pengguna dalam mode pesawat. Anda harus merancang toko Anda sesuai dengan mencegah pengguna dari mencoba untuk melakukan pembelian jika awalisasi belum selesai berhasil.
using UnityEngine;
using UnityEngine.Purchasing;
public class MyIAPManager : IStoreListener {
private IStoreController controller;
private IExtensionProvider extensions;
public MyIAPManager () {
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
builder.AddProduct("100_gold_coins", ProductType.Consumable, new IDs
{
{"100_gold_coins_google", GooglePlay.Name},
{"100_gold_coins_mac", MacAppStore.Name}
});
UnityPurchasing.Initialize (this, builder);
}
/// <summary>
/// Called when Unity IAP is ready to make purchases.
/// </summary>
public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
{
this.controller = controller;
this.extensions = extensions;
}
/// <summary>
/// Called when Unity IAP encounters an unrecoverable initialization error.
///
/// Note that this will not be called if Internet is unavailable; Unity IAP
/// will attempt initialization until it becomes available.
/// </summary>
public void OnInitializeFailed (InitializationFailureReason error)
{
}
/// <summary>
/// Called when a purchase completes.
///
/// May be called at any time after OnInitialized().
/// </summary>
public PurchaseProcessingResult ProcessPurchase (PurchaseEventArgs e)
{
return PurchaseProcessingResult.Complete;
}
/// <summary>
/// Called when a purchase fails.
/// </summary>
public void OnPurchaseFailed (Product i, PurchaseFailureReason p)
{
}
}