{"id":17615,"date":"2023-04-15T02:17:02","date_gmt":"2023-04-14T22:47:02","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/"},"modified":"2023-04-15T02:17:02","modified_gmt":"2023-04-14T22:47:02","slug":"stripe-connect-onboarding-with-ruby-on-rails-32i4","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/","title":{"rendered":"\u0646\u0635\u0628 Stripe Connect \u0628\u0627 Ruby on Rails"},"content":{"rendered":"<div data-article-id=\"1436062\" id=\"article-body\">\n<p>Stripe Connect \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 API \u0647\u0627 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u0644\u062a\u0641\u0631\u0645 \u06cc\u0627 \u0628\u0627\u0632\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0645\u0642\u06cc\u0627\u0633 \u062f\u0647\u06cc\u062f \u0648 \u067e\u0631\u062f\u0627\u062e\u062a \u0647\u0627 \u0648 \u067e\u0631\u062f\u0627\u062e\u062a \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u062a\u0633\u0647\u06cc\u0644 \u06a9\u0646\u06cc\u062f.  \u0627\u06af\u0631 \u0628\u0627 Stripe Connect \u062a\u0627\u0632\u0647 \u06a9\u0627\u0631 \u0647\u0633\u062a\u06cc\u062f\u060c \u0628\u0647 \u0686\u0646\u062f \u0645\u0642\u0627\u0644\u0647 \u0627\u0648\u0644 \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u06af\u0627\u0647\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 Stripe Connect Onboarding \u0631\u0627 \u0628\u0627 Ruby on Rails \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u062d\u0631\u06a9\u062a \u067e\u0648\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u062a\u0633\u0647\u06cc\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0644\u062a \u0641\u0631\u0645 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u0645\u06cc\u0644 \u062a\u0645\u0631\u06a9\u0632 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0628\u0627 \u067e\u0631\u062f\u0627\u062e\u062a \u0647\u0632\u06cc\u0646\u0647 \u0645\u0627\u0647\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u06cc\u0645\u06cc\u0644 \u0647\u0627\u06cc \u062f\u0648\u0631\u0647 \u0627\u06cc \u0627\u0632 \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646 \u0645\u0648\u0631\u062f \u0639\u0644\u0627\u0642\u0647 \u062e\u0648\u062f \u062d\u0645\u0627\u06cc\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc Stripe \u0648 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u06a9\u0633\u0628\u200c\u0648\u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Stripe Connect \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0634\u062f\u0647 \u0631\u0627 \u06cc\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0631\u0641\u062a.  \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 Rails \u0648 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0648\u0627\u0646 \u067e\u0648\u0634\u0634 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.<\/p>\n<p>\u0628\u06cc\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645!<\/p>\n<p>\u0645\u0627 \u06a9\u0627\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u062f\u06cc\u062f Rails \u0622\u063a\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0627\u0632 Tailwind CSS \u0628\u0631\u0627\u06cc \u0633\u0628\u06a9 \u0647\u0627 \u0648 Postgres \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. <code>-T<\/code> \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0627\u0641\u0632\u0648\u062f\u0646 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0635\u0631\u0641 \u0646\u0638\u0631 \u06a9\u0646\u06cc\u062f \u0648 <code>--main<\/code> \u0646\u0627\u0645 \u0634\u0627\u062e\u0647 git \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails new newsletter-platform <span class=\"nt\">-c<\/span> tailwind <span class=\"nt\">-j<\/span> esbuild <span class=\"nt\">-d<\/span> postgresql <span class=\"nt\">-T<\/span> <span class=\"nt\">--main<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0647\u0631 \u0634\u0645\u0627\u0631\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0645\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u0647 \u06a9\u0627\u062a\u0627\u0644\u0648\u06af \u067e\u0634\u062a\u06cc \u062e\u0648\u062f \u0647\u062f\u0627\u06cc\u062a \u06a9\u0646\u0646\u062f.  \u0642\u0628\u0644 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0634\u0645\u0627\u0631\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u0646\u062f\u0647\u060c \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0627\u0634\u062a\u0631\u0627\u06a9 \u067e\u0631\u062f\u0627\u062e\u062a \u0641\u0639\u0627\u0644 \u062f\u0627\u0631\u0646\u062f. <\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0645\u062f\u0644 \u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/#Stripe_%D8%B1%D8%A7_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >Stripe \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/#%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2_%D9%87%D9%88%DB%8C%D8%AA_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/#%D9%86%D8%B5%D8%A8_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0646\u0635\u0628 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/stripe-connect-onboarding-with-ruby-on-rails-32i4\/#%D9%88%D8%A8_%D9%87%D9%88%DA%A9_%D9%87%D8%A7_%D8%B1%D8%A7_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0648\u0628 \u0647\u0648\u06a9 \u0647\u0627 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0644\u062a\u0641\u0631\u0645 \u062e\u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645: User\u060c Newsletter\u060c NewsletterIssue\u060c \u0648 Subscription.  \u0645\u062f\u0644 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u062f\u0644 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0647\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0634\u0645\u0627\u0631\u0647 \u0647\u0627 \u0627\u0633\u062a\u060c \u0645\u062f\u0644 NewsletterIssue \u0647\u0631 \u0646\u0633\u062e\u0647 \u0645\u0627\u0647\u0627\u0646\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f\u060c \u0648 \u0645\u062f\u0644 \u0627\u0634\u062a\u0631\u0627\u06a9 \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0631\u0627 \u0628\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646\u0647\u0627 \u0627\u0634\u062a\u0631\u0627\u06a9 \u067e\u0631\u062f\u0627\u062e\u062a \u0641\u0639\u0627\u0644 \u062f\u0627\u0631\u0646\u062f \u067e\u06cc\u0648\u0646\u062f \u0645\u06cc \u062f\u0647\u062f.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u062a\u0648\u0644\u06cc\u062f \u0627\u06cc\u0646 \u0645\u062f\u0644 \u0647\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u062a\u0648\u0644\u06cc\u062f \u0645\u062f\u0644 \u06a9\u0627\u0631\u0628\u0631:<\/p>\n<p>\u0627\u0632 \u0645\u062f\u0644 User \u0628\u0631\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0647\u0645 \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0648 \u0647\u0645 \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>stripe_customer_id<\/code> \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646  \u0645\u0627 \u0627\u0632 Stripe API \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0627\u0634\u06cc\u0627\u0621 \u0645\u0634\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0647\u0645\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u0647\u0627 \u0648 \u0635\u0648\u0631\u062a\u200c\u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u062e\u0648\u0627\u0646\u0646\u062f\u0647 \u0645\u0639\u06cc\u0646 \u0645\u0631\u062a\u0628\u0637 \u0647\u0633\u062a\u0646\u062f\u060c \u067e\u06cc\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>stripe_account_id<\/code> \u0628\u0631\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646  \u0627\u06cc\u0646 \u0646\u0634\u0627\u0646\u200c\u062f\u0647\u0646\u062f\u0647 \u0634\u0646\u0627\u0633\u0647 \u062d\u0633\u0627\u0628 Stripe \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f \u062a\u0627 \u067e\u0631\u062f\u0627\u062e\u062a\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0647\u062f\u0627\u06cc\u062a \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0646\u06cc\u0632 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>charges_enabled<\/code> \u0648 <code>payouts_enabled<\/code> \u067e\u0631\u0686\u0645\u200c\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0628\u062f\u0627\u0646\u062f \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u062d\u0633\u0627\u0628 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u067e\u0648\u0644 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails generate model User name:string email:string stripe_customer_id:string stripe_account_id:string charges_enabled:boolean payouts_enabled:boolean\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u0644\u06cc\u062f \u0645\u062f\u0644 \u062e\u0628\u0631\u0646\u0627\u0645\u0647:<\/p>\n<p>\u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u06cc\u06a9 \u0631\u0627\u0628\u0637\u0647 \u06a9\u0644\u06cc\u062f \u062e\u0627\u0631\u062c\u06cc \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u062f\u0631 \u062c\u062f\u0648\u0644 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails generate model Newsletter user:references title:string\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u062c\u0627\u062f \u0645\u062f\u0644 \u0634\u0645\u0627\u0631\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647:<\/p>\n<p>\u0645\u0633\u0627\u0626\u0644 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u0622\u0646 \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639\u060c \u0628\u0627 \u0639\u0646\u0648\u0627\u0646 \u0648 \u0628\u0644\u0648\u06a9 \u0645\u062a\u0646 \u0628\u0631\u0627\u06cc \u0645\u062d\u062a\u0648\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0631\u0627 <code>published_at<\/code> datetime \u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc \u0633\u0627\u0632\u062f \u062a\u0627 \u0645\u0633\u0627\u0626\u0644 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails generate model NewsletterIssue newsletter:references subject:string content:text published_at:datetime\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u062c\u0627\u062f \u0645\u062f\u0644 \u0627\u0634\u062a\u0631\u0627\u06a9:<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06cc\u06a9 \u062e\u0648\u0627\u0646\u0646\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u062f\u0631 \u06cc\u06a9 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0634\u062a\u0631\u06a9 \u0645\u06cc \u0634\u0648\u062f\u060c \u0645\u0627 \u0627\u0648 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u067e\u0631\u062f\u0627\u062e\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Stripe Checkout \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u067e\u0631\u062f\u0627\u062e\u062a \u062e\u0648\u062f \u0631\u0627 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u06cc\u06a9 \u0627\u0634\u062a\u0631\u0627\u06a9 Stripe \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u067e\u0631\u062f\u0627\u062e\u062a \u0647\u0627\u06cc \u0645\u06a9\u0631\u0631 \u0631\u0627 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f.  \u0645\u0627 \u0622\u0646 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>stripe_subscription_id<\/code> \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 Stripe API \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062f\u0627\u0646\u06cc\u0645 \u0622\u06cc\u0627 \u067e\u0631\u062f\u0627\u062e\u062a \u0641\u0639\u0627\u0644 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails generate model Subscription user:references newsletter:references stripe_subscription_id:string status:string\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0647\u0627\u062c\u0631\u062a \u0647\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails db:migrate\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0631\u0648\u0627\u0628\u0637 \u0628\u06cc\u0646 \u0627\u06cc\u0646 \u0645\u062f\u0644 \u0647\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645:<\/p>\n<p>\u06a9\u0647 \u062f\u0631 <code>app\/models\/user.rb<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">User<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationRecord<\/span>\n  <span class=\"n\">has_many<\/span> <span class=\"ss\">:newsletters<\/span>\n  <span class=\"n\">has_many<\/span> <span class=\"ss\">:subscriptions<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0647 \u062f\u0631 <code>app\/models\/newsletter.rb<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Newsletter<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationRecord<\/span>\n  <span class=\"n\">belongs_to<\/span> <span class=\"ss\">:user<\/span>\n  <span class=\"n\">has_many<\/span> <span class=\"ss\">:newsletter_issues<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0647 \u062f\u0631 <code>app\/models\/newsletter_issue.rb<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">NewsletterIssue<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationRecord<\/span>\n  <span class=\"n\">belongs_to<\/span> <span class=\"ss\">:newsletter<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0647 \u062f\u0631 <code>app\/models\/subscription.rb<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Subscription<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationRecord<\/span>\n  <span class=\"n\">belongs_to<\/span> <span class=\"ss\">:user<\/span>\n  <span class=\"n\">belongs_to<\/span> <span class=\"ss\">:newsletter<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u0648\u062c\u0648\u062f \u0627\u06cc\u0646 \u0645\u062f\u0644\u200c\u0647\u0627\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646\u060c \u062e\u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u0648 \u0645\u0633\u0627\u0626\u0644 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0648 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u0647\u0627\u06cc \u062e\u0648\u0627\u0646\u0646\u062f\u06af\u0627\u0646 \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u0645.  \u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc\u060c \u0645\u0646\u0637\u0642 Stripe Connect Onboarding \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Stripe_%D8%B1%D8%A7_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  Stripe \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0632 SDK stripe-ruby \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 Stripe API \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>bundle add stripe\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc API \u0631\u0627 \u0627\u0632 dashboard.stripe.com \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 Rails \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>EDITOR=vi rails credentials:edit\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u0644\u06cc\u062f\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">stripe<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">secret_key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sk_test_51EceeUCZ6qs...<\/span>\n  <span class=\"na\">publishable_key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">pk_test_vAZ3gh1Lc...<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>config\/initializers\/stripe.rb<\/code> \u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0644\u06cc\u062f API \u0633\u0637\u062d \u067e\u0644\u062a \u0641\u0631\u0645.  \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06a9\u0627\u0646\u062a Stripe \u0647\u0631 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc API \u0645\u062e\u0635\u0648\u0635 \u0628\u0647 \u062e\u0648\u062f \u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a\u060c \u0627\u0645\u0627 \u0628\u0627 Stripe Connect\u060c \u0645\u0627 \u0647\u0631\u06af\u0632 \u0628\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u062d\u0633\u0627\u0628 \u0645\u062a\u0635\u0644 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u06cc\u0645.  \u062f\u0631 \u0639\u0648\u0636\u060c \u0645\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0631\u0627 \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0644\u06cc\u062f API \u0633\u0637\u062d \u067e\u0644\u062a \u0641\u0631\u0645 \u0648 \u0634\u0646\u0627\u0633\u0647 \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.  \u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"no\">Stripe<\/span><span class=\"p\">.<\/span><span class=\"nf\">api_key<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Rails<\/span><span class=\"p\">.<\/span><span class=\"nf\">application<\/span><span class=\"p\">.<\/span><span class=\"nf\">credentials<\/span><span class=\"p\">.<\/span><span class=\"nf\">dig<\/span><span class=\"p\">(<\/span><span class=\"ss\">:stripe<\/span><span class=\"p\">,<\/span> <span class=\"ss\">:secret_key<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0647\u0633\u062a\u06cc\u0645 \u062a\u0627 \u062a\u0645\u0627\u0633 \u0647\u0627\u06cc API \u0628\u0647 Stripe \u0631\u0627 \u0627\u0632 Ruby \u0622\u063a\u0627\u0632 \u06a9\u0646\u06cc\u0645.  \u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Stripe API\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2_%D9%87%D9%88%DB%8C%D8%AA_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u0647 \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u0646\u062f.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u0632 Ruby on Rails \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0627\u0632 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0628\u0631\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<p>\u0645\u0627 deise gem \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u200c\u0647\u0627\u06cc \u0646\u0635\u0628 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc Authors \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0642\u0627\u0628\u0644 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>bundle add devise\nrails generate devise:install\nrails g devise:views\nrails g devise Author\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0648\u0628\u0627\u0631\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0645\u0647\u0627\u062c\u0631\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails db:migrate\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062f\u0648\u06cc\u062f\u0646 <code>bin\/dev<\/code> \u0633\u0631\u0648\u0631 \u0631\u0627 \u0631\u0648\u0634\u0646 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u062c\u0631\u06cc\u0627\u0646 \u062b\u0628\u062a \u0646\u0627\u0645 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 localhost:3000\/authors\/sign_up \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u0627\u06cc\u0646 \u0646\u0645\u0627\u06cc \u0648\u0631\u0648\u062f \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0627\u06cc\u0644 \u0628\u0647 \u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u0622\u0646 \u0631\u0627 \u067e\u0627\u06a9 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. <\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u0646\u062f\u060c \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 Stripe Connect \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0637\u0631\u0641 \u0622\u0646\u0647\u0627 \u0628\u0627 Stripe API \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%B5%D8%A8_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_%D8%B1%D8%A7_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0646\u0635\u0628 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Connect \u0627\u0632 3 \u0646\u0648\u0639 \u062d\u0633\u0627\u0628 \u0645\u062e\u062a\u0644\u0641 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f: \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u060c \u0627\u06a9\u0633\u067e\u0631\u0633 \u0648 \u0633\u0641\u0627\u0631\u0634\u06cc.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062a\u062c\u0631\u0628\u0647 \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0648 \u0628\u0627\u0632\u067e\u0631\u062f\u0627\u062e\u062a \u0648\u062c\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f\u060c \u0645\u0646\u0637\u0642\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646\u0647\u0627 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc \u0634\u0648\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0628\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Stripe \u0633\u0627\u062f\u0647 \u062a\u0631 \u0628\u0627 \u06cc\u06a9 <strong>\u0646\u0648\u0639 \u0627\u06a9\u0633\u067e\u0631\u0633<\/strong> \u062d\u0633\u0627\u0628 \u0645\u062a\u0635\u0644  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u0628\u0627\u062f\u0644\u0627\u062a \u0628\u06cc\u0646 \u0627\u0646\u0648\u0627\u0639 \u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0628\u06cc\u0634\u062a\u0631 \u0628\u06cc\u0627\u0645\u0648\u0632\u06cc\u062f.  \u0646\u06a9\u062a\u0647 \u062c\u0627\u0646\u0628\u06cc: \u0645\u0627 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0645\u0641\u0647\u0648\u0645 \u0646\u0648\u0639 \u062d\u0633\u0627\u0628 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646\u062a\u0638\u0631 \u0631\u0648\u06cc\u06a9\u0631\u062f\u06cc \u06a9\u0645\u062a\u0631 \u06af\u06cc\u062c \u06a9\u0646\u0646\u062f\u0647 \u0628\u0631\u0627\u06cc \u0645\u062a\u0645\u0627\u06cc\u0632 \u06a9\u0631\u062f\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u062a\u0635\u0627\u0644 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u0628\u0627\u0634\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u060c \u0635\u0641\u062d\u0647\u200c\u0627\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06cc\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u062d\u0633\u0627\u0628 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062d\u0633\u0627\u0628 \u0645\u062a\u0635\u0644 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645\u060c \u06cc\u0627 \u062f\u06a9\u0645\u0647\u200c\u0627\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062d\u0633\u0627\u0628 \u062c\u062f\u06cc\u062f \u0648 \u0627\u0646\u062c\u0627\u0645 \u0641\u0631\u0622\u06cc\u0646\u062f \u0648\u0631\u0648\u062f.  \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u062a\u0648\u0633\u0637 \u06cc\u06a9 StripeAccountsController \u062c\u062f\u06cc\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails g controller StripeAccounts show\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc config\/routes.rb\u060c \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0645\u0646\u0628\u0639 \u0645\u0646\u0641\u0631\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \/stripe_account \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"no\">Rails<\/span><span class=\"p\">.<\/span><span class=\"nf\">application<\/span><span class=\"p\">.<\/span><span class=\"nf\">routes<\/span><span class=\"p\">.<\/span><span class=\"nf\">draw<\/span> <span class=\"k\">do<\/span>\n  <span class=\"n\">resource<\/span> <span class=\"ss\">:stripe_account<\/span>\n  <span class=\"n\">devise_for<\/span> <span class=\"ss\">:users<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u0627\u06a9\u0631\u0648 \u0642\u0628\u0644 \u0627\u0632 \u0639\u0645\u0644 \u0631\u0627 \u0627\u0632 device \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0628\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">StripeAccountsController<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationController<\/span>\n  <span class=\"n\">before_action<\/span> <span class=\"ss\">:authenticate_author!<\/span>\n<span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0646\u0645\u0627\u06cc \u0645\u0633\u06cc\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight html\"><code><span class=\"nt\">&lt;<\/span><span class=\"err\">%<\/span> <span class=\"na\">if<\/span> <span class=\"na\">current_user.stripe_account_id.present<\/span><span class=\"err\">?<\/span> <span class=\"err\">%<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;<\/span><span class=\"err\">%=<\/span> <span class=\"na\">current_user.stripe_account.to_json<\/span> <span class=\"err\">%<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;<\/span><span class=\"err\">%<\/span> <span class=\"na\">else<\/span> <span class=\"err\">%<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\">&lt;p&gt;<\/span>No Stripe account found<span class=\"nt\">&lt;\/p&gt;<\/span>\n  <span class=\"nt\">&lt;<\/span><span class=\"err\">%=<\/span> <span class=\"na\">button_to<\/span> <span class=\"err\">\"<\/span><span class=\"na\">Create<\/span> <span class=\"na\">a<\/span> <span class=\"na\">Stripe<\/span> <span class=\"na\">Account<\/span><span class=\"err\">\",<\/span> <span class=\"na\">stripe_account_path<\/span><span class=\"err\">,<\/span> <span class=\"na\">method:<\/span> <span class=\"na\">:post<\/span><span class=\"err\">,<\/span> <span class=\"na\">data:<\/span> <span class=\"err\">{<\/span> <span class=\"na\">turbo:<\/span> <span class=\"na\">false<\/span> <span class=\"err\">}<\/span> <span class=\"err\">%<\/span><span class=\"nt\">&gt;<\/span>\n<span class=\"nt\">&lt;<\/span><span class=\"err\">%<\/span> <span class=\"na\">end<\/span> <span class=\"err\">%<\/span><span class=\"nt\">&gt;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0648\u06cc &#8220;\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062d\u0633\u0627\u0628 Stripe&#8221; \u06a9\u0644\u06cc\u06a9 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0645\u0627\u0633 API \u0628\u0627 Stripe \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062d\u0633\u0627\u0628 Express \u062c\u062f\u06cc\u062f \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0633\u067e\u0633 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u062d\u0633\u0627\u0628 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062c\u0631\u06cc\u0627\u0646 \u0648\u0631\u0648\u062f \u0628\u0647 \u062d\u0633\u0627\u0628 \u0628\u0627 \u06cc\u06a9 \u0644\u06cc\u0646\u06a9 \u062d\u0633\u0627\u0628.<\/p>\n<p>\u0647\u062f\u0641 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0631\u0633\u0627\u0646\u062f\u0646 \u0645\u0642\u062f\u0627\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0628\u0627\u06cc\u062f \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u06a9\u0646\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0627 \u0627\u0632 \u0642\u0628\u0644 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0633\u0637\u062d \u062d\u0633\u0627\u0628 \u0648 \u0641\u0631\u062f\u06cc \u0627\u0632 \u0642\u0628\u0644 \u067e\u0631 \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0641\u0631\u0636 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0647\u0645\u0647 \u0646\u0648\u06cc\u0633\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u062c\u0627\u06cc \u06a9\u0633\u0628 \u0648 \u06a9\u0627\u0631\u060c \u0627\u0641\u0631\u0627\u062f \u0647\u0633\u062a\u0646\u062f.  \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 mcc \u0646\u0645\u0627\u06cc\u0647 \u06a9\u0633\u0628\u200c\u0648\u06a9\u0627\u0631 (\u06a9\u062f \u0637\u0628\u0642\u0647\u200c\u0628\u0646\u062f\u06cc \u062a\u0627\u062c\u0631) \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06a9\u0627\u0644\u0627\u0647\u0627\u06cc \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644 \u0627\u0632 \u0642\u0628\u0644 \u067e\u0631 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0647\u0631 \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0645\u062c\u0628\u0648\u0631 \u0646\u0628\u0627\u0634\u062f \u0641\u0647\u0631\u0633\u062a \u0627\u0646\u0648\u0627\u0639 \u062e\u062f\u0645\u0627\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u06a9\u0627\u0644\u0627\u0647\u0627\u06cc \u062f\u06cc\u062c\u06cc\u062a\u0627\u0644 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code>  <span class=\"k\">def<\/span> <span class=\"nf\">create<\/span>\n    <span class=\"n\">account<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Stripe<\/span><span class=\"o\">::<\/span><span class=\"no\">Account<\/span><span class=\"p\">.<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span>\n      <span class=\"ss\">type: <\/span><span class=\"s1\">'standard'<\/span><span class=\"p\">,<\/span>\n      <span class=\"ss\">email: <\/span><span class=\"n\">current_user<\/span><span class=\"p\">.<\/span><span class=\"nf\">email<\/span><span class=\"p\">,<\/span>\n      <span class=\"ss\">business_type: <\/span><span class=\"s1\">'individual'<\/span><span class=\"p\">,<\/span>\n      <span class=\"ss\">business_profile: <\/span><span class=\"p\">{<\/span>\n        <span class=\"ss\">mcc: <\/span><span class=\"s1\">'5818'<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">},<\/span>      \n      <span class=\"ss\">individual: <\/span><span class=\"p\">{<\/span>\n        <span class=\"ss\">email: <\/span><span class=\"n\">current_user<\/span><span class=\"p\">.<\/span><span class=\"nf\">email<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">},<\/span>\n      <span class=\"ss\">metadata: <\/span><span class=\"p\">{<\/span>\n        <span class=\"ss\">author_id: <\/span><span class=\"n\">current_user<\/span><span class=\"p\">.<\/span><span class=\"nf\">id<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">)<\/span>\n    <span class=\"n\">current_user<\/span><span class=\"p\">.<\/span><span class=\"nf\">update<\/span><span class=\"p\">(<\/span><span class=\"ss\">stripe_account_id: <\/span><span class=\"n\">account<\/span><span class=\"p\">.<\/span><span class=\"nf\">id<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">account_link<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Stripe<\/span><span class=\"o\">::<\/span><span class=\"no\">AccountLink<\/span><span class=\"p\">.<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span>\n      <span class=\"ss\">account: <\/span><span class=\"n\">account<\/span><span class=\"p\">.<\/span><span class=\"nf\">id<\/span><span class=\"p\">,<\/span>\n      <span class=\"ss\">refresh_url: <\/span><span class=\"n\">stripe_account_url<\/span><span class=\"p\">,<\/span>\n      <span class=\"ss\">return_url: <\/span><span class=\"n\">stripe_account_url<\/span><span class=\"p\">,<\/span>\n      <span class=\"ss\">type: <\/span><span class=\"s1\">'account_onboarding'<\/span>\n    <span class=\"p\">)<\/span>\n\n    <span class=\"n\">redirect_to<\/span> <span class=\"n\">account_link<\/span><span class=\"p\">.<\/span><span class=\"nf\">url<\/span><span class=\"p\">,<\/span> <span class=\"ss\">status: :see_other<\/span><span class=\"p\">,<\/span> <span class=\"ss\">allow_other_host: <\/span><span class=\"kp\">true<\/span>\n  <span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648\u0642\u062a\u06cc \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc Stripe \u062f\u0631 Stripe \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc\u200c\u0627\u0641\u062a\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 webhook \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0637\u0644\u0627\u0639 \u062f\u0627\u062f.  \u0645\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0622\u0646 \u06af\u0648\u0634 \u062f\u0647\u06cc\u0645 <code>account.updated<\/code> \u0646\u0648\u0639 \u0631\u0648\u06cc\u062f\u0627\u062f webhook \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0645\u0627 \u0628\u062f\u0627\u0646\u06cc\u0645 \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u06cc\u06a9 \u062d\u0633\u0627\u0628 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. <\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%88%D8%A8_%D9%87%D9%88%DA%A9_%D9%87%D8%A7_%D8%B1%D8%A7_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0648\u0628 \u0647\u0648\u06a9 \u0647\u0627 \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc POST \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 Stripe \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>rails g controller Webhooks\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0633\u0627\u062f\u0647 \u0627\u0632 \/webhooks \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc POST \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"n\">resources<\/span> <span class=\"ss\">:webhooks<\/span><span class=\"p\">,<\/span> <span class=\"ss\">only: <\/span><span class=\"p\">[<\/span><span class=\"ss\">:create<\/span><span class=\"p\">]<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0627\u0632 Stripe \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f\u060c \u0645\u0627 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0647\u06cc\u0686 \u06a9\u062f CSRF \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0631\u0633\u06cc \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644\u0631 \u0635\u0631\u0641\u0646\u0638\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code><span class=\"k\">class<\/span> <span class=\"nc\">WebhooksController<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ApplicationController<\/span>\n  <span class=\"n\">skip_before_action<\/span> <span class=\"ss\">:verify_authenticity_token<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u06cc\u06a9 \u0645\u062a\u062f \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u067e\u0633\u062a \u0627\u0632 Stripe \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062f\u0646\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0633\u0648\u0626\u06cc\u0686 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0648\u0639 \u0627\u0639\u0644\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code>  <span class=\"k\">def<\/span> <span class=\"nf\">create<\/span>\n    <span class=\"n\">payload<\/span> <span class=\"o\">=<\/span> <span class=\"n\">request<\/span><span class=\"p\">.<\/span><span class=\"nf\">body<\/span><span class=\"p\">.<\/span><span class=\"nf\">read<\/span>\n    <span class=\"n\">event<\/span> <span class=\"o\">=<\/span> <span class=\"kp\">nil<\/span>\n\n    <span class=\"k\">begin<\/span>\n      <span class=\"n\">event<\/span> <span class=\"o\">=<\/span> <span class=\"no\">Stripe<\/span><span class=\"o\">::<\/span><span class=\"no\">Event<\/span><span class=\"p\">.<\/span><span class=\"nf\">construct_from<\/span><span class=\"p\">(<\/span>\n        <span class=\"no\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">parse<\/span><span class=\"p\">(<\/span><span class=\"n\">payload<\/span><span class=\"p\">,<\/span> <span class=\"ss\">symbolize_names: <\/span><span class=\"kp\">true<\/span><span class=\"p\">)<\/span>\n      <span class=\"p\">)<\/span>\n    <span class=\"k\">rescue<\/span> <span class=\"no\">JSON<\/span><span class=\"o\">::<\/span><span class=\"no\">ParserError<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"n\">e<\/span>\n      <span class=\"c1\"># Invalid payload<\/span>\n      <span class=\"nb\">puts<\/span> <span class=\"s2\">\"\u26a0\ufe0f  Webhook error while parsing basic request. <\/span><span class=\"si\">#{<\/span><span class=\"n\">e<\/span><span class=\"p\">.<\/span><span class=\"nf\">message<\/span><span class=\"si\">}<\/span><span class=\"s2\">)\"<\/span>\n      <span class=\"n\">render<\/span> <span class=\"ss\">json: <\/span><span class=\"p\">{<\/span> <span class=\"ss\">message: <\/span><span class=\"s1\">'failed'<\/span> <span class=\"p\">},<\/span> <span class=\"ss\">status: <\/span><span class=\"mi\">400<\/span>\n      <span class=\"k\">return<\/span>\n    <span class=\"k\">end<\/span>\n\n    <span class=\"k\">case<\/span> <span class=\"n\">event<\/span><span class=\"p\">.<\/span><span class=\"nf\">type<\/span>\n    <span class=\"k\">when<\/span> <span class=\"s1\">'account.updated'<\/span>\n      <span class=\"n\">account<\/span> <span class=\"o\">=<\/span> <span class=\"n\">event<\/span><span class=\"p\">.<\/span><span class=\"nf\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span> <span class=\"c1\"># contains a Stripe::Account<\/span>\n      <span class=\"c1\"># TODO: Handle account updates<\/span>\n    <span class=\"k\">else<\/span>\n      <span class=\"nb\">puts<\/span> <span class=\"s2\">\"Unhandled event type: <\/span><span class=\"si\">#{<\/span><span class=\"n\">event<\/span><span class=\"p\">.<\/span><span class=\"nf\">type<\/span><span class=\"si\">}<\/span><span class=\"s2\">\"<\/span>\n    <span class=\"k\">end<\/span>\n\n    <span class=\"n\">render<\/span> <span class=\"ss\">json: <\/span><span class=\"p\">{<\/span> <span class=\"ss\">message: <\/span><span class=\"s1\">'success'<\/span> <span class=\"p\">}<\/span>\n  <span class=\"k\">end<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f account.updated \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0631\u0686\u0645\u200c\u0647\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627 \u0648 \u067e\u0631\u062f\u0627\u062e\u062a\u200c\u0647\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight ruby\"><code>    <span class=\"k\">when<\/span> <span class=\"s1\">'account.updated'<\/span>\n      <span class=\"n\">account<\/span> <span class=\"o\">=<\/span> <span class=\"n\">event<\/span><span class=\"p\">.<\/span><span class=\"nf\">data<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span> <span class=\"c1\"># contains a Stripe::Account<\/span>\n      <span class=\"n\">author<\/span> <span class=\"o\">=<\/span> <span class=\"no\">User<\/span><span class=\"p\">.<\/span><span class=\"nf\">find_by<\/span><span class=\"p\">(<\/span><span class=\"ss\">stripe_account_id: <\/span><span class=\"n\">account<\/span><span class=\"p\">.<\/span><span class=\"nf\">id<\/span><span class=\"p\">)<\/span>\n      <span class=\"n\">author<\/span><span class=\"p\">.<\/span><span class=\"nf\">update<\/span><span class=\"p\">(<\/span>\n        <span class=\"ss\">charges_enabled: <\/span><span class=\"n\">account<\/span><span class=\"p\">.<\/span><span class=\"nf\">charges_enabled<\/span><span class=\"p\">,<\/span>\n        <span class=\"ss\">payouts_enabled: <\/span><span class=\"n\">account<\/span><span class=\"p\">.<\/span><span class=\"nf\">payouts_enabled<\/span>\n      <span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0648 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648\u0628\u06a9\u0647\u06a9 \u0647\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc\u060c \u0627\u0632 Stripe CLI \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0631\u0627 <code>listen<\/code> \u062f\u0633\u062a\u0648\u0631 \u0645\u0627 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0645\u06cc \u0633\u0627\u0632\u062f \u062a\u0627 \u0647\u0645 \u062d\u0633\u0627\u0628 \u0631\u0627 \u0641\u0648\u0631\u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u0647\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc webhook \u0631\u0627 \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u0645.  \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u062d\u0633\u0627\u0628 \u0645\u0633\u062a\u0639\u0627\u0631 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062f\u0631 \u062d\u0633\u0627\u0628 \u0645\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f\u060c \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062f\u0631 \u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u0645\u062a\u0635\u0644 \u0631\u062e \u0645\u06cc \u062f\u0647\u0646\u062f. <\/p>\n<p>\u0634\u0646\u0648\u0646\u062f\u0647 \u0631\u0627 \u0628\u0627:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>stripe listen <span class=\"nt\">--forward-to<\/span> localhost:3000\/webhooks <span class=\"nt\">--forward-connect-to<\/span> localhost:3000\/webhooks\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0645\u06cc\u0627\u0646\u0628\u0631 \u0628\u0627 Rails\u060c \u0645\u0646 \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u062c\u062f\u06cc\u062f \u0628\u0647 Procfile.dev \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u062a\u0627 \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 bin\/dev \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0634\u0631\u0648\u0639 \u0634\u0648\u062f.  Profile.dev \u0645\u0646 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>web: bin\/rails server <span class=\"nt\">-p<\/span> 3000\njs: yarn build <span class=\"nt\">--watch<\/span>\ncss: yarn build:css <span class=\"nt\">--watch<\/span>\nstripe: stripe listen <span class=\"nt\">--forward-to<\/span> localhost:3000\/webhooks <span class=\"nt\">--forward-connect-to<\/span> localhost:3000\/webhooks\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062c\u0631\u06cc\u0627\u0646 \u0648\u0631\u0648\u062f \u0631\u0627 \u0637\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062c\u0632\u0626\u06cc\u0627\u062a \u062a\u0633\u062a \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645.  \u0627\u0632 \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc \u062a\u0633\u062a \u062c\u0627\u062f\u0648\u06cc\u06cc \u0627\u06cc\u0646 \u0633\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06cc\u06a9 \u062d\u0633\u0627\u0628 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628\u060c \u0628\u0627\u06cc\u062f \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u0632 \u06cc\u06a9 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0648\u0627\u0642\u0639\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u062d\u0633\u0627\u0628 \u0627\u062a\u0635\u0627\u0644 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0631\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0637\u0628\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u06cc\u0634 \u0628\u0631\u0648\u062f\u060c JSON \u0631\u0627 \u0628\u0631\u0627\u06cc \u062d\u0633\u0627\u0628 Stripe \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc\u062f\u060c \u0646\u0648\u06cc\u0633\u0646\u062f\u0647 \u0634\u0645\u0627 \u06cc\u06a9 \u0634\u0646\u0627\u0633\u0647 \u062d\u0633\u0627\u0628 Stripe \u062f\u0627\u0631\u062f\u060c \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0641\u0639\u0627\u0644 \u0634\u062f\u0647 \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u060c \u0648 \u067e\u0631\u062f\u0627\u062e\u062a\u200c\u0647\u0627\u06cc \u0641\u0639\u0627\u0644 \u0634\u062f\u0647 \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u062f\u0631\u0633\u062a \u0627\u0633\u062a.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Stripe Connect \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 API \u0647\u0627 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u0644\u062a\u0641\u0631\u0645 \u06cc\u0627 \u0628\u0627\u0632\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648 \u0645\u0642\u06cc\u0627\u0633 \u062f\u0647\u06cc\u062f \u0648 \u067e\u0631\u062f\u0627\u062e\u062a \u0647\u0627 \u0648 \u067e\u0631\u062f\u0627\u062e\u062a \u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u062a\u0633\u0647\u06cc\u0644 \u06a9\u0646\u06cc\u062f. \u0627\u06af\u0631 \u0628\u0627 Stripe Connect \u062a\u0627\u0632\u0647 \u06a9\u0627\u0631 \u0647\u0633\u062a\u06cc\u062f\u060c \u0628\u0647 \u0686\u0646\u062f \u0645\u0642\u0627\u0644\u0647 \u0627\u0648\u0644 \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647 \u0646\u06af\u0627\u0647\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":17616,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-17615","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/17615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=17615"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/17615\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/17616"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=17615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=17615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=17615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}