通过服务管理订阅产品

跳转至主内容

此浏览器不再受支持。

请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。

通过服务管理订阅产品

项目2024/11/06

本文内容

利用 Microsoft.StoreServices .NET 库和示例订阅产品类型查询用户订阅在客户端上满足权利检查与服务器到服务器之间延迟更改用户的订阅测试订阅产品另请参阅

如果你的游戏或发布者使用订阅产品,则最好开发后端服务来验证用户的订阅状态并管理订阅。 这使你的服务能够更深入地了解用户的订阅状态和支持团队,以帮助解决用户订阅的问题、增加时间或取消订阅。

本文将概述如何使用 Recurrence 服务终结点在你自己的服务上启用这些方案。

利用 Microsoft.StoreServices .NET 库和示例

为帮助演示本文概述的原理和流程,请查看 Microsoft.StoreServices 示例。 该示例使用 Microsoft.StoreServices 库管理身份验证并调用 Microsoft Store 服务。 示例服务本身具有用于管理订阅产品的示例逻辑,并提供了配置指南来设置订阅产品。

Microsoft.StoreServices (GitHub) Microsoft.StoreServices 示例 (GitHub)

订阅产品类型

应用商店托管的订阅产品和加载项订阅产品类型都使用 Recurrence 服务来查看和管理用户的订阅。 有关这些产品类型的详细信息,请参阅选择适当的产品类型

查询用户订阅

purchase.mp.microsoft.com/v8.0/b2b/recurrences/query 是用于查询用户订阅信息的主要终结点。 此终结点报告用户当前活动的订阅期和过去的订阅期。 此外,它还提供更改订阅所需的订阅 ID,以及检测订阅何时处于宽限期和催缴期的更详细信息。

Collections 终结点(B2bLicensePreview (v8) 或 PublisherQuery (v9))都将返回用户的活动订阅,但不提供 Recurrence 查询 API 所返回的详细级别和信息。

在客户端上满足权利检查与服务器到服务器之间延迟

将更新发布到 (满足权利的新项的订阅时,) 客户端上启用的权利与在 b2bLicensePreview 或 PublisherQuery 等服务器到服务器查询中反映的权利之间会有延迟。 这是因为不同存储系统使用的目录缓存按不同的间隔更新。 将更改发布到目录后,本地许可服务通常会在两到三小时内首先获取更新的信息以及 PublisherQuery 使用的缓存。 因此请注意,发布后,用户将有权访问内容,但对 PublisherQuery 的服务器到服务器调用不会返回这些新包含项的结果。 查询订阅本身的定期服务不受此影响,仅在从 PublisherQuery 或 b2bLicensePreview 查询满足权利或包含项时添加到订阅的项。

了解订阅开始、续订和到期日期

订阅的 StartTime 日期将始终是活动订阅的开始日期。 如果订阅设置为自动续订,则开始日期将保持不变,但到期日期将随着订阅在接下来的几个月内续订而更改。 如果订阅已取消、过期或被撤销,则会在用户再次购买订阅时创建新的订阅对象。 此新的活动订阅期将包括新订阅激活或购买日期的 StartTime。

Microsoft Store 中的订阅期通常配置为月数。 例如,1 个月、3 个月或 12 个月。 用户购买一个月订阅时,StartTime 将是订阅开始日期的午夜 UTC (00:00:00)。 然后 ExpirationTime 将是 StartTime 加上月数(非天数)减去一秒 (23:59:59 UTC)。
这样,订阅将刚好在午夜 UTC 前过期。

但是,从一个月的第 29 天、30 天或 31 天开始,某些月份的天数不同,从而与订阅产生冲突。
如果用户的 StartTime 属于这些天中任一天,则将 ExpirationTime 修改为到期月份最后一天的 23:59:59 UTC。 这样,续订日期将始终是下个月第一天的午夜 UTC (00:00:00),而 ExpirationTime 将始终是本月最后一天的 23:59:59 UTC。

一个月订阅的开始、续订和到期日期行为示例 购买日期 StartTime ExpireTime 自动续订日期 活动日 2023-02-27T12:00:00Z 2023-02-27T00:00:00Z 2023-03-26T23:59:59Z 2023-03-27T00:00:00Z 28 2023-03-27T12:00:00Z 2023-03-27T00:00:00Z 2023-04-26T23:59:59Z 2023-05-27T00:00:00Z 31 2023-03-29T12:00:00Z 2023-03-29T00:00:00Z 2023-04-30T23:59:59Z 2023-05-01T00:00:00Z 32 2023-04-29T12:00:00Z 2023-04-29T00:00:00Z 2023-05-31T23:59:59Z 2023-06-01T00:00:00Z 33 2023-04-30T12:00:00Z 2023-04-30T00:00:00Z 2023-05-31T23:59:59Z 2023-06-01T00:00:00Z 32 2024-02-27T12:00:00Z 2024-02-27T00:00:00Z 2024-03-26T23:59:59Z 2024-03-27T00:00:00Z 29(闰年)

了解宽限期和催缴状态

如果用户为其订阅注册了自动续订,则 Microsoft Store 将尝试根据其订阅的 ExpirationTime 值,按照用户帐户中规定的付款方式收取费用。 如果无法完成付款,则其订阅不会取消,但会在 Microsoft Store 尝试解决问题并重试付款时经历宽限期和催缴状态。 在宽限期和催缴期间,订阅状态将显示为 InDunning。 将订阅产品与服务集成时,你应了解并实施检查,以确定用户何时处于宽限期或催缴期,并根据以下信息采取适当措施。

若要将帐户正确设置为其中一种状态以进行测试,请参阅测试订阅产品。

宽限期

宽限期是用户仍应获得订阅权益的设定时间,即使他们现在已超过其付费订阅的 ExpirationTime。 在此期间,Microsoft Store 将继续尝试按照用户的付款方式自动续订。 这让用户有时间解决过期的信用卡,或者在需要时向其帐户充值,而不会失去订阅权益。

固定付款方式并完成自动续订交易后,将从用户的下一个订阅期中减去所使用的宽限期。 例如:订阅时间为 30 天,并且用户帐户度过了 3 天的宽限期,而其付款方式已固定。 自动续订交易成功后,将继续下一个为期 30 天的订阅期。 但是,将从其新的 ExpirationTime 中减去已使用的 3 天宽限期,因此他们的订阅将在自续订交易之日起的 27 天后到期。 这会导致新的 ExpirationTime 与前一个 ExpirationTime 相差 30 天,因此用户没有获得任何免费使用时间,因为他们进入了宽限期。

由于宽限期和催缴期共享相同的状态 (InDunning),因此服务必须根据 ExpirationTimeWithGrace 值检查当前 UTC 时间,以确定用户是否处于宽限期。 在此期间,你还可以向用户发送消息,通知其订阅续订可能存在问题,并让他们检查其“Microsoft 帐户服务和订阅”页面。

如果 ExpirationTimeWithGrace 未解决自动续订,则帐户将进入催缴期。

催缴期

催缴期是用户宽限期结束后的设定时间,在催缴期,用户不应再通过其帐户获得订阅权益。 在催缴期,Microsoft Store 将继续尝试对用户帐户收取新订阅期的费用。 如果扣费成功,则将从用户的下一个订阅期中减去整个宽限期。

在催缴期,用户将无法通过应用商店自行重新购买或兑换订阅。 这可确保用户不能仅仅通过进入宽限期,然后在宽限期结束时开始新订阅来获得免费使用时间。 催缴期比宽限期要长得多,但如果在催缴期结束时未完成付款,则订阅将变为非活动状态。

更改用户的订阅

除了查询用户的订阅状态外,服务还可以代表用户修改和更改用户的订阅产品。 purchase.mp.microsoft.com/v8.0/b2b/recurrences/{recurrenceId}/change 终结点允许服务增加时间、取消、退款和禁用特定订阅的自动续订。 若要调用 Recurrence 更改终结点,首先需要具有从 purchase.mp.microsoft.com/v8.0/b2b/recurrences/query 终结点获取的 recurrenceId 值。

下面是一些示例,说明 Recurrence Change 终结点如何用于服务:

为遇到服务中断的用户订阅增加时间。 与客户服务支持团队融合,帮助用户了解其订阅状态、取消等信息。 让游戏内 UI 轻松允许用户禁用自动续订或结束其订阅。

测试订阅产品

Recurrence Change 终结点还可用于开发和测试订阅产品。 Extend 操作将接受从测试帐户的活动订阅中减去的负天数。 这使你可以在订阅中订阅测试帐户,然后从订阅中删除天数以使其达到所需的测试状态。

测试“活动”、“非活动”和“已取消”状态

可通过将订阅设置为 $0.00 的价格来测试订阅的“活动”、“非活动”和“已取消”状态。 只需将订阅添加到测试帐户即可验证活动状态,并使用 Recurrence Change 终结点禁用自动续订。 然后使用 Recurrence Change 终结点取消订阅或减去足够多的天数,以便 ExpirationTime 超过当前 UTC DateTime。

测试宽限期和催缴状态

若要使订阅帐户进入宽限和催缴状态,订阅必须具有非零价格,并且帐户必须处于在 ExpirationTime 之后无法支付该金额的状态。 目前,Microsoft Store 没有用于测试的付款方式,因此设置帐户的最简单方法是使用预付货币代码,如下所示:

在测试环境中设置价格较低的订阅,例如 $0.99。 以 $1.00 或 $2.00 的价格购买 Xbox 预付礼品卡,以支付首次购买的订阅(含税),但不包括续订。 通过测试帐户兑换礼品卡。 通过测试帐户购买订阅。 请确保为订阅启用了自动续订,但没有足够的资金来续订订阅。 使用 Recurrence Change 将订阅的 ExpirationTime 移到未来 24 小时内(请参阅下面的说明,了解为什么这很重要)。 等到 ExpirationTime 自然经过并显示状态“InDunning”(在 ExpirationTime 之后可能需要长达 24 小时的时间)。

若要查看从宽限期、催缴到非活动状态的正确更改,你还应该让帐户自然地完成这些步骤,而无需人为地移动 ExpirationTime。

备注

要使帐户在宽限期和催缴期正确进入“InDunning”状态,该帐户必须自然经过 ExpirationTime 和 ExpirationTimeWithGrace 日期。 从测试订阅中减去天数时,确保减去足够的天数,以使 ExpirationTime 处于当前 UTC DateTime 的 24 小时内。 然后让帐户在接下来的 24 小时内自然地经过该 DateTime,以使状态显示“InDunning”。 如果将 ExpirationTime 移到距离当前 UTC DateTime 很远的日期,则状态不会更改为“InDunning”,并且该帐户/订阅的测试值将无效。 测试帐户还将进入一种状态,在当前订阅项目取消并通过帐户购买新订阅之前,你将无法正确测试宽限期和催缴状态。

另请参阅

商业概述

Microsoft Store 服务 API

purchase.mp.microsoft.com/v8.0/b2b/recurrences/query

purchase.mp.microsoft.com/v8.0/b2b/recurrences/{recurrenceId}/change

Microsoft.StoreServices 库 (GitHub)

Microsoft.StoreServices 示例 (GitHub)

相关知识

ps5订阅服务什么意思ps5订阅服务什么意思呀
如何有效管理移动游戏中内购服务的收益
【技术·真相】微服务管理
九一免费日 享受全年最盛大的产品与服务零成本体验
V社也要推订阅服务?游戏订阅服务盘点
游戏订阅服务市场前景分析报告:产销规模、价格走势与竞争格局
下一波移动游戏变现模式的成长机会:订阅服务
《网络游戏管理暂行办法》解读
网络游戏管理暂行办法
网络游戏社区管理与服务方案.doc

网址: 通过服务管理订阅产品 http://www.hyxgl.com/newsview372728.html

推荐资讯