向用户发放购买物

使用来自艾克索拉的交易状态信息在应用程序中实现向用户发放购买物。可通过以下方式获取该信息:

通过API请求信息

您可以从艾克索拉侧的玩家物品库中获取用户所购虚拟物品、虚拟货币或捆绑包的信息。发放购买物时,如果要同时考虑通过Web商店购买的商品和通过其他方式购买的商品,请同步应用程序侧和艾克索拉侧的玩家物品库信息。

用于管理物品库的API调用包括以下几组:

注:
服务器侧方法使用基本HTTP认证

注:
客户端侧调用使用服务器OAuth 2.0认证

基本HTTP认证

请求必须包含Authorization: Basic <your_authorization_basic_key>头,其中<your_authorization_basic_key>是按照Base64标准加密的商户ID: API密钥对。请前往发布商帐户找到这些参数:

  • 商户ID在以下位置显示:
    • 项目设置 > Webhooks部分。
    • 公司设置 > 公司部分。
    • 在发布商帐户任意页面的浏览器地址栏的URL中。URL的格式如下:https://publisher.xsolla.com/​商户ID/发布商帐户部分

  • API密钥仅在创建它时在发布商帐户中显示一次,必须存储在己侧。您可以在以下部分中创建新的密钥:
    • 公司设置 > API密钥
    • 项目设置 > API密钥

注意

关于使用API密钥的详细信息,请参阅API参考

关于密钥的建议:

  • 请在己侧保存生成的API密钥。您仅会在创建API密钥时在发布商帐户中看见它一次。
  • 请妥善保管API不被泄露。它提供对您的个人帐户及您在发布商帐户中项目的访问权限。
  • API密钥必须存储在您的服务器上,切勿保存在代码或前端中。

服务器OAuth 2.0认证

请求必须包含Authorization: Bearer <user_JWT>头,其中<user_JWT>是用户JWT。

要获取用户JWT,请按照以下步骤进行操作:

  1. 创建一个服务器OAuth 2.0客户端:
    1. 发布商帐户中打开您的项目。前往登录管理器 > 您的登录管理器项目,然后单击配置
    2. 安全性区块,单击OAuth 2.0
    3. 单击添加OAuth 2.0并指定:
      • 客户端名称。
      • OAuth 2.0重定向URI(必填)。
      • 认证类型 — 服务器。
      • 项目ID。
    4. 单击连接。后续集成步骤需用到生成的客户端ID和密钥。

  1. 获取服务器JWT。方法是,调用生成JWT API方法并传入以下参数:
    • grant_type — JWT类型。指定client_credentials值。
    • client_secret — 服务器OAuth 2.0客户端密钥。
    • client_id — 服务器OAuth 2.0客户端ID。

注:
服务器JWT有效期是59分钟。

  1. 获取用户JWT。方法是,调用通过自定义ID进行认证API方法。请求必须包含X-Server-Authorization: <server_JWT>头,其中<server_JWT>是在步骤2中获取的服务器JWT。

通过Webhook接收信息

  1. 配置接收Webhook的参数:
    1. 发布商帐户中打开您的项目。
    2. 在侧边栏中单击项目设置
    3. 前往Webhooks部分。
    4. Webhooks开关设置为
    5. Webhook URL字段中指定接收Webhook的URL。
    6. 默认会生成一个给项目Webhook签名的密钥。如要生成一个新密钥,请单击刷新图标。
    7. 单击保存设置

  1. 在应用程序中实现对以下类型Webhook的处理:

要确认已收到Webhook,您的服务器必须作出如下响应:

  • 不带消息正文的HTTP代码204。
  • 描述问题的HTTP代码400(如果指定用户未找到或传入的签名无效)。

可在发布商帐户项目设置 > Webhooks > 商店部分测试用户验证付款Webhook。

在缺少真实值的情况下,可输入任意值。

您还可以测试在沙盒实时模式下进行购买时的Webhook。退款测试只支持实时模式。

下一步

  1. 实现获取订阅信息
  2. 设置用户认证

集成过程

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
为此页面评分
为此页面评分
我们还有其他可改进之处吗?

不想回答

感谢您的反馈!
上次更新时间: 2023年3月20日

发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!