设置Webhook

Webhook是由参数及其相应值组成的程序代码。发生指定的事件时,会向您的应用程序发送一个包含更新的参数值的HTTP请求。该请求通常是JSON格式的POST请求。

事件示例:用户与商品目录交互、付款或取消订单。

Webhook列表

要完整运营一个游戏内商店,必须实现对主要Webhook的处理:

  • 支付 — 订单付款时发送,包含支付数据及交易详情。
  • 订单成功支付 — 成功处理支付Webhook时发送,包含所购商品及交易ID的信息。使用此Webhook的数据向用户添加商品。
  • 退款 — 订单取消时发送,包含取消的付款数据及交易详情。
  • 订单取消 — 成功处理退款Webhook时发送,包含所购商品及取消的交易的ID信息。使用此Webhook的数据移除购买的商品。
  • 用户验证 — 在支付过程的不同阶段发送,用于确保用户已在游戏中注册。

如您的应用程序侧实现了商品目录个性化,请设置合作伙伴侧目录个性化的处理。

如在验证用户时使用外部ID(您自己系统上的交易ID)并希望将其与艾克索拉侧的交易ID关联或传入额外参数,请实现交易ID的关联Webhook。

注:
要接收真实付款,只需要实现对支付订单成功支付用户验证Webhook的处理并签署许可协议
注:
您可以使用PlayFab集成来接收付款和订单取消信息,而不必使用Webhook。

在发布商帐户中设置Webhook

要设置Webhook:

  1. 发布商帐户中打开您的项目。
  2. 在侧边栏中单击项目设置,然后前往Webhooks
  3. Webhooks开关设置为
  4. 指定接收Webhook的URL,格式为https://example.com
  5. 将默认生成一个给项目Webhook签名的密钥。如要生成新密钥,请单击刷新图标。
  6. 单击保存设置
注:
要测试Webhook,可选择任意一个专用网站,如webhook.site

在发布商帐户中测试Webhook

如在验证用户时使用外部ID(您自己系统上的交易ID)并希望将其与艾克索拉侧的交易ID关联或传入额外参数,请实现交易ID的关联Webhook。

Webhook名称Webhook类型
用户验证user_validation
支付payment
订单取消order_canceled
订单成功支付order_paid

如成功设置了Webhook,Webhook设置区块下方会显示一个Webhook测试区块。

Webhook监听器

Webhook监听器是一个程序代码,可以在指定的URL地址接收传入的Webhook、生成签名及向艾克索拉Webhook服务器发送响应

生成签名

接收Webhook时,应确保数据传输的安全性。为此,必须从Webhook数据生成一个签名并确保它与HTTP请求头中发送的签名匹配。

要生成签名:

  1. 将请求正文中的JSON与项目密钥串联起来。
  2. 对第一步中得到的字符串应用SHA-1加密散列函数。

向Webhook发送响应

要确认收到Webhook,您的服务器必须返回:

  • 没有消息正文的204 HTTP代码(成功响应时)。
  • 问题描述400 HTTP代码(如未找到指定用户或传入的签名无效)。

如您的服务器发生临时问题,您的Webhook处理程序也可以返回5xx代码。

如果未收到对订单成功支付订单取消Webhook的响应,或收到了包含5xx代码的响应,将根据以下规则重新发送Webhook:

  • 间隔5分钟尝试2次
  • 间隔15分钟尝试7次
  • 间隔60分钟尝试10次

自首次尝试起,12小时内最多尝试发送Webhook20次。

如果未收到对支付Webhook的响应或收到了包含5xx代码的响应,也将尝试重新发送Webhook且重试的间隔逐渐拉长。12小时内最多尝试12次。

如果未收到对用户验证Webhook的响应或收到了包含4005xx代码的响应,将不会重新发送用户验证Webhook。

该情况下会向用户显示一个错误,且不会发送支付订单成功支付Webhook。

注:
Webhook的完整列表和机制以及详细的处理示例见Webhook文档
您的进度
感谢您的反馈!
上次更新时间: 2024年1月22日

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

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