【问题标题】:Xsolla payment integration with Playfab, missing stepsXsolla 支付与 Playfab 的集成,缺少步骤
【发布时间】:2021-10-01 06:37:02
【问题描述】:

我正在尝试使用 PlayFab 的修订部分中的 CloudScript 函数在我的 WPF 启动器中实施一些付款方式,例如 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 function screenshot

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

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

谢谢。

【问题讨论】:

  • 您是否有不想直接使用 PlayFab 的 Xsolla 集成的原因?它解决了 Xsolla 的许多复杂性,例如与 Xsolla 的回调 webhook 集成。

标签: javascript c# wpf playfab


【解决方案1】:

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

另一种方式是通过艾克索拉购买物品,但不打开所有物品的支付站页面,而是直接进行艾克索拉付款处理(这种方式我有一个错误)

};

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);
}

【讨论】:

  • 感谢您的回答!请在代码块中包含代码,而不是作为图像,因为图像中的代码不容易复制或修改。
  • 太好了,稍后会解决这个问题,同时,与我合作的开发人员将在稍后添加一些评论...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多