Симуляция покупки в приложении для приложения Win 8 C#
Я пытался реализовать тест на покупку приложения в симуляторе, но все тщетно. Пример магазина работает, но когда я пытаюсь реализовать подобное поведение в своем приложении, он как-то не имитирует, как я хочу. У меня есть страница настроек и страница всех заметок, которые мне нужно сделать в качестве премиальной функции. Приложение по умолчанию бесплатно.
Это мой XML-файл. Я создал как тот, который находится в примере приложения. Нужно ли мне, так как мое приложение бесплатно по умолчанию?
<?xml version="1.0" encoding="utf-8" ?>
<CurrentApp>
<LicenseInformation>
<App>
<IsActive>true</IsActive>
<IsTrial>false</IsTrial>
</App>
<Product ProductId="Settings">
<IsActive>true</IsActive>
</Product>
<Product ProductId="AllNotes">
<IsActive>false</IsActive>
</Product>
</LicenseInformation>
</CurrentApp>
Остальная часть кода написана в функции OnNavigatedTo на странице настроек.
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
StorageFolder proxyDataFolder = await Package.Current.InstalledLocation.GetFolderAsync("Data");
StorageFile proxyFile = await proxyDataFolder.GetFileAsync("in-app-purchase.xml");
LicenseInformation licenseInformation = CurrentAppSimulator.LicenseInformation;
var productLicense = licenseInformation.ProductLicenses["Settings"];
if (!productLicense.IsActive)
{
var messageDialog = new MessageDialog("You need to buy the Settings option", "Buy");
messageDialog.Commands.Add(new UICommand("Buy", null, 0));
var commandChosen = await messageDialog.ShowAsync();
if ((int)commandChosen.Id == 0)
{
await CurrentAppSimulator.RequestProductPurchaseAsync("Settings", true);
if (licenseInformation.ProductLicenses["Settings"].IsActive)
{
InitializeUI();
}
}
}
}
Так что даже когда я пытаюсь купить товар, жду
CurrentAppSimulator.RequestProductPurchaseAsync("Settings", true);
значение все еще ложно. Что-то, чего мне не хватает?
2 ответа
Вы забыли загрузить proxyFile в CurrentAppSimulator.
await CurrentAppSimulator.ReloadSimulatorAsync(proxyFile);
Я не уверен, если это имеет значение, но я положил IsTrial == True
в моем XML. Но то, что я нашел, и что более важно, чтобы иметь возможность успешно покупать что-либо, вы должны сначала купить само приложение, позвонив
Windows.ApplicationModel.Store.CurrentAppSimulator.RequestAppPurchaseAsync()
Вам нужно сделать это только один раз во время сеанса, после покупки приложения вы можете купить любой продукт. Надеюсь это поможет.