如何解决SubscriptionPurchase.Get 响应中缺少 Google Play Developer API cancelSurveyResult
我们正在为 Android 应用内购买实施服务器到服务器的通知。
对于每个用户生成的事件(购买、取消等),我们都会根据 Google Play 的 rtdn reference 接收和解析实时开发者通知。
根据 Google Play Developer API purchases.subscriptions 解析每个通知后,我们将订阅提交到 Play 商店进行验证。
我们期望返回的 JSON 响应应与用户已采取的操作相对应。例如,收到 SUBSCRIPTION_PURCHASED 通知后,验证响应如下所示:
{
"startTimeMillis": "1615196368232","expiryTimeMillis": "1615196783756","autoRenewing": true,"priceCurrencyCode": "EUR","priceAmountMicros": "3990000","countryCode": "DE","developerPayload": "","paymentState": 1,"orderId": "GPA.3391-4718-6063-47314","purchaseType": 0,"acknowledgementState": 1,"kind": "androidpublisher#subscriptionPurchase"
}
现在,当用户取消订阅(通过 Play 商店应用)时,麻烦就开始了,因此会生成 SUBSCRIPTION_CANCELED 通知。验证响应如下所示:
{
"startTimeMillis": "1615196368232","expiryTimeMillis": "1615196664327","autoRenewing": false,"cancelReason": 0,"userCancellationTimeMillis": "1615196648401","kind": "androidpublisher#subscriptionPurchase"
}
存在一些定义取消的新字段:
"cancelReason": integer,"userCancellationTimeMillis": string,
这很棒并且按预期工作。 但是,仍然缺少一些取消字段。即SubscriptionCancelSurveyResult,定义为:
"cancelSurveyResult": {
"cancelSurveyReason": integer,"userInputCancelReason": string
}
文档中提到了 userInputCancelReason
和 userCancellationTimeMillis
:
仅当 cancelReason 为 0 时出现。
cancelReason
已经为 0,如所附屏幕截图所示。但是,只有 userCancellationTimeMillis
存在。为什么没有 cancelSurveyResult
和 userInputCancelReason
?
您的应用可以查看从 Google Play Developer API 返回的订阅资源中的 cancelReason
以了解订阅被取消的原因(例如客户取消或遇到结算问题)。如果订阅已被用户取消,您的应用可以查看 cancelSurveyResult
字段以了解用户取消订阅的原因。
来源:https://developer.android.com/google/play/billing/subscriptions#cancel
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。