lib_unity_purchase/Runtime/WinRT/CurrentApp.cs

96 lines
4.7 KiB
C#
Raw Normal View History

2024-01-29 18:49:33 +08:00
using System;
using System.Collections.Generic;
using Windows.ApplicationModel.Store;
using Windows.Foundation;
namespace UnityEngine.Purchasing.Default
{
/// <summary>
/// Wrapper class for the Windows Store API CurrentApp class.
/// </summary>
public class CurrentApp : ICurrentApp
{
/// <summary>
/// Returns a list of purchased consumable in-app products that have not been reported to the Microsoft Store as fulfilled..
/// </summary>
/// <returns> The list of purchased consumable products that have not been reported as fulfilled. </returns>
public IAsyncOperation<IReadOnlyList<UnfulfilledConsumable>> GetUnfulfilledConsumablesAsync()
{
return global::Windows.ApplicationModel.Store.CurrentApp.GetUnfulfilledConsumablesAsync();
}
/// <summary>
/// Loads the app's listing information asynchronously.
/// Additionally, the listing information for available in-app products is also provided.
/// </summary>
/// <returns> The ListingInformation that contains info (ex: name, price) specific to the market the user currently resides in. </returns>
public IAsyncOperation<ListingInformation> LoadListingInformationAsync()
{
return global::Windows.ApplicationModel.Store.CurrentApp.LoadListingInformationAsync();
}
/// <summary>
/// Notifies the Microsoft Store that the purchase of a consumable add-on (also called an in-app product or IAP)
/// is fulfilled and that the user has the right to access the content.
/// </summary>
/// <param name="productId"> The product ID of the consumable add-on to report as fulfilled. </param>
/// <param name="transactionId"> The transaction ID for the purchase of the consumable add-on. </param>
/// <returns> An async operation for a <c>FulfillmentResult</c> value that indicates the status for the consumable add-on.</returns>
public IAsyncOperation<FulfillmentResult> ReportConsumableFulfillmentAsync(string productId, Guid transactionId)
{
return global::Windows.ApplicationModel.Store.CurrentApp.ReportConsumableFulfillmentAsync(productId, transactionId);
}
/// <summary>
/// Requests the purchase of an add-on (also called an in-app product or IAP).
/// Additionally, calling this method displays the UI that is used to complete the transaction via the Microsoft Store.
/// </summary>
/// <param name="productId"> The product ID of the add-on to purchase. </param>
/// <returns> An async operation for a <c>PurchaseResults</c> containing the results of the product purchase request.</returns>
public IAsyncOperation<PurchaseResults> RequestProductPurchaseAsync(string productId)
{
return global::Windows.ApplicationModel.Store.CurrentApp.RequestProductPurchaseAsync(productId);
}
/// <summary>
/// Requests the purchase of an add-on (also called an in-app product or IAP).
/// Additionally, calling this method displays the UI that is used to complete the transaction via the Microsoft Store.
/// </summary>
/// <param name="productId"> The product ID of the add-on to purchase. </param>
/// <returns> An async operation for a string providing in-app transaction details for the provided productId. </returns>
public IAsyncOperation<string> RequestProductReceiptAsync(string productId)
{
return global::Windows.ApplicationModel.Store.CurrentApp.GetProductReceiptAsync(productId);
}
/// <summary>
/// Read access to the current app's license metadata.
/// </summary>
public LicenseInformation LicenseInformation
{
get
{
return global::Windows.ApplicationModel.Store.CurrentApp.LicenseInformation;
}
}
/// <summary>
/// Requests all receipts for the purchase of the app and any in-app products.
/// </summary>
/// <returns> An async operation for an XML-formatted string containing all receipt information for the purchases of the app and of its products.. </returns>
public IAsyncOperation<string> RequestAppReceiptAsync()
{
return global::Windows.ApplicationModel.Store.CurrentApp.GetAppReceiptAsync();
}
/// <summary>
/// Dummy function implementing the building of Mock Products.
/// </summary>
/// <param name="products"> The list of product descriptions. </param>
public void BuildMockProducts(List<WinProductDescription> products)
{
// Only implemented by the mock store.
}
}
}