當使用StoreContext.RequestPurchaseAsync()從WPF桌面應用程序執行應用程序內購買時,Windows.services.Store命名空間帶有擴展錯誤消息的StorePurchaseResult 「值不在預期的範圍內。」Windows應用商店購買問題「價值不符合預期範圍」
我們的應用程序已發佈並可從Windows應用商店下載。
它使用DesktopAppConverter工具轉換。我們根據Store(Identity Name,Publisher ...)中的描述設置manifest.appx。
我們按照下面提供的說明,使用C#從使用桌面橋接器的Windows桌面應用程序的UI線程中進行應用內購買。
https://docs.microsoft.com/en-us/windows/uwp/monetize/in-app-purchases-and-trials https://docs.microsoft.com/en-us/windows/uwp/monetize/enable-in-app-purchases-of-apps-and-add-ons
在我們的應用程序的代碼,我們聲明IInitializeWithWindow接口:
[ComImport]
[Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IInitializeWithWindow
{
void Initialize(IntPtr hwnd);
}
然後,當我們的應用程序啓動時,我們得到了StoreContext(存儲到storeContext_屬性),使用單用戶方式:
// Init the store context
storeContext_ = StoreContext.GetDefault();
IInitializeWithWindow initWindow = (IInitializeWithWindow)(object)storeContext_;
initWindow.Initialize(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
在此之後,我們設法檢索S toreLicense(存儲到storeLicense_屬性),並列出相關的店內產品沒有任何錯誤
// Get the current user license
storeLicense_ = await storeContext_.GetAppLicenseAsync();
if (storeLicense_ == null)
{
MessageBox.Show("An error occurred while retrieving the license.", "StoreLicenseApp Error");
return;
}
// Create a filtered list of the product AddOns I care about
string[] filterList = new string[] { "Durable" };
// Get list of Add Ons this app can sell, filtering for the types we know about
StoreProductQueryResult addOns = await storeContext_.GetAssociatedStoreProductsAsync(filterList);
if (addOns.ExtendedError != null)
{
MessageBox.Show("Impossible to retreive the list of the products on the store.\n" + addOns.ExtendedError.Message,
"Get Associated Store Products Error");
}
一旦產品的店鋪ID是從商店retreived,我們等待用戶點擊購買按鈕調用下面的回調。
private async void PurchaseButton_Clicked(object sender, RoutedEventArgs e)
{
StorePurchaseResult result = await storeContext_.RequestPurchaseAsync(selectedStoreId);
// Capture the error message for the operation, if any.
string extendedError = string.Empty;
if (result.ExtendedError != null)
{
extendedError = result.ExtendedError.Message;
}
[...]
}
RequestPurchaseAsync()
返回一個錯誤,而不是顯示用於購買產品的Metro接口。 這裏是擴展錯誤返回:
消息=「價值不在預期的範圍內」。
的HResult = -2147024809
如何解決這個問題的任何線索?
就根據此錯誤信息,我們不能查找原因爲發生故障的請求。如果可能,你能否提供你提供的產品ID(對於父應用程序和IAP產品)? –
嗨Mattew,這裏是父應用程序一個9NFMR9KZRHTV和IAP是9PHL59JKBHNC – jarne
您可以運行** WSCOLLECT **並提供商店日誌嗎? –