推送通知

工作原理

在网充商店中,您可以设置推送通知⸺即用户可直接在浏览器中接收的个人或批量消息。您可以通过推送通知,向用户告知新商品、促销活动和特别优惠等信息。

如需向用户发送通知⸺例如在用户战斗失败或资源耗尽后发送通知⸺请在游戏服务器侧调用艾克索拉发送通知API

用户点击通知后,将进入网充商店,并可在其中购买所需商品。

推送通知需在艾克索拉建站器中配置,且仅适用于已发布的网充商店。

注:
在Android设备上,通知可在浏览器中生效,也可在以渐进式Web应用(PWA)形式安装的网充商店中生效。在iOS设备上,只有已将网充商店安装为PWA的用户才能接收通知。

艾克索拉不会跟踪游戏内事件。您可以自行定义游戏服务器在何时调用API发送通知,例如:

游戏内事件推送通知文本
每日、每周或每月首次登录。欢迎回来!前往网充商店领取您的礼物。
战斗失败。不要放弃!为您的英雄购买强化道具,完成复仇!
能量或货币耗尽。能量不足?前往网充商店补充能量,继续游戏!
新内容解锁。新关卡已解锁!前往网充商店购买强化道具,更轻松地通关。
连续多次挑战失败。Boss太强?网充商店中已有武器捆绑包整装待发,助您取胜。

交互过程

  1. 用户在浏览器中或通过已安装的PWA打开网充商店,并看到提示订阅通知的横幅。
  2. 用户点击Subscribe,并在浏览器系统提示中允许接收通知。
注:
启用Auto-request permission选项时的订阅逻辑

如果在网站设置中启用了Auto-request permission选项,网充商店会在打开时请求发送通知的权限,而不会显示订阅横幅。如果用户此前已授予权限,订阅将自动完成。如果请求失败(例如浏览器阻止请求,或用户拒绝授权),则会显示订阅横幅。

  1. 网充商店会在艾克索拉系统中将用户注册为订阅者。该订阅会与用户设备上的浏览器或已安装的PWA关联。可向用户发送的通知类型取决于其授权状态:

    • 如果用户已登录网充商店,其ID会与订阅关联⸺您可以向该用户发送个人通知。
    • 如果用户未登录,您只能向其发送批量通知;用户登录后,订阅会自动与其用户ID关联。
  2. 游戏服务器调用艾克索拉API发送通知。

  3. 用户收到推送通知。

  4. 用户点击通知并进入网充商店⸺如果传递了data.url参数,则进入该参数指定的页面;如果未传递该参数,则进入主页。如果用户在网充商店中存在活动会话,则会保持登录状态。

如何获取

  1. 在发布商帐户中打开您的项目,然后前往Storefronts > Websites部分。
  2. 在所需网站的窗格中,点击Open Site Builder
  1. 进入Push notifications部分。
  2. 打开Enable notifications开关。
  3. 复制Application IDClient IDClient secret key字段的值⸺从游戏服务器发送API请求时需要使用这些值。这些参数会在首次打开Enable notifications开关时创建一次,并用于整个项目:如果项目中有多个站点,所有站点都使用相同的值。
  4. 如有需要,设置订阅横幅:更改标题、描述、图标和按钮文本。
  5. 如需让站点在打开时自动请求用户授权发送推送通知,请打开Auto-request permission开关(可选)。如果该开关关闭,则仅在用户点击Subscribe按钮后请求权限。
  6. 要应用更改,请发布网站。
  1. 在游戏服务器上,实现推送通知发送逻辑。游戏服务器必须调用API发送通知,并在请求中传递用户ID。

发送通知

艾克索拉不会自动发送通知⸺通知始终由您的游戏服务器调用相应API发起。

基础URL:https://messaging-platform.xsolla.com

身份认证

请求通过OAuth 2.0协议进行身份认证。调用生成JWTAPI获取服务器JWT,并传递以下参数:

  • grant_type — JWT授权类型,传入client_credentials
  • client_idPush notifications部分设置中的Client ID字段值
  • client_secretPush notifications部分设置中的Client secret key字段值

Authorization: Bearer <token>请求头中传递收到的令牌。

向用户发送通知

通过用户ID向指定用户发送个人推送通知。通知会送达该用户已订阅通知的所有浏览器和已安装的PWA。

HTTP请求

POST https://messaging-platform.xsolla.com/api/v1/messages/push/send

请求头

请求头必需描述
AuthorizationBearer <token>
Idempotency-Key唯一请求键。用于防止同一通知被重复发送。
Content-Typeapplication/json

请求参数

参数类型描述
app_id
string艾克索拉侧的应用程序ID,来自Push notifications部分设置。必需。
identity
object通知接收者数据。
external_user_id
string用户ID。必需。
title
string通知标题。必需。
body
string通知正文。必需。
image_url
string 通知中显示的图片URL。
data
object附加通知数据。
url
string用户点击通知时打开的页面URL。如果未传递该参数,则打开网充商店主页。

响应参数

参数类型描述
message_ids
array of strings已发送消息ID列表,采用UUID格式⸺用户订阅通知的每个浏览器或已安装的PWA对应一个ID。

请求示例

Copy
Full screen
Small screen
 1{
 2  "notification_type": "user_validation",
 3  "settings": {
 4    "project_id": 123456,
 5    "merchant_id": 789012
 6  },
 7  "user": {
 8    "id": "11111111-1111-1111-1111-111111111111"
 9  }
10}

响应示例

Copy
Full screen
Small screen
1{
2  "message_ids": [
3"aa8ef5c2-front-4a3b-9d2e-example00001",
4"bb9fa6d3-front-4b4c-8e3f-example00002"
5    ]
6}

向所有用户发送通知

向所有或指定订阅用户发送推送通知。通知会送达该用户已订阅通知的所有浏览器和已安装的PWA。

HTTP请求

POST https://messaging-platform.xsolla.com/api/v2/messages/push/send_batch

请求头

请求头必需描述
AuthorizationBearer <token>
Idempotency-Key唯一请求键。用于防止同一通知被重复发送。
Content-Typeapplication/json

请求参数

参数类型描述
app_id
string艾克索拉侧的应用程序ID,来自Push notifications部分设置。必需。
recipients
object定义通知接收者。
type
string接收者类型。可能值:all⸺所有订阅者;external_user_id⸺指定用户。
external_user_id
array of strings用户ID数组。如果type参数设置为external_user_id,则传递该参数。必需。
title
string通知标题。必需。
body
string通知正文。必需。
image_url
string通知中显示的图片URL。
data
object附加通知数据。
url
string用户点击通知时打开的页面URL。如果未传递该参数,则打开网充商店主页。

响应参数

请求示例

响应示例

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
上次更新时间: 2026年7月7日

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

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!
无法发送您的反馈
请稍后重试或发送邮件至[email protected]与我们联系。