Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Stripe is een betalingsverwerkingsplatform waarmee u een vooraf gebouwde afrekenpagina aan een website kunt toevoegen en online betalingen kunt accepteren en beheren. Het is zeer populair vanwege het gebruiksgemak, uitgebreide documentatie, ondersteuning voor lokale betalingen, aanpassings- en merkopties, abonnementen, facturering en fraudepreventie.

Met Stripe kunt u betalingen accepteren van verschillende bronnen, waaronder creditcards en betaalpassen, Apple Pay en Google Pay.

Stripe Checkout toevoegen aan een Next.js-toepassing

U kunt Stripe Checkout integreren met applicaties die zijn gemaakt met verschillende technologieën, waaronder Next.js.

Deze tutorial gaat ervan uit dat je een Next.js e-commerce site hebt opgezet en geeft alleen een handleiding over hoe je Stripe checkout aan de site kunt toevoegen.

Een Stripe-account opzetten en API-sleutels ophalen

instagram viewer

Om Stripe-afrekenen te gebruiken, moet u een Stripe-account maken en de API-sleutels ophalen. De API-sleutels bestaan ​​uit een publiceerbare sleutel en een geheime sleutel, die u zult gebruiken om verzoeken van uw applicatie aan de Stripe API te verifiëren.

Volg deze stappen om een ​​Stripe-account in te stellen:

  1. Ga naar de Streep website en klik op de knop "Aanmelden".
  2. Voer uw e-mailadres, volledige naam, land en wachtwoord in en klik op de knop "Account maken".
  3. Verifieer je e-mailadres door de instructies te volgen in de e-mail die Stripe je stuurt.
  4. Klik op het stripe-dashboard op "Betalingen activeren" en beantwoord de promptvragen om het accountconfiguratieproces te voltooien. Deze vragen kunnen gaan over de bedrijfsnaam, het adres en bankgegevens. Gebruik de testmodus voor ontwikkelingsdoeleinden.
  5. Kopieer de API-sleutels van het tabblad "Ontwikkelaars" naar het .env-bestand in uw app-map.

Je hebt nu toegang tot het Stripe-account met behulp van de API-sleutels.

Het Stripe npm-pakket installeren

Voer deze opdracht uit om het Stripe npm-pakket te installeren.

npm installeer streep

Importeer de Stripe-bibliotheek in uw uitcheckcomponentpagina.

importeren Streep van'streep';

Maak in de API-map een nieuw bestand met de naam checkout-session.js-bestand. Initialiseer het Stripe-object met de API-sleutels die u hebt opgehaald van uw Stripe-dashboard.

const streep = vereisen('streep')(proces.env. STREEP_SECRET_KEY);

Haal in de handler-functie de items op om uit te checken uit de body-parameters.

exporterenstandaardasynchroonfunctiebehandelaar(req, res) {
const { item } = aanvraaglichaam;
};

Maak een checkout-sessieobject voor de handlerfunctie en geef de items door.

const sessie = wachten stripe.checkout.sessions.create({
betalingsmethode_types: ['kaart'],
regelitems: [
item,
],
modus: 'betaling',
succes_url: `${req.headers.origin}/?success=true`,
annuleren_url: `${req.headers.origin}/?canceled=true`,
});

Dit is wat de knooppunten die u doorgeeft aan het sessieobject betekenen:

  • betalingsmethode_types: De betaalmethode die de checkout-sessie accepteert. Blader door de lijst met beschikbare betaalmethoden in de Streep documentatie.
  • regelitems: Een lijst met items die de gebruiker koopt.
  • modus: De modus van de afrekensessie. Als de afrekenitems minstens één terugkerend item bevatten, pas dan een "abonnement" toe.
  • succes_url: De URL Stripe zal gebruikers omleiden als de betaling succesvol is
  • annuleer_url: De URL Stripe zal gebruikers omleiden als ze de betaling annuleren.

Alles bij elkaar zou het bestand checkout-session.js er als volgt uit moeten zien:

exporterenstandaardasynchroonfunctiebehandelaar(req, res) {
als (vereist methode 'NA') {
const { winkelwagen } = aanvraaglichaam;

poging {
const sessie = wachten stripe.checkout.sessions.create({
regelitems: [
kar
],
modus: 'betaling',
succes_url: `${req.headers.origin}/success`,
annuleren_url: `${req.headers.origin}/cancele`,
});

res.redirect(303, sessie.url);
} vangst (fout) {
res.status (fout.statusCode || 500.json (foutbericht);
}
} anders {
reset.setHeader('Toestaan', 'NA');
res.status(405).einde('Methode niet toegestaan');
}
}

Deze functie gebruikt nu de try/catch om gebruikers om te leiden wanneer er een fout optreedt tijdens het afrekenen. Nu u de API-route hebt gemaakt die de betaling zal verwerken, is de volgende stap het maken van een afrekencomponent om het afrekenproces af te handelen.

Bekijk dit bericht op API-routes maken in Next.js voor een meer diepgaande uitleg van Next.js API-routes.

Een afrekencomponent maken

Om het afrekenen te verwerken, moet u de @stripe/stripe-js-bibliotheek installeren met behulp van NPM.

npm installeer @stripe/stripe-js

@stripe/stripe-js-bibliotheek is een laadhulpprogramma waarmee u de Stripe.js-instantie kunt laden.

Zodra de installatie is voltooid, maakt u een nieuw bestand in uw map /components met de naam /components/checkout.js. Roep vervolgens de loadstripe-functie aan vanuit de @stripe/stripe-js-bibliotheek en geef de publiceerbare sleutel door als argument.

importeren { belastingStripe } van'@streep/streep-js';

const stripePromise = loadStripe(
proces.env. NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
);

loadstripe() retourneert een belofte die wordt opgelost met een nieuw gemaakt Stripe-object zodra Stripe.js is geladen.

Voeg vervolgens een functie toe om een ​​checkout-sessie in de component te maken.

exporterenstandaardfunctieUitchecken({winkelwagen}) {
const handleCheckout = asynchroon () => {
poging {
const streep = wachten streepBelofte;

const checkoutSessie = wachten axios.post("/api/kassa-sessie", {
kar,
});

const resultaat = wachten streep.redirectToCheckout({
sessionId: checkoutSession.data.id,
});

als (resultaat.fout) {
waarschuwing (resultaat.fout.bericht);
}
} vangst (fout) {
troosten.log (fout);
}
};
opbrengst (


</div>
);
}

Deze functie gebruikt Axios om de API aan te roepen die u hebt gemaakt in de map /api om de uitchecksessie op te halen.

Voeg een afrekenknop toe aan de retourverklaring die de functie handleCheckout activeert wanneer erop wordt geklikt.

U kunt de afrekencomponent op de winkelwagenpagina aanroepen.

De omleidingen van Stripe afhandelen

In de checkout API-route heb je een succes-URL en een annulerings-URL gedefinieerd die stripe een gebruiker moet omleiden wanneer het proces succesvol is of mislukt. De annuleer-URL verwijst naar de /cancel-route, terwijl de succes-URL verwijst naar de /succes-route. Voeg twee componenten toe aan de map /pages met de naam success en cancel om deze URL's te verwerken.

Voeg in pages/success.js de succescomponent toe.

exporterenstandaardfunctieSucces() {
opbrengst<div>Afrekenen succesvoldiv>;
}

Voeg in pages/cancel.js de component annuleren toe.

exporterenstandaardfunctieAnnuleren() {
opbrengst<div>Er is een fout opgetreden tijdens het afrekenendiv>;
}

Nu zal Stripe doorverwijzen naar een van deze pagina's, afhankelijk van de afrekenstatus.

Als u Next.js 13 gebruikt, raadpleegt u deze zelfstudie op hoe de app-map werkt in Next.js 13 om over te schakelen van de map /pages.

Aanvullende aanpassingsopties voor de afrekenpagina

Vanuit het Stripe-dashboard kunt u de afrekenpagina aanpassen aan de uitstraling van uw merk. U kunt een logo, pictogram, merkkleur, accentkleur toevoegen en zelfs uw eigen aangepaste domein gebruiken. Bovendien kunt u bij het maken van de afrekensessie de gewenste betaalmethoden toevoegen en ook de taal specificeren die Stripe op de afrekenpagina moet weergeven. Met al deze opties kunt u het afrekenproces aanpassen aan uw toepassing.

Waarom Stripe gebruiken voor de afrekenpagina?

Hoewel u uw eigen kassaverwerkingsservice kunt bouwen, is het gebruik van een betalingsplatform zoals Stripe meestal een betere optie. Stripe Checkout helpt u de ontwikkelingstijd te verkorten, zodat u binnen korte tijd kunt beginnen met het accepteren van betalingen.

Bovendien krijgt u extra functies zoals PCI-compliance, winkelwagenherstel, kortingsmogelijkheden en de mogelijkheid om verzendinformatie te verzamelen en facturen na betaling te verzenden.