4.3.0
0.61.5
iOS 13 e posterior
Deve ir para compra ou restauração do produto, mas está recebendo um erro.
Código:
tentar{
compras constantes = esperar RNIap.getAvailablePurchases ();
if (compras && compras.length> 0) {
this.setState ({isLoading: false});
Alert.alert ('Restauração bem-sucedida');
}outro{
this.requestPurchase (itemSku);
}
} catch (errar) {
Alert.alert (err.message);
}
Depois disso, aparecerá o erro "E_UNKNOWN Não é possível conectar à iTunes Store" enquanto o usuário não clicou em nenhuma opção.
Eu testei em ambos e o comportamento é o mesmo.
Descobrimos que seus produtos de compra no aplicativo exibiram um ou mais bugs quando analisados no iPad executando iOS 13.2.3 em Wi-Fi.
Especificamente, uma mensagem de erro foi exibida quando tentamos comprar.
Próximos passos
Ao validar recibos em seu servidor, ele precisa ser capaz de lidar com um aplicativo assinado em produção, obtendo seus recibos do ambiente de teste da Apple. A abordagem recomendada é que seu servidor de produção sempre valide os recebimentos primeiro na App Store de produção. Se a validação falhar com o código de erro "Recibo de sandbox usado na produção", você deve validar no ambiente de teste.
Recursos
Você pode aprender mais sobre como testar produtos de compra no aplicativo em seu ambiente de sandbox de desenvolvimento na Ajuda do desenvolvedor do App Store Connect.
Para obter mais informações sobre a validação do recibo, consulte Qual url devo usar para verificar o meu recibo? nas Perguntas frequentes de compra no aplicativo.
Aprenda a gerar um código de validação de recibo na Ajuda do desenvolvedor do App Store Connect.
Por favor, veja a captura de tela em anexo para detalhes.
o mesmo problema...
mesmo, alguém resolveu?
Eu resolvi esse problema
Eu resolvi esse problema
Como, você pode compartilhar?
Não há nada realmente para resolver aqui. É uma notificação de que o usuário cancelou.
Altere seu listener de erro para verificar esse código (E_USER_CANCELLED) e se ele for retornado, não ative a assinatura ou forneça o serviço e deixe-o falhar silenciosamente.
Se você não fez nenhuma alteração de estado na chamada de compra, basta adicionar:
if (error.code === "E_USER_CANCELLED") { return; }
como a primeira linha do bloco de chamada do ouvinte. Isso simplesmente retornará à tela em que estavam. Se você precisar fazer alterações no estado primeiro, em vez de retornar; use algo assim
if (error.code === "E_USER_CANCELLED") {
this.setState({ subscription: undefined, userCancelled: true, whateverElse: 'completed' }, () => { return; });
+1 - também enfrentando esse problema.
Não há nada realmente para resolver aqui. É uma notificação de que o usuário cancelou.
Altere seu listener de erro para verificar esse código (E_USER_CANCELLED) e se ele for retornado, não ative a assinatura ou forneça o serviço e deixe-o falhar silenciosamente.
Esse não é o código em sua postagem original.
Olá, parece que não houve nenhuma atividade sobre este problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Para discussão" ou "Bom primeiro problema" e eu o deixarei em aberto. Obrigado por suas contribuições.
Este usuário de sandbox problemático só executa o aplicativo Testflight. Testei meu aplicativo no testfligt. está funcionando.
Olá, parece que não houve nenhuma atividade sobre este problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Para discussão" ou "Bom primeiro problema" e eu o deixarei em aberto. Obrigado por suas contribuições.
Vemos esse erro de forma consistente no teste, mas de forma intermitente na produção. Alguém encontrou alguma solução?
Olá, parece que não houve nenhuma atividade sobre este problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Para discussão" ou "Bom primeiro problema" e eu o deixarei em aberto. Obrigado por suas contribuições.