如何获取支付令牌

要打开支付UI,您需要先获取令牌。令牌是一个包含游戏和用户加密数据的字符串。您需要实现获取令牌来识别用户身份以允许其进行购买。

要获取支付令牌:

  1. 获取用户授权令牌
  2. 创建订单

获取用户授权令牌

令牌的有效期是自最后一次调用艾克索拉API后14小时。请实现令牌过期后重新获取令牌的逻辑。建议在后台获取新令牌,这样用户就无须重新登录应用。

在您的应用程序后端,实现获取用户认证令牌。方法是使用包含基本HTTP认证的HTTP POST请求,并在请求正文中传入必需参数。

API参考
查看完整参数列表。

基本HTTP认证

艾克索拉API使用基本认证。所有发送到API的请求必须包含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密钥必须存储在您的服务器上,切勿保存在代码或前端中。

请求正文

在请求正文中传入以下必要参数:

参数类型描述
user.id
string您系统中的唯一用户ID。
user.email
string接收购买收据的用户邮箱。如未传入此参数,将在支付页面显示一个必填字段要求其输入邮箱地址。
settings.project_id
integer游戏的艾克索拉ID。可在发布商帐户的项目部分找到该信息。

为提升用户体验,还可以传入以下参数:

参数类型描述
user.name
string在收据上显示的用户昵称。
settings.currency
string首选支付货币。
settings.language
string界面语言。
获取用户认证令牌请求的示例
Copy
Full screen
Small screen
    curl -i -X POST \
      -u 2340:ZHgbSDVP6LtAJVWu \
      https://api.xsolla.com/merchant/v2/merchants/<merchant_id>/token \
      -H 'Content-Type: application/json' \
      -d '{
        "settings": {
          "currency": "USD",
          "language": "en",
          "project_id": <project_id>
          }
        },
        "user": {
          "email": {
            "value": "<user_email>"
          },
          "id": {
            "value": "<user_id>"
          },
          "name": {
            "value": "<user_name>"
          }
        }
      }'
    

    响应中收到的用户认证令牌示例

    Copy
    Full screen
    Small screen
      {
          "token": "1230OWrp0KF6uqvmN8jWuzLyoXMzxTyK_lc_en"
      }
      

      获取支付令牌

      要获取支付令牌,请创建订单。 订单即用户想在商店中购买的商品。支付订单后,用户即收到商品。要测试支付过程,请通过使用指定商品创建订单API调用创建订单:

      1. 如要在API文档网站上进行测试,请单击Try it打开创建请求的界面。
      2. Security区块的Bearer Token字段中,输入完成认证过程时获得的令牌。
      3. Body区块中,传入商品数量等订单详细信息。要访问沙盒模式,请传入"sandbox": true
      4. Parameters区块中,传入:
        • project_id — 可在发布商帐户中找到的项目ID。
        • item_sku — 商品SKU。
      注:
      要调用艾克索拉API,您可以使用针对各游戏引擎和平台的现成SDK:

      在响应中,您将收到后续操作需要的数据:

      • token — 支付令牌

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

      不想回答

      感谢您的反馈!
      上次更新时间: 2024年1月22日

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

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