Integrera handel i min app
Använd Proyecta SDK för att skapa kunder, starta checkouts, begränsa åtkomst till funktioner och avbryta prenumerationer från din appkod.
När du har anslutit Stripe och skapat en produkt kopplar du handeln till din app via SDK-resursen proyecta.commerce. De fyra vanligaste åtgärderna är: skapa en kund, starta en checkout, kontrollera åtkomst till funktioner och avbryta en prenumeration.
import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });1. Skapa en kund
Section titled “1. Skapa en kund”En kund är den fakturerbara enheten i din app — vanligtvis en användare, organisation eller ett projekt. Skapa en så snart motsvarande entitet skapas i din databas och spara sedan det returnerade id:t så att du kan referera till kunden i checkouts och åtkomstkontroller.
const customer = await proyecta.commerce.customers.create({ email: 'alice@example.com', name: 'Alice Liddell',});
await db.users.update({ id: userId, proyectaCustomerId: customer.id });Du kan också ange en faktureringsadress (line1, line2, city, state, postal_code, country) vid skapandet eller via customers.update().
2. Starta en checkout
Section titled “2. Starta en checkout”commerce.checkout() skapar en Stripe-hostad checkout-session och returnerar en URL att omdirigera kunden till. Efter betalningen omdirigerar Stripe kunden till din success_url.
const { url } = await proyecta.commerce.checkout({ customer_id: customer.id, line_items: [{ variant_id: 'var_pro_monthly', quantity: 1 }], success_url: 'https://myapp.com/welcome', cancel_url: 'https://myapp.com/pricing',});
return Response.redirect(url);Flera line_items stöds. För prenumerationer representerar quantity antalet platser.
3. Kontrollera åtkomst till funktioner
Section titled “3. Kontrollera åtkomst till funktioner”Innan du låter en kund använda en premiumfunktion anropar du commerce.check() för att verifiera att de har åtkomst:
const { has_access } = await proyecta.commerce.check({ customer_id: customer.id, resource_id: 'feat_pro_features',});
if (!has_access) { return Response.json({ error: 'Upgrade required' }, { status: 402 });}Det här är det rekommenderade sättet att begränsa åtkomst till premiuminnehåll. Se Produkter och funktioner för modellen för funktioner och rättigheter.
4. Avbryta en prenumeration
Section titled “4. Avbryta en prenumeration”await proyecta.commerce.cancel({ customer_id: customer.id, subscription_id: 'sub_123', cancellation_timing: 'at_billing_period_end', // or 'immediate'});Som standard behåller kunden åtkomst fram till slutet av faktureringsperioden.
Låt AI:n koppla ihop allt
Section titled “Låt AI:n koppla ihop allt”Du behöver inte skriva det här för hand. Vanliga promptar:
"Create a Proyecta customer when a user signs up. Store the proyecta_customer_id on the user record.""Build a /pricing page that shows my Proyecta products and starts a checkout when a button is clicked.""Gate the /admin route — only allow users whose Proyecta customer has access to feat_admin.""When a user clicks Cancel Subscription, call proyecta.commerce.cancel with at_billing_period_end."