4.3.0
0.61.5
iOS 13及更高版本
它应该去购买或恢复产品,但出现错误。
代码:
尝试{
const购买=等待RNIap.getAvailablePurchases();
如果(purchase && Purchases.length> 0){
this.setState({isLoading:false});
Alert.alert('恢复成功');
}别的{
this.requestPurchase(itemSku);
}
} catch(err){
Alert.alert(err.message);
}
此后,当用户未单击任何选项时,它将捕获错误“ E_UNKNOWN无法连接到iTunes Store”。
我对两者进行了测试,行为是相同的。
我们发现,在运行Wi-Fi的iOS 13.2.3的iPad上进行检查时,您的应用内购买产品存在一个或多个错误。
具体来说,当我们尝试购买时显示了错误消息。
下一步
在服务器上验证收据时,您的服务器需要能够处理生产签名的应用程序,该应用程序从Apple的测试环境获取收据。 对于生产服务器,建议的方法是始终先根据生产App Store验证收据。 如果验证失败并显示错误代码“生产中使用的沙盒收据”,则应改为针对测试环境进行验证。
资源
您可以在App Store Connect开发人员帮助中了解有关在开发沙箱环境中测试应用内购买产品的更多信息。
有关收据验证的更多信息,请参阅我应使用哪个URL来验证收据? 在应用内购买常见问题解答中。
在App Store Connect开发人员帮助中了解如何生成收据验证代码。
有关详细信息,请参见附件的屏幕截图。
同样的问题
同样,有人解决了吗?
我解决了这个问题
我解决了这个问题
如何分享?
这里真的没有什么要解决的。 这是用户取消的通知。
更改您的错误侦听器以检查该代码(E_USER_CANCELLED),如果返回了该代码,请不要激活订阅或提供该服务,然后使其静默失败。
如果您没有在购买呼叫中进行任何状态更改,只需添加以下内容:
if (error.code === "E_USER_CANCELLED") { return; }
作为侦听器的调用块的第一行。 那将只是简单地返回到他们所在的屏幕。 如果您需要先更改状态,然后再返回即可; 用这样的东西
if (error.code === "E_USER_CANCELLED") {
this.setState({ subscription: undefined, userCancelled: true, whateverElse: 'completed' }, () => { return; });
+1-也遇到此问题。
这里真的没有什么要解决的。 这是用户取消的通知。
更改您的错误侦听器以检查该代码(E_USER_CANCELLED),如果返回了该代码,请不要激活订阅或提供该服务,然后使其静默失败。
那不是他原始帖子中的代码。
嘿,看来这个问题最近没有任何活动。 问题是否已解决,还是仍然需要社区的关注? 如果没有其他活动,则可能已关闭此问题。 您也可以将此问题标记为“供讨论”或“良好的第一期”,我将其保留为开放状态。 感谢你的贡献。
此问题沙箱用户仅运行Testflight应用程序。 我在testfligt上测试了我的应用程序。 它的工作。
嘿,看来这个问题最近没有任何活动。 问题是否已解决,还是仍然需要社区的关注? 如果没有其他活动,则可能已关闭此问题。 您也可以将此问题标记为“供讨论”或“良好的第一期”,我将其保留为开放状态。 感谢你的贡献。
我们在tesflight中始终看到此错误,但在生产中间歇性地看到。 有人找到解决方案吗?
嘿,看来这个问题最近没有任何活动。 问题是否已解决,还是仍然需要社区的关注? 如果没有其他活动,则可能已关闭此问题。 您也可以将此问题标记为“供讨论”或“良好的第一期”,我将其保留为开放状态。 感谢你的贡献。