שילוב מסחר באפליקציה שלי
השתמש ב-Proyecta SDK כדי ליצור לקוחות, להתחיל תהליכי תשלום, לשלוט בגישה לתכונות ולבטל מנויים מקוד האפליקציה שלך.
לאחר שחיברת את Stripe ויצרת מוצר, אתה מחבר את המסחר לאפליקציה שלך דרך משאב ה-SDK proyecta.commerce. ארבע הפעולות הנפוצות ביותר הן: יצירת לקוח, התחלת תהליך תשלום, בדיקת גישה לתכונות וביטול מנוי.
import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });1. יצירת לקוח
Section titled “1. יצירת לקוח”לקוח הוא הישות החייבת בתשלום באפליקציה שלך — בדרך כלל משתמש, ארגון או פרויקט. צור לקוח מיד כשהישות המתאימה נוצרת במסד הנתונים שלך, ואחסן את ה-id המוחזר כדי שתוכל להפנות אליו בתהליכי תשלום ובבדיקות גישה.
const customer = await proyecta.commerce.customers.create({ email: 'alice@example.com', name: 'Alice Liddell',});
await db.users.update({ id: userId, proyectaCustomerId: customer.id });ניתן גם להעביר כתובת לחיוב (line1, line2, city, state, postal_code, country) בעת היצירה או דרך customers.update().
2. התחלת תהליך תשלום
Section titled “2. התחלת תהליך תשלום”commerce.checkout() יוצר session של checkout המתארח ב-Stripe ומחזיר כתובת URL להפניית הלקוח אליה. לאחר התשלום, Stripe מפנה את הלקוח ל-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);נתמכים מספר line_items. במנויים, quantity מייצג את מספר המושבים.
3. בדיקת גישה לתכונות
Section titled “3. בדיקת גישה לתכונות”לפני שמאפשרים ללקוח להשתמש בתכונה פרימיום, קרא ל-commerce.check() כדי לוודא שיש לו גישה:
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 });}זו הדרך המומלצת לשלוט בגישה לתוכן פרימיום. ראה מוצרים ותכונות למודל התכונות וההרשאות.
4. ביטול מנוי
Section titled “4. ביטול מנוי”await proyecta.commerce.cancel({ customer_id: customer.id, subscription_id: 'sub_123', cancellation_timing: 'at_billing_period_end', // or 'immediate'});כברירת מחדל, הלקוח שומר על הגישה עד סוף תקופת החיוב הנוכחית.
תן ל-AI לחבר את הכול
Section titled “תן ל-AI לחבר את הכול”אין צורך לכתוב את זה ידנית. פרומפטים נפוצים:
"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."