UWP IAP:此应用内购买商品已不再可用

Shu*_*hue 9 windows windows-store-apps windows-10 uwp

我在商店中使用产品ID "捐赠" 创建了一个新的IAP .然后我在应用程序中向此IAP发出请求,这里是代码:

var purchaseResults = await CurrentApp.RequestProductPurchaseAsync("Donate");
Run Code Online (Sandbox Code Playgroud)

但是,当我在我的Windows应用程序中调用该函数时,会显示一条错误消息对话框:

选择其他项目:我的应用程序名称中不再提供此应用内购买项目

我试着打电话var listingInfo = await CurrentApp.LoadListingInformationAsync();var productListings = listingInfo.ProductListings;似乎列表中没有产品.

这会怎么样?谢谢!

WPI*_*nfo 0

如果您正在基于Windows SDK 14393(或更高版本)构建应用程序,我强烈推荐StoreContext类而不是CurrentApp,StoreContext更方便地实现IAP操作,并且也易于调试。

对于您的情况,您可以使用如下购买 api:

private readonly StoreContext context = StoreContext.GetDefault();

// you can get the StoreId of Iap product from your dashboard of Windows Dev Center
var result = await context.RequestPurchaseAsync(product.StoreId);
if (result.Status == StorePurchaseStatus.Succeeded)
{
    // successfully purchased
}
else if (result.Status == StorePurchaseStatus.AlreadyPurchased)
{
    // purchased already
}
else if (result.Status == StorePurchaseStatus.NotPurchased)
{
    // purchase progress cancelled by user
}
else if (result.Status == StorePurchaseStatus.ServerError || result.Status == StorePurchaseStatus.NetworkError)
{
    // error occured
}
Run Code Online (Sandbox Code Playgroud)

您还可以这样列出您的 IAP 产品:

var result = await context.GetAssociatedStoreProductsAsync(new string[] { "Durable" });
if (result.ExtendedError != null)
{
    // error
}
else
{
    // list all durable iap product
    var products = result.Products.Values;
}
Run Code Online (Sandbox Code Playgroud)