设置订单状态跟踪
要将商品发放给用户,需确保付款已成功。
要跟踪所创建订单的状态并进行验证,需在应用程序的服务器侧配置Webhook的处理。
要完整运营一个游戏内商店,必须实现对主要Webhook的处理:
Webhook | 通知类型 | 描述 |
---|---|---|
用户验证 | user_validation | 在支付过程的不同阶段发送,用于确保用户已在游戏中注册。 |
支付 | payment | 订单付款时发送,包含支付数据及交易详情。 |
订单支付成功 | order_paid | 成功处理支付Webhook时发送,包含所购商品及交易ID的信息。使用此Webhook的数据向用户添加商品。 |
退款 | refund | 订单取消时发送,包含取消的付款数据及交易详情。 |
订单取消 | order_canceled | 成功处理退款Webhook时发送,包含所购商品及取消的交易的ID信息。使用此Webhook的数据移除购买的商品。 |
关于Webhook的完整列表及常规使用信息,请参阅Webhook文档。
设置Webhook的发送
要在艾克索拉侧配置Webhook:
- 在发布商帐户中打开您的项目。
- 在侧边栏中单击项目设置,然后前往Webhooks部分。
- 在Webhook URL字段中,指定艾克索拉要向其发送Webhook的URL。
注:
要测试Webhook,您还可以选择任意专门网站(如webhook.site)或平台(如ngrok)。对于真实项目,您需要添加购买验证逻辑。
- 单击启用Webhook。
![](https://cdn.xsolla.net/developers/v-20240906-v01/images/sdk/android/baas-integrations/webhooks-settings.png)
添加Webhook监听器
Webhook监听器是一个程序代码,可以在指定的URL地址接收传入的Webhook、生成签名及向艾克索拉Webhook服务器发送响应。
生成签名
接收Webhook时,应确保数据传输的安全性。为此,必须从Webhook数据生成一个签名并确保它与HTTP请求头中发送的签名匹配。
要生成签名:
- 将请求正文中的JSON与项目密钥串联起来。
- 对第一步中得到的字符串应用SHA-1加密散列函数。
向Webhook发送响应
要确认收到Webhook,您的服务器必须返回:
200
、201
或204
HTTP代码(成功响应时)。- 带问题描述的
400
HTTP代码(如未找到指定用户或传入的签名无效)。
如您的服务器发生临时问题,您的Webhook处理程序也可以返回5xx
代码。
如果未收到对订单成功支付或订单取消Webhook的响应,或收到了包含5xx
代码的响应,将根据以下规则重新发送Webhook:
- 间隔5分钟尝试2次
- 间隔15分钟尝试7次
- 间隔60分钟尝试10次
自首次尝试起,12小时内最多尝试发送Webhook20次。
如果未收到对支付Webhook的响应或收到了包含5xx
代码的响应,也将尝试重新发送Webhook且重试的间隔逐渐拉长。12小时内最多尝试12次。
如果未收到对用户验证Webhook的响应或收到了包含400
或5xx
代码的响应,将不会重新发送用户验证Webhook。
该情况下会向用户显示一个错误,且不会发送支付和订单成功支付Webhook。
注:
Webhook的完整列表和机制以及详细的处理示例见Webhook文档。
您的进度
发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。