none
UWP。アドオンを購入しようとしたらエラーになる。 RRS feed

  • 質問

  • 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}というエラーになりました。


    2019年1月23日 1:46

回答

  • ナノレスさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信頂きありがとうございます。

    一般的には問題ありません。 
    エラーが発生した場合は、分析のために詳細情報をここに投稿してください。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    • 回答としてマーク ナノレス 2019年3月2日 11:29
    2019年2月26日 8:49
    モデレータ

すべての返信

  • ナノレスさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    エラー0x803F6108は、
    「アプリケーションのライセンスに、ストア操作の実行に必要な情報が不足しています。 
    アプリケーションをサイドロードした場合は、まずアプリケーションをアンインストールしてから、ストアからダウンロードし、
    アプリケーションに関連付けられているストアライセンスを取得してください。」
    という意味です。
    によって、この問題はライセンスに関連しています。

    こちらからもいくつかの質問がありますが、ご回答いただけますでしょうか。 
    1.アプリをどのようにテストしましたか。 
    2.プロジェクトをストアにアップロードしましたか。 
    3.どれくらいストアにアップロードされましたか。3日になりましたか。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
    2019年1月28日 7:22
    モデレータ
  • エラー発生後、何日か経ったらエラーが出なくなりました。

    アドオンが審査中であるときに、そのアドオンを購入しようとするとエラーになるのでしょうか?

    2019年2月22日 10:56
  • ナノレスさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信頂きありがとうございます。

    一般的には問題ありません。 
    エラーが発生した場合は、分析のために詳細情報をここに投稿してください。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    • 回答としてマーク ナノレス 2019年3月2日 11:29
    2019年2月26日 8:49
    モデレータ