我使用的是react-native-iap包。我正在尝试获取最新的订阅并检查其有效性
await RNIap.validateReceiptIos(receiptBody, true).then((receipt) => {
try {
const renewalHistory = receipt.latest_receipt_info
const expiration = renewalHistory[0].expires_date_ms
expired = Date.now() > expiration
productId = renewalHistory[0].product_id
} catch (error) {}
})我是一个组中的多个自动续订订阅。我订阅了一个,然后执行上面的代码,给我订阅的产品,并将其标记为订阅。First try工作正常。现在,在此之后,我再次订阅了另一个包,并运行上面的代码给我以前的订阅,而不是我订阅的当前订阅。有时,第二步也可以正常工作,但问题出现在第三步。我找到的原因是我在上面的latest_receipt_info中没有获得最新的订阅收据信息。
发布于 2021-01-28 23:23:36
看看YouTube上的这篇教程,它可能会对你有所帮助:https://youtu.be/4JLHRV2kiCU
此外,下面是他在评论部分所说的:在我编写renewalHistoryrenewalHistory.length - 1的地方,它在测试环境中工作得很好。然而,似乎当应用程序发布时,这并不起作用,您应该使用renewalHistory。我在我的应用程序中修复了这个问题,首先尝试使用生产URL进行验证,使用renewalHistory。如果在尝试使用生产URL进行验证后收到21007状态代码,则使用renewalHistoryrenewalHistory.length -1使用测试URL进行验证。
https://stackoverflow.com/questions/65718865
复制相似问题