这发生在我们的生产服务器上。我们有一个基于订阅的产品,并且我们在节点后端收听 Google Play 的实时开发者通知。我们使用
purchases.subscriptionsv2.get
来解析通知。
最近我们注意到该用户有几条SUBSCRIPTION_PURCHASED通知,购买的
subscriptionState
从一开始就是SUBSCRIPTION_STATE_CANCELED,当我们第一次收到通知时,canceledStateContext
设置为{"systemInitiatedCancellation": {}}
。
这是什么意思?我的意思是,通常 SUBSCRIPTION_PURCHASED 通知会附带 SUBSCRIPTION_STATE_ACTIVE,我们会确认该通知。从 Google 的文档 中可以看出“确保 subscriptionState 字段的值为 SUBSCRIPTION_STATE_ACTIVE。”这种情况我们该怎么办呢?为什么系统一开始就取消订阅了?
我们使用
purchases.subscriptionsv2.get
来解析通知。但如果我们用 purchases.subscriptions.get
解析相同的通知,它会显示 paymentState
为 1,表示已收到付款,而 cancelReason
也是 1,表示已被系统取消。我不确定 paymentState 是否始终保持 1 还是从 0 变为 1(待收到),我们没有收到其他通知。
请告诉我这种情况意味着什么以及最佳实践应该是什么,谢谢!