トップ回答者
UWP。アドオンを購入しようとしたらエラーになる。

質問
-
UWPアプリのアドオンを作成し、RequestPurchaseAsyncを実行したところ、
ExtendedError = {System.Exception: Exception from HRESULT: 0x803F6108}
というエラーになり、「購入は完了しませんでした(ユーザーが購入をキャンセルした可能性があります)」となって購入ができませんでした。問題のルーチンは下記の通りです。
public static async Task<StorePurchaseResult> RequestPurchase(string storeId, ProgressRing ringobj, TextBlock textBlock) { //https://docs.microsoft.com/ja-jp/windows/uwp/monetize/enable-in-app-purchases-of-apps-and-add-ons if (context == null) { context = StoreContext.GetDefault(); // If your app is a desktop app that uses the Desktop Bridge, you // may need additional code to configure the StoreContext object. // For more info, see https://aka.ms/storecontext-for-desktop. } //アプリストアの商品詳細を取得する //これには数分かかる場合がありますので、操作中にProgressRingを表示してください。 if (ringobj != null) { ringobj.IsActive = true; } StorePurchaseResult result = await context.RequestPurchaseAsync(storeId); if (ringobj != null) { ringobj.IsActive = false; } //操作のエラー・メッセージがあれば、それをキャプチャーします。 string extendedError = string.Empty; if (result.ExtendedError != null) { extendedError = result.ExtendedError.Message; } //返り値を決定 string messagetext = ""; try { switch (result.Status) { case StorePurchaseStatus.AlreadyPurchased: messagetext = "ユーザーはすでに製品を購入しています。"; return result; case StorePurchaseStatus.Succeeded: messagetext = "購入は成功しました。"; return result; case StorePurchaseStatus.NotPurchased: messagetext = "購入は完了しませんでした" + "(ユーザーが購入をキャンセルした可能性があります)" + "\r\n" + extendedError; return result; case StorePurchaseStatus.NetworkError: messagetext = "購入がネットワークエラーのために失敗。" + "\r\n" + "(" + extendedError + ")"; return result; case StorePurchaseStatus.ServerError: messagetext = "購入がサーバエラーのために失敗。" + "\r\n" + "(" + extendedError + ")"; return result; default: messagetext = "購入が不明なエラーのために失敗。" + "\r\n" + "(" + extendedError + ")"; return result; } } catch (Exception err) { messagetext = err.Message; return null; } finally { if (textBlock != null) { textBlock.Text = messagetext; } }
storeIDに購入したいアドオンのストアID(9MVLMZ*****。*は伏字)を代入して実行したところ、途中の
StorePurchaseResult result = await context.RequestPurchaseAsync(storeId);
部分のresultに代入された値が、{System.Exception: Exception from HRESULT: 0x803F6108}というエラーになりました。
回答
-
ナノレスさん、こんにちは。フォーラムオペレーターのHarukaです。
ご返信頂きありがとうございます。
一般的には問題ありません。
エラーが発生した場合は、分析のために詳細情報をここに投稿してください。どうぞよろしくお願いします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~- 回答としてマーク ナノレス 2019年3月2日 11:29
すべての返信
-
ナノレスさん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
エラー0x803F6108は、
「アプリケーションのライセンスに、ストア操作の実行に必要な情報が不足しています。
アプリケーションをサイドロードした場合は、まずアプリケーションをアンインストールしてから、ストアからダウンロードし、
アプリケーションに関連付けられているストアライセンスを取得してください。」
という意味です。
によって、この問題はライセンスに関連しています。
こちらからもいくつかの質問がありますが、ご回答いただけますでしょうか。
1.アプリをどのようにテストしましたか。
2.プロジェクトをストアにアップロードしましたか。
3.どれくらいストアにアップロードされましたか。3日になりましたか。どうぞよろしくお願いします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~ -
ナノレスさん、こんにちは。フォーラムオペレーターのHarukaです。
ご返信頂きありがとうございます。
一般的には問題ありません。
エラーが発生した場合は、分析のために詳細情報をここに投稿してください。どうぞよろしくお願いします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~- 回答としてマーク ナノレス 2019年3月2日 11:29