გზამკვლევები

როგორ დავამატოთ გამოწერები Stripe-ით: გეგმები, საცდელი პერიოდი, webhook-ები და ჩავარდნილი გადახდები

გამოწერების დასამატებლად Stripe-ით შექმენით პროდუქტი განმეორებადი ფასით Stripe Dashboard-ში, გაგზავნეთ მომხმარებლები Stripe Checkout-ზე გამოწერის რეჟიმში თქვენი სერვერიდან და მიეცით webhook-ს საშუალება, რომ თქვენმა აპმა იცოდეს, როდის წარმატებულია, ჩავარდა, შეიცვალა ან დასრულდა ყოველი გადახდა. სტატუსი მომხმარებელს მიაბით და წვდომა სწორედ ამ სტატუსით განსაზღვრეთ, წარმატების გვერდით კი არა. დაამატეთ ღილაკი Manage billing, რომელიც Stripe-ის ჰოსტირებულ customer portal-ს ხსნის — მომხმარებლებს ბარათის შეცვლა, გეგმის შეცვლა და გაუქმება ამით შეუძლიათ, თქვენ კი ამ ეკრანებს არ აშენებთ.

ეს გზამკვლევი როგორ დავამატოთ გადახდები აპში-ზეა აგებული, რომელიც ერთჯერად Checkout-ს, სატესტო რეჟიმსა და გაშვებას ფარავს. აქ ვფოკუსირდებით იმაზე, რაც განმეორებად გადახდებში განსხვავდება. Stripe-ის დეტალები აღებულია მისი დოკუმენტაციიდან 2026 წლის სექტემბრის მდგომარეობით.

რატომ არის გამოწერები უფრო რთული, ვიდრე ერთჯერადი გადახდები

ერთჯერადი გადახდა მომხმარებლის აპში ყოფნისას ხდება. გამოწერა კი მომხმარებლის წასვლის შემდეგაც გრძელდება: ყოველთვიური განახლებები, ვადაგასული ბარათები, შუა ციკლში გაუმჯობესებები, გაუქმებები, რომლებიც პერიოდის ბოლოს ძალაში შედის. თქვენი აპი ამის შესახებ მხოლოდ webhook-ებით იგებს. გამოწერების უმეტესი შეცდომა სწორედ იმაში მდგომარეობს, რომ პირველი გადახდა მთელ ისტორიად მიიჩნევა.

თქვენი ვარიანტები

მიდგომარა უნდა ააშენოთსაუკეთესოა
Payment Link განმეორებადი ფასითმხოლოდ ბმულიმოთხოვნის გატესტვა; წვდომის ხელით მართვა
Checkout (გამოწერის რეჟიმი) + customer portalსერვერული მარშრუტი, webhook, ანგარიშსწორების ღილაკიSaaS აპების უმეტესობა და წევრობები
Subscriptions API საკუთარი გადახდის ფორმითგაცილებით მეტი: გადახდის ინტერფეისი, ავთენტიფიკაცია, ხელახალი ცდებიაპები უჩვეულო ანგარიშსწორების პროცესით
Merchant-of-record პროვაიდერიCheckout-ის მსგავსიგამყიდველები, რომლებიც გადასახადს პროვაიდერს ანდობენ

რიგითი აპისთვის Checkout და portal საუკეთესო კომპრომისია. თუ გადასახადების დამუშავება გაწუხებთ, შეადარეთ პროვაიდერები Stripe vs Paddle vs Lemon Squeezy გვერდზე.

ფასები Stripe-ში ჯერ დაგეგმეთ

Stripe-ში პროდუქტი არის ის, რასაც ყიდით („Pro გეგმა“), ხოლო ფასი არის ის, თუ როგორ ახდენთ ამის დატარიფებას („$20 თვეში“, „$200 წელიწადში“). ერთ პროდუქტს შეიძლება რამდენიმე ფასი ჰქონდეს. გადაწყვიტეთ:

  • რა საფეხურებს სთავაზობთ და რას ხსნის თითოეული თქვენს აპში
  • თვიური, წლიური თუ ორივე
  • გაქვთ თუ არა საცდელი პერიოდი და სჭირდება თუ არა ბარათი წინასწარ

პროდუქტები და ფასები სატესტო რეჟიმში შექმენით და მათი ფასის ID-ები შეინახეთ; თქვენი აპი მათ იყენებს. თუ ფასი ჯერ არ გაქვთ გადაწყვეტილი, წაიკითხეთ როგორ დავადგინოთ SaaS პროდუქტის ფასი და freemium და უფასო საცდელი პერიოდი.

გამოწერის ციკლი, რომელიც უნდა დაამუშაოთ

Stripe-ის გამოწერების მიმოხილვა ჩამოთვლის სტატუსებს, რომლებიც გამოწერას შეიძლება ჰქონდეს. წვდომისთვის ყველაზე მნიშვნელოვანია:

სტატუსირას ნიშნავსმისცეთ წვდომა?
trialingსაცდელ პერიოდშიადიახ
activeკარგ მდგომარეობაშიადიახ
incompleteპირველი გადახდა ჯერ არ დასრულებულა; Stripe მომხმარებელს 23 საათს აძლევსარა
incomplete_expiredპირველი გადახდა არასდროს წარმატებულაარა
past_dueბოლო გადახდა ჩაიშალა ან არ მომხდარა; შეიძლება მოჰყვეს ხელახალი ცდებითქვენი არჩევანი; ბევრი აპი მოკლე საშუალო პერიოდს აძლევს
unpaidხელახალი ცდები დასრულდა, ინვოისები ღიაა, მეტი ცდა აღარ არისარა; Stripe-ის დოკუმენტაცია ამბობს, რომ წვდომა უნდა გააუქმოთ
canceledდასრულდა; ხელახლა არ იწყებაარა
pausedსაცდელი დასრულდა გადახდის მეთოდის გარეშე და დაპაუზდაარა

შეინახეთ სტატუსი თქვენს მომხმარებელზე ან ანგარიშზე და წვდომა მას დააფუძნეთ. ყოველ ჯერზე, როცა შესაბამისი webhook მოვა, განაახლეთ იგი.

webhook მოვლენები, რომლებიც უნდა დაამუშაოთ

მოვლენარას აკეთებს თქვენი აპი
checkout.session.completedახალი Stripe customer-ისა და გამოწერის ID-ები მიაბით თქვენს მომხმარებელს
invoice.paidგამოწერა მონიშნეთ აქტიურად და ჩაწერეთ ახალი პერიოდის დასასრული
invoice.payment_failedაცნობეთ მომხმარებელს, რომ ბარათი ჩაიჭრა, და მიუთითეთ portal-ის ბმული
invoice.payment_action_requiredსთხოვეთ მომხმარებელს ბარათის ავთენტიფიკაციის დასრულება
customer.subscription.updatedგანაახლეთ გეგმა, სტატუსი და დაგეგმილი გაუქმება
customer.subscription.deletedამოიღეთ ფასიანი წვდომა
customer.subscription.trial_will_endშეახსენეთ მომხმარებელს საცდელის დასრულებამდე; Stripe ამას სამი დღით ადრე აგზავნის

Stripe-ის webhook დოკუმენტაციის დამმუშავებლის წესები ისევ მოქმედებს: შეამოწმეთ ხელმოწერა ნედლი ტანით, სწრაფად დააბრუნეთ 2xx, დაამუშავეთ დუბლიკატი და არანამდვილი თანმიმდევრობის მოვლენები და მოელოდით ხელახალ ცდებს. რა არის webhook გზამკვლევი იდეას ხსნის, ხოლო გადახდების გზამკვლევი წესებს დეტალურად ჩამოთვლის.

ნაბიჯ-ნაბიჯ

  1. შექმენით პროდუქტები და ფასები Stripe-ის სატესტო რეჟიმში.
  2. დაამატეთ საიდუმლოებები: საიდუმლო გასაღები, ფასის ID-ები და მოგვიანებით webhook-ის ხელმოწერის საიდუმლო. არასდროს ჩაწეროთ ისინი ფრონტენდის კოდში.
  3. ფასების გვერდი: თითოეული გეგმის ღილაკი იძახებს თქვენს სერვერს, რომელიც ქმნის Checkout Session-ს გამოწერის რეჟიმში შესული მომხმარებლისთვის. გადაეცით თქვენი მომხმარებლის ID, რომ webhook-მა გადახდა ანგარიშს დაუკავშიროს.
  4. webhook endpoint: შეამოწმეთ ხელმოწერები და დაამუშავეთ ზემოთ ჩამოთვლილი მოვლენები, მომხმარებელზე ერთი გამოწერის ჩანაწერის განახლებით.
  5. ფუნქციების შეზღუდვა შენახულ სტატუსსა და გეგმაზე დაყრდნობით, სერვერზე ყოველი დაცული მოქმედებისთვის, და არა მხოლოდ დამალული ღილაკებით.
  6. Customer portal: დააკონფიგურირეთ Stripe Dashboard-ში (რომელ გეგმებზე შეუძლიათ გადასვლა, შეუძლიათ თუ არა გაუქმება), შემდეგ დაამატეთ ღილაკი Manage billing, რომელიც სერვერზე portal-ის სესიას ქმნის და მომხმარებელს იქ გადაჰყავს.
  7. წარუმატებელი გადახდები: Stripe-ის ანგარიშსწორების პარამეტრებში აირჩიეთ ხელახალი ცდის ქცევა და ის, რაც ბოლო ცდის შემდეგ მოხდება. აჩვენეთ აპში ბანერი past_due სტატუსისას.
  8. შეამოწმეთ მთელი ციკლი, შემდეგ გამოაქვეყნეთ და დაარეგისტრირეთ live webhook.

პრომპტები AI ბილდერისთვის

დაამატე გამოწერის ანგარიშსწორება Stripe-ით. გეგმები: Starter (ფასის ID STRIPE_PRICE_STARTER-ში) და Pro (STRIPE_PRICE_PRO). ფასების გვერდი სერვერზე ქმნის Checkout Session-ს გამოწერის რეჟიმში STRIPE_SECRET_KEY-ით, შესული მომხმარებლის ID-ით. შეინახე Stripe customer ID, subscription ID, გეგმა და სტატუსი მომხმარებელზე. საიდუმლო გასაღები არასდროს მიეწოდოს ბრაუზერს.

დაამატე POST /api/stripe/webhook. გადაამოწმე ხელმოწერა STRIPE_WEBHOOK_SECRET-ით ნედლი მოთხოვნის ტანზე. დაამუშავე checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.updated, customer.subscription.deleted და customer.subscription.trial_will_end. ჩაწერე დამუშავებული მოვლენის ID-ები, რომ დუბლიკატები უგულებელყოფილი იყოს. მომხმარებლის სტატუსი განაახლე გამოწერის ობიექტიდან და არა იმ თანმიმდევრობიდან, რომლითაც მოვლენები მოვიდა.

შეზღუდე Pro ფუნქციები სერვერზე: დაუშვი მხოლოდ მაშინ, როცა სტატუსი არის active ან trialing და გეგმა არის Pro. როცა სტატუსი past_due-ა, აჩვენე ბანერი „გადახდა ვერ შესრულდა, განაახლეთ ბარათი“. დაამატე ღილაკი Manage billing, რომელიც ამ მომხმარებლისთვის Stripe-ის customer portal-ს ხსნის.

განახლებები, ქვევით გადასვლები და პროპორციული გადასახადი

მომხმარებელი გეგმას რომ შეცვლის, Stripe-ის დოკუმენტაციის თანახმად, ცვლილება ხშირად ქმნის პროპორციულ გადაანგარიშებას (proration): ახალი ფასი მიმდინარე ანგარიშსწორების პერიოდის დარჩენილ ნაწილზე გამოიყენება. შეგიძლიათ პროპორციული გადაანგარიშება წინასწარ ნახოთ ან გამორთოთ. თუ გეგმებს ერთი და იგივე ინტერვალი აქვს, ანგარიშსწორების თარიღები უცვლელი რჩება; თვიურიდან წლიურზე გადასვლისას ანგარიშსწორების თარიღი შეცვლის დღეს გადაინაცვლებს. მომხმარებლებს portal-ში გეგმების შეცვლის საშუალების მიცემა თავად ლოგიკის წერას გიხსნით, მაგრამ portal-ის პარამეტრებში უნდა გადაწყვიტოთ, რომელი გადასვლებია დაშვებული.

ტესტირების ჩამონათვალი

გამოიყენეთ Stripe-ის სატესტო რეჟიმი და სატესტო ბარათები და გაიარეთ ყოველი მდგომარეობა:

  • ახალი გამოწერა სწორ მომხმარებელს აძლევს სწორ გეგმას
  • გადახდის შემდეგ ბრაუზერის ჩანართის დახურვა მაინც იძლევა წვდომას (ეს ადასტურებს, რომ webhook მუშაობს)
  • უარყოფილი ბარათი რეგისტრაციისას არაფერს არ აძლევს
  • ჩავარდნილი განახლება ანგარიშს past_due-ში აყენებს და აჩვენებს ბანერს
  • portal-ში ბარათის განახლება აბრუნებს active სტატუსს
  • გეგმის გაუმჯობესება და დაქვეითება სწორად ცვლის ფუნქციებს
  • პერიოდის ბოლოს გაუქმება წვდომას ბოლომდე ინარჩუნებს, შემდეგ კი ხსნის
  • საცდელი მომხმარებლები იღებენ წვდომას, იღებენ შეხსენებას და სწორად გადადიან ან კარგავენ წვდომას
  • იგივე webhook მოვლენის ორჯერ გაგზავნა არაფერს არ ცვლის

Stripe-ის სატესტო საათები (test clocks) საშუალებას გაძლევთ დრო სიმულირებულად გაატაროთ, რათა განახლებები ერთი თვის ლოდინის გარეშე შეამოწმოთ. Stripe-ის ამჟამინდელი ტესტირების დოკუმენტაცია აღწერს, როგორ გამოიყენოთ ისინი.

გავრცელებული შეცდომები

  • წვდომის მინიჭება წარმატების გვერდზე. მომხმარებელმა შეიძლება გადაიხადოს და ამ გვერდამდე ვერ მივიდეს. გამოიყენეთ webhook.
  • მხოლოდ პირველი გადახდის დამუშავება. განახლებები, ჩავარდნები და გაუქმებები მოგვიანებით მოდის, როგორც მოვლენები.
  • გეგმის სტატუსის შემოწმება მხოლოდ ფრონტენდში. ნებისმიერს შეუძლია API პირდაპირ გამოიძახოს.
  • ერთი მომხმარებელი, შემთხვევით ბევრი გამოწერით. ახალი Checkout Session-ის შექმნამდე შეამოწმეთ არსებული გამოწერა, ან არსებული მომხმარებლები portal-ზე გადაიყვანეთ.
  • წვდომის გაუქმება პირველი ჩავარდნილი განახლებისთანავე. ბარათები უბრალო მიზეზებით ჩავარდება. მოკლე საშუალო პერიოდი ნათელი ბანერით მომხმარებლებს ინარჩუნებს.
  • live webhook-ის დავიწყება. სატესტო და live endpoint-ებს განსხვავებული ხელმოწერის საიდუმლო აქვთ.
  • გადასახადებისა და დაბრუნებების იგნორირება. განსაზღვრეთ დაბრუნების პოლიტიკა და გაშვებამდე შეამოწმეთ გადასახადის ვალდებულებები ბუღალტერთან.

გამოწერები Mythex-ში

Mythex-ზე აგებული აპები იყენებს თქვენს Stripe ანგარიშს და გასაღებებს; თქვენი აპისთვის ერთი დაწკაპუნებით Stripe-თან დაკავშირება არ არსებობს. დაამატეთ თქვენი სატესტო გასაღებები და ფასის ID-ები როგორც პროექტის საიდუმლოებები, გამოიყენეთ ზემოთ მოცემულის მსგავსი პრომპტები და შეამოწმეთ Stripe-ის სატესტო ბარათებით Preview-ში. webhook-ებს აპის საჯარო URL სჭირდება, ამიტომ გამოაქვეყნეთ endpoint-ის Stripe-ში რეგისტრაციამდე და კვლავ გამოაქვეყნეთ live გასაღებებზე გადართვის შემდეგ, რომ live აპმა ახალი გასაღებები აიღოს. იხილეთ გადახდების მიღება Stripe-ით და webhook-ების დამუშავება backend-ში. უფრო ფართო პროდუქტისთვის, როგორ ავაშენოთ SaaS MVP აღწერს, რა ავაშენოთ ანგარიშსწორების გარშემო.

კითხვები

რა არის გამოწერების დამატების ყველაზე მარტივი გზა Stripe-ით?

შექმენით პროდუქტი განმეორებადი ფასით Stripe Dashboard-ში, გაგზავნეთ მომხმარებლები Stripe Checkout-ზე გამოწერის რეჟიმში, დაამუშავეთ გამოწერის მოვლენები webhook-ით და Manage billing ღილაკი დააკავშირეთ Stripe-ის ჰოსტირებულ customer portal-თან. ასე არ მოგიწევთ ბარათის ფორმებისა და გეგმის შეცვლის ეკრანების აშენება.

რა Stripe webhook მოვლენები მჭირდება გამოწერებისთვის?

მინიმუმ checkout.session.completed ახალი გამოწერის თქვენს მომხმარებელთან დასაკავშირებლად, invoice.paid ყოველი წარმატებული გადახდის დასადასტურებლად, invoice.payment_failed წარუმატებელი განახლების შესახებ გასაფრთხილებლად, და customer.subscription.updated და customer.subscription.deleted გეგმის ცვლილებებისა და გაუქმებების თვალსადევნად.

რა ხდება, როცა გამოწერის გადახდა ვერ ხერხდება?

Stripe-ის დოკუმენტაციის მიხედვით 2026 წლის სექტემბრის მდგომარეობით, გამოწერა ჩვეულებრივ past_due სტატუსს იღებს და Stripe შეიძლება გადახდა თქვენი პარამეტრების მიხედვით თავიდან სცადოს. ბოლო მცდელობის შემდეგ Dashboard-ის პარამეტრები განსაზღვრავს, გაუქმდება თუ არა გამოწერა, მონიშნება თუ არა unpaid-ად, ან დარჩება past_due-ზე.

შემიძლია უფასო საცდელი პერიოდი შევთავაზო ბარათის მოთხოვნის გარეშე?

დიახ. Stripe უჭერს მხარს უფასო საცდელ პერიოდებს, და მისი დოკუმენტაცია აღწერს paused სტატუსს საცდელებისთვის, რომლებიც გადახდის მეთოდის გარეშე სრულდება, თუ ეს ასეა დაყენებული. ბარათის წინასწარ მოთხოვნა, როგორც წესი, ნაკლებ რეგისტრაციას, მაგრამ მეტ გადამხდელ მომხმარებელს ნიშნავს; გამოსცადეთ, რა შეეფერება თქვენს პროდუქტს.

Mythex · Pricing · ააშენეთ ყველაფერი AI-ით · ვებსაიტისა და აპლიკაციის შაბლონები · Mythex შედარებით · AI-ით აპლიკაციის შექმნის ტერმინოლოგია · უფასო ინსტრუმენტები AI-ით აპლიკაციის შესაქმნელად · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)