Uwp 是否验证在Microsoft应用商店中购买的订阅?

Uwp 是否验证在Microsoft应用商店中购买的订阅?,uwp,in-app-purchase,windows-store-apps,app-store,windows-store,Uwp,In App Purchase,Windows Store Apps,App Store,Windows Store,我们正在审查我们组织的一些应用程序的Microsoft Store集成。根据我们目前对该商店的了解,我们计划使用服务器到服务器API获取用户的购买,并验证对声称产品的购买是否当前处于活动状态 API要求传递一个StoreID,它是登录到存储的用户Microsoft Store用户的用户标识符。应用程序需要通过从Windows SDK调用生成此StoreID,并将其存储在本地 一旦从商店购买成功,StoreID将通过名为claimprchase的API发送到我们的服务器,该API使用上述服务器获取

我们正在审查我们组织的一些应用程序的Microsoft Store集成。根据我们目前对该商店的了解,我们计划使用服务器到服务器API获取用户的购买,并验证对声称产品的购买是否当前处于活动状态

API要求传递一个
StoreID
,它是登录到存储的用户Microsoft Store用户的用户标识符。应用程序需要通过从Windows SDK调用生成此
StoreID
,并将其存储在本地

一旦从商店购买成功,
StoreID
将通过名为
claimprchase
的API发送到我们的服务器,该API使用上述服务器
获取用户订阅
API获取订阅以进行验证

问题:

用户A(我们系统中的用户)登录并购买订阅,并捕获
claipurchase
调用(通过设备上的某个代理集)以检索StoreID

用户A向用户B出售StoreID。用户B登录到应用程序(再次在设备上代理),获取他们的身份验证参数(一些访问令牌),并使用HTTP客户端使用
访问令牌和
存储ID进行
ClaimPurchase
调用

当从服务器到服务器调用验证调用时,将显示当前用户的订阅处于活动状态

解决这个问题的一种方法是,每当成功创建
claimprchase
时,我们都要维护
StoreID->UserId
映射。和StoreID必须验证它是否属于同一用户

但万一用户A也生成了一个新的StoreID,比如说
S2
(在生成S1时),并将其出售给用户B,而不是
S1
。用户B在声明时使用StoreID
S2

我们如何处理这种情况。
Get Subscriptions for User
的API响应提供了一个
id
字段(subscription id)和一个
受益人id
,可以映射到应用程序用户id。但是,只有在订阅处于活动状态时,这两个字段从未更改时,此操作才有效

我的问题是:
id
受益人id
是否发生变化


另外,是否有更好的方法处理此问题?

用户是否购买订阅附加组件或应用程序取决于他们获得的许可证是否处于活动状态,而不是取决于商店ID。购买订阅附加组件需要商店ID(在您的代码中启用),而不是用户购买并获取商店ID。商店ID属于开发人员而不是客户。因此,用户不可能购买或出售商店ID来登录您的应用程序/加载项

为应用程序启用订阅加载项时,应遵循以下步骤:

1.确定客户是否已拥有订阅的活动许可证。(AppLicense、AddOnLicenses)

2.使用表示要代表客户购买的订阅的对象

3.然后,代码确定订阅是否有试用版

4.调用方法以请求购买订阅

有关更多详细信息,请参阅文件: