1

我正在尝试使用 PlayFab 的 Revision 部分中的 CloudScript 函数在我的 WPF Launcher 中实施一些付款方式,例如 Xsolla。

现在,我可以运行该应用程序,并且下面代码中的所有内容都可以正确执行而没有错误。

但我的目标是能够(在 CloudScript 函数“xsollaPaymentToken”之后)进入 Xsolla 提供的支付页面。

这是我的启动器中的代码:

        private static async Task<PlayFabResult<ExecuteCloudScriptResult>> XsollaCloudScriptToken()
        {
            ExecuteCloudScriptRequest executeCloudScriptRequest = new ExecuteCloudScriptRequest()
            {
                FunctionName = "xsollaPaymentToken",
                GeneratePlayStreamEvent = true,
            };
            return await PlayFabClientAPI.ExecuteCloudScriptAsync(executeCloudScriptRequest);
        }

        private async void PurchaseButtonAsync(object sender, RoutedEventArgs e)
        {
            try
            {
                await XsollaCloudScriptToken().ContinueWith
                (continuationAction: executeCloudScript =>
                {
                    ExecuteCloudScriptRequest executeCloudScriptRequest = new ExecuteCloudScriptRequest()
                    {
                        FunctionName = "xsollaGetOrder"
                    };
                }
                );
            }
            catch (System.Exception error)
            {
                Console.WriteLine(error.Message);
                MessageBox.Show(error.Message);
            }
            
        }

现在是 CloudScript 部分:

Cloudscript 函数截图

我想我错过了一些步骤,比如在函数“xsollaPaymentToken”之后重定向到 Xsolla 接口,但是由于 Xsolla 和 Playfab 没有提供带有示例的好的文档,所以我不明白。

如果有人知道如何处理那些缺失的步骤,或者如果有人已经在 Xsolla 实施中添加了类似的问题,我们将不胜感激。

谢谢。

4

1 回答 1

0

也许我们可以加入 Discord 并交换一些信息。就我而言,我可以从客户端(游戏或网站)打开 Xsolla 支付站,购买物品,并获得 Playfab 向用户授予物品的响应。这对我有用,所以如果您需要帮助,请告诉我。

另一种方式是通过 Xsolla 购买商品,而不打开包含所有商品的支付站页面,而是直接进行 xsolla 付款处理(这种方式我有一个错误)在此处输入图像描述

};

let body =  {
    "user": {
        "id": {
            "value": "user 2"
        },
        "name": {
            "value": "John Smith"
        },
        "email": {
            "value": "john.smith@mail.com"
        }
    },
    "settings": {
        "project_id": ######
        "mode": "sandbox",
        "ui": {
            "theme": "dark"
        }
    },
    "purchase": {
        "checkout": {
            "amount": 99,
            "currency": "USD"
        }.
        "virtual items": {
            "items": [
                {
                    "gold 1999",
                    "amount": 19
                }
            ]
        }
    }
};


    // if (args.sandbox) body.settings.mode = "sandbox"

    let url= "https://api.xsolla.com/merchant/v2/merchants/" + merchantId + "/token";
    let content = JSON.stringify(body);
    let httpMethod = "post";
    let contentType = "application/json";
    let response = http.request(url, httpMethod, content, contentType, headers);
    return JSON.parse(response);
}
于 2021-12-10T10:53:18.833 回答