@paywallex/react-native
v1.0.0
Published
Kit officiel Paywallex pour React Native et Expo : paiement et abonnement par le compte Paywallex ou Mobile Money, retour dans l'app, confirmation serveur.
Maintainers
Readme
@paywallex/react-native
Kit officiel Paywallex pour React Native et Expo. Il ouvre la page Paywallex dans la session navigateur du système (jamais une WebView). La personne paie avec son compte Paywallex en un geste ou avec Mobile Money, puis revient dans votre app par son schéma (monapp://…).
Le kit couvre le paiement, l'abonnement, le retour dans l'app et la confirmation auprès de Paywallex.
Avant de livrer une commande ou d'ouvrir un accès, confirmez toujours depuis votre serveur (webhook ou API
/v1). Le retour dans l'app seul ne prouve rien.
Installation
Installez le kit et le navigateur système d'Expo :
npx expo install @paywallex/react-native expo-web-browserSans Expo, passez votre propre fonction openAuthSession au kit (par exemple openAuth de react-native-inappbrowser-reborn).
Avant de commencer
Dans le Labs, rubrique Connecter une app : choisissez React Native et déclarez votre adresse de retour, par exemple monapp://paiement. Le Labs vous donne la clé publique de l'app (pxa_test_… en bac à sable, pxa_live_… en production) et l'adresse de l'API.
Déclarez aussi le schéma dans app.json :
{ "expo": { "scheme": "monapp" } }Encaisser un paiement
Le montant est en unités entières de la devise du compte ("5000" pour 5 000 F). La référence est votre numéro de commande, unique.
Créez le client, puis lancez le paiement :
import { Paywallex } from "@paywallex/react-native";
const paywallex = new Paywallex({
appKey: "pxa_test_…",
baseUrl: "https://api.paywallx.xyz",
returnUrl: "monapp://paiement",
});
const result = await paywallex.pay({ amount: "5000", reference: "CMD-1042", title: "Commande 1042" });
if (result.outcome === "paid") {
// Afficher « Merci ». Votre serveur livre après le webhook payment.succeeded.
}outcome vaut paid, pending (Mobile Money pas encore confirmé : réessayez avec paywallex.status("CMD-1042")), failed, expired ou cancelled.
Abonner une personne
Un abonnement se crée toujours depuis votre serveur, avec votre clé secrète. La personne l'accepte ensuite dans Paywallex.
Sur votre serveur, créez le lien avec le schéma de l'app en retour :
const link = await paywallexServer.subscriptions.create({
plan: "…",
customer_reference: "client-77",
success_url: "monapp://abonnement",
cancel_url: "monapp://abonnement",
});
// renvoyez link.subscribe_url à l'appDans l'app, ouvrez le lien :
const r = await paywallex.subscribe(subscribeUrl);
if (r.outcome === "returned") {
// r.subscriptionId : votre serveur vérifie GET /v1/subscriptions/{id} avant d'ouvrir l'accès
}Pour « Gérer mon abonnement », votre serveur crée le lien avec POST /v1/subscriptions/{id}/manage_link, puis l'app l'ouvre avec paywallex.manageSubscription(manageUrl).
Les erreurs
Chaque erreur est une PaywallexError avec un code stable : invalid_return_url, invalid_url, invalid_response, ou le code renvoyé par Paywallex. Testez le code, jamais le message.
Licence
MIT.
