@virex-tech/paywallo-sdk
v1.1.3
Published
SDK React Native para integração com Paywallo - Paywalls, Subscriptions e Analytics
Maintainers
Readme
@virex-tech/paywallo-sdk
SDK oficial para integração com Paywallo em aplicações React Native. Oferece Analytics, Feature Flags, Paywalls dinâmicas e gerenciamento de In-App Purchases.
Instalação
npm install @virex-tech/paywallo-sdkPeer Dependencies
O SDK requer as seguintes dependências instaladas no seu projeto:
npm install @react-native-async-storage/async-storage @react-native-community/netinfo react-native-iap react-native-device-infoPersistência de Device ID (Recomendado)
Para melhor persistência do device ID entre reinstalações do app (especialmente no iOS), instale também:
npm install react-native-keychainEsta dependência é opcional, mas altamente recomendada. Com ela:
- iOS: Device ID persiste no Keychain mesmo após desinstalar o app
- Android: Device ID é armazenado de forma segura no Keystore
Sem ela, o SDK usa AsyncStorage como fallback (funciona, mas não persiste após desinstalação).
Para iOS:
cd ios && pod installQuick Start
1. Configure o Provider
import { PaywalloProvider } from '@virex-tech/paywallo-sdk';
export default function App() {
return (
<PaywalloProvider
config={{
appKey: 'sua_app_key',
debug: __DEV__,
}}
>
<YourApp />
</PaywalloProvider>
);
}2. Use os Hooks
import { usePaywallo, useSubscription } from '@virex-tech/paywallo-sdk';
function MyComponent() {
const { presentPaywall, hasActiveSubscription } = usePaywallo();
const { subscription } = useSubscription();
const handlePurchase = async () => {
const hasAccess = await hasActiveSubscription();
if (!hasAccess) {
await presentPaywall('default');
}
};
return (
<Button onPress={handlePurchase}>
{subscription ? 'Premium' : 'Upgrade'}
</Button>
);
}API Principal
PaywalloProvider
Provider que inicializa o SDK e disponibiliza o contexto para toda a aplicação.
<PaywalloProvider config={PaywalloConfig}>
{children}
</PaywalloProvider>usePaywallo()
Hook principal com acesso a todas as funcionalidades:
isInitialized- Se o SDK foi inicializadodistinctId- ID único do usuáriopresentPaywall(placement)- Apresenta uma paywallhasActiveSubscription()- Verifica se há assinatura ativagetSubscription()- Obtém dados da assinaturarestorePurchases()- Restaura compras anteriores
useSubscription()
Hook para gerenciamento de assinaturas:
subscription- Dados da assinatura atualisLoading- Estado de carregamentorefresh()- Atualiza dados da assinatura
PaywalloClient (API Imperativa)
Para uso fora de componentes React:
import { PaywalloClient } from '@virex-tech/paywallo-sdk';
// Identificar usuário
await PaywalloClient.identify('user_123', { email: '[email protected]' });
// Rastrear evento
await PaywalloClient.track('purchase_completed', { product: 'premium' });
// Feature Flags
const variant = await PaywalloClient.getVariant('new_feature');Tipos
interface PaywalloConfig {
appKey: string;
baseUrl?: string;
debug?: boolean;
environment?: 'Production' | 'Sandbox';
}
interface Subscription {
productId: string;
status: 'active' | 'expired' | 'cancelled' | 'in_grace_period';
expiresAt: Date | null;
platform: 'ios' | 'android';
autoRenewEnabled: boolean;
}
interface PaywallResult {
presented: boolean;
purchased: boolean;
restored: boolean;
cancelled: boolean;
error?: Error;
}Suporte
Para dúvidas ou problemas, entre em contato com o suporte Paywallo.
Licença
MIT
