当我在成功购买后传递 buyId 来代替 token 参数时,androidPublisher 订阅 API(例如取消订阅 api)总是抛出 400 错误。 buyId是Flutter中in_app_purchase包中PurchaseDetails类中的一个字段。错误看起来像这样:
"error": {
"code": 400,
"message": "Invalid Value",
"errors": [
{
"message": "Invalid Value",
"domain": "global",
"reason": "invalid"
}
]
}
}
经过各种其他问题后,似乎错误出在purchaseId字段中。看起来这不是特定于订阅购买的令牌。应该用什么来代替这个?
出现 400 错误的原因是,purchaseId 字段没有引用 API 中规定的purchaseToken(虽然不太清楚)。参考本机 Android 应用内计费中的 Purchase 类,这一点变得很清楚。
purchaseId字段指的是Purchase类的orderId字段(这不是androidPublisher API使用的)。为了在Flutter中引用Android的Purchase类的purchaseToken字段,请使用以下字段数据:
PurchaseDetails.verificationData.serverVerificationData