{"id":821,"date":"2023-05-10T09:00:05","date_gmt":"2023-05-10T07:00:05","guid":{"rendered":"http:\/\/agilno.local\/?p=821"},"modified":"2023-06-01T15:01:26","modified_gmt":"2023-06-01T13:01:26","slug":"integrate-stripe-payments-into-your-marketplace-site-with-django","status":"publish","type":"post","link":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/","title":{"rendered":"Integrate Stripe Payments into Your Marketplace Site"},"content":{"rendered":"<h2>Introduction to Stripe<\/h2>\n<p>As a web developer, selecting the appropriate payment service provider for your project can pose a daunting challenge. You must take into account various factors, including security, user experience, integration simplicity, and transaction fees, among others. In recent years, Stripe has emerged as a popular payment service provider.<\/p>\n<p>Stripe is a payment service provider that enables businesses to accept payments online. It offers a straightforward and secure method for developers to integrate <strong>payment<\/strong> processing into their web applications. With its developer-friendly API, Stripe simplifies the creation of custom payment forms, the management of subscriptions, refunds, and much more. Moreover, Stripe accepts a broad range of payment methods, including credit cards, Apple Pay, Google Pay, and even Bitcoin. Personally, I have come to prefer Stripe as a payment service, and we have utilized it on several Agilno projects.<\/p>\n<p>This article provides a step-by-step demonstration of the simple <strong>integration<\/strong> of Stripe Checkout, covering initial project setup, payment processing, and webhooks. Readers will gain a solid understanding of using Stripe. Although actual production-ready integrations may be more complex, especially if we aim for a high level of customization that meets our clients&#8217; expectations at Agilno, by following this guide, beginner developers can effortlessly integrate Stripe into their marketplace websites.<\/p>\n<h2>Starting your integration<\/h2>\n<p>To get started, the first step is to create a Stripe account by visiting their website. After creating an account, you can access a dashboard where you can set up payment processing.<\/p>\n<figure id=\"attachment_863\" aria-describedby=\"caption-attachment-863\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-863\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image7.png\" alt=\"\" width=\"640\" height=\"907\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image7.png 561w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image7-212x300.png 212w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image7-494x700.png 494w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-863\" class=\"wp-caption-text\">Stripe account creation screenshot<\/figcaption><\/figure>\n<p>Once you have created your Stripe account, you should toggle the testing switch located in the upper right corner of your screen. After that, navigate to the Developers section and locate your API Keys and Webhook Secret Key.<\/p>\n<figure id=\"attachment_864\" aria-describedby=\"caption-attachment-864\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-864 size-large\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12-1024x422.png\" alt=\"\" width=\"640\" height=\"264\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12-1024x422.png 1024w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12-300x124.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12-768x317.png 768w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12-1536x633.png 1536w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12-750x309.png 750w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image12.png 1798w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-864\" class=\"wp-caption-text\">Stripe dashboard screenshot<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_865\" aria-describedby=\"caption-attachment-865\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-865\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image11.png\" alt=\"\" width=\"640\" height=\"605\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image11.png 946w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image11-300x284.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image11-768x727.png 768w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image11-740x700.png 740w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-865\" class=\"wp-caption-text\">Stripe dashboard screenshot<\/figcaption><\/figure>\n<p>To begin, you will need to add your API keys and webhook secret to your Django project&#8217;s settings.py file. This will enable your Django application to securely communicate with Stripe&#8217;s API and handle requests. Once you have added these keys, you can start utilizing Stripe&#8217;s payment processing and webhook functionalities within your project. It is crucial to remember to keep your API keys and webhook secret secure as they contain sensitive information that should not be shared publicly.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-867 size-full aligncenter\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image9.png\" alt=\"\" width=\"428\" height=\"150\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image9.png 428w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image9-300x105.png 300w\" sizes=\"auto, (max-width: 428px) 100vw, 428px\" \/><\/p>\n<figure id=\"attachment_868\" aria-describedby=\"caption-attachment-868\" style=\"width: 430px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-868\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image14.png\" alt=\"\" width=\"430\" height=\"54\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image14.png 382w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image14-300x38.png 300w\" sizes=\"auto, (max-width: 430px) 100vw, 430px\" \/><figcaption id=\"caption-attachment-868\" class=\"wp-caption-text\">Code snippet screenshot<\/figcaption><\/figure>\n<h2>Adding your products to Stripe Dashboard<\/h2>\n<p>In this demo app, we will be adding two products, Running Shoes and a Shirt, to our Stripe Dashboard. To do so, navigate to the &#8220;Products&#8221; tab in your Stripe Dashboard and click the &#8220;Add product&#8221; button. Then, fill in the necessary details for each product, such as name, description, pricing, and any other relevant information.<\/p>\n<figure id=\"attachment_871\" aria-describedby=\"caption-attachment-871\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-871 size-large\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10-1024x70.png\" alt=\"\" width=\"640\" height=\"44\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10-1024x70.png 1024w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10-300x21.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10-768x53.png 768w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10-1536x105.png 1536w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10-750x51.png 750w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image10.png 1828w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-871\" class=\"wp-caption-text\">Stripe dashboard screenshot<\/figcaption><\/figure>\n<p>After we&#8217;ve added our Shirt product it should look like this.<\/p>\n<figure id=\"attachment_872\" aria-describedby=\"caption-attachment-872\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-872\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image8.png\" alt=\"\" width=\"640\" height=\"622\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image8.png 747w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image8-300x292.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image8-720x700.png 720w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-872\" class=\"wp-caption-text\">Stripe dashboard screenshot<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h2>Adding Webhooks<\/h2>\n<p>Now that we\u2019ve added our two products we\u2019re going to write two <strong>webhooks<\/strong>. These webhooks are going to listen for events product.created and price.created. Why two events? Stripe stores the Product data in two objects. The first object contains the actual data about the product, such as its name, description, image, and so on. The second object is the Price object, which includes the type of price and its value. There are several price type options available, but in this article, we will stick to the standard price.<\/p>\n<p>By utilizing Stripe&#8217;s webhooks, you can automate the process of generating objects in your database using Django&#8217;s ORM. After setting up the webhook, you can specify the actions to be taken whenever a specific event occurs in your Stripe account. This could include creating a new product or updating it with its price once Stripe has created it.<\/p>\n<figure id=\"attachment_873\" aria-describedby=\"caption-attachment-873\" style=\"width: 890px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-873 size-full\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image2.png\" alt=\"\" width=\"890\" height=\"667\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image2.png 890w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image2-300x225.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image2-768x576.png 768w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image2-750x562.png 750w\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" \/><figcaption id=\"caption-attachment-873\" class=\"wp-caption-text\">Code snippet screenshot<\/figcaption><\/figure>\n<h2>Using Stripe CLI for testing<\/h2>\n<p>To test our webhook integration, we will be using Stripe CLI. To get started, you need to install the Stripe CLI on your computer. The Stripe CLI supports multiple platforms, including Windows, macOS, and Linux. You can find detailed installation instructions for your specific platform on the Stripe CLI <a href=\"https:\/\/stripe.com\/docs\/stripe-cli#install\">documentation page<\/a>.<\/p>\n<p>After installing the Stripe CLI, you will need to authenticate it with your Stripe account. To do this, open a terminal window and enter the following command:<\/p>\n<pre><strong>stripe login<\/strong><\/pre>\n<p>This will prompt you to enter your Stripe API key. Once you enter your API key, the Stripe CLI will be authenticated with your Stripe account. You can now start using the Stripe CLI to interact with your Stripe account. For example, you can create test data, view logs and error messages, and deploy webhook endpoints. To ensure that Stripe CLI knows which route to pass the events we trigger, we need to use the following command:<\/p>\n<pre><strong>stripe listen --forward-to localhost:8001\/api\/webhooks\/<\/strong><\/pre>\n<p>The endpoint you\u2019re forwarding to might differ so keep that in mind. To see a list of additional available commands, enter the following command in your terminal. This will display a list of available commands and options:<\/p>\n<pre><strong>stripe help<\/strong><\/pre>\n<p>We\u2019ll primarily be using the command stripe events resend &lt;event_id&gt;. This way we can mimic the events where we\u2019ve created our products in our Stripe Dashboard. To find the event id of your specific events go to the Developers section and under Events you can locate your event and its specific id.<\/p>\n<figure id=\"attachment_874\" aria-describedby=\"caption-attachment-874\" style=\"width: 722px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-874 size-full\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image6.png\" alt=\"\" width=\"722\" height=\"747\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image6.png 722w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image6-290x300.png 290w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image6-677x700.png 677w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><figcaption id=\"caption-attachment-874\" class=\"wp-caption-text\">Code snippet screenshot<\/figcaption><\/figure>\n<p>And after we\u2019ve completed our tests of our webhooks we should now have two products in our database.<\/p>\n<figure id=\"attachment_875\" aria-describedby=\"caption-attachment-875\" style=\"width: 648px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-875\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image5.png\" alt=\"\" width=\"648\" height=\"307\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image5.png 695w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image5-300x142.png 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><figcaption id=\"caption-attachment-875\" class=\"wp-caption-text\">Django admin panel screenshot<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">And these products should have their price in cents (because that\u2019s how Stripe remembers them).<\/span><\/p>\n<figure id=\"attachment_876\" aria-describedby=\"caption-attachment-876\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-876\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image1.png\" alt=\"\" width=\"640\" height=\"430\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image1.png 678w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image1-300x202.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-876\" class=\"wp-caption-text\">Django admin panel screenshot<\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">We can manually add the numbers of units available in case we later want to limit whether or not someone can add this product to their shopping cart if we don\u2019t have the products available.<\/span><\/p>\n<h2>Using Stripe Checkout<\/h2>\n<p>Now we have our products we\u2019re going to use Stripe\u2019s integrated Checkout session mechanism. We\u2019ve implemented it like this.<\/p>\n<figure id=\"attachment_877\" aria-describedby=\"caption-attachment-877\" style=\"width: 632px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-877 size-full\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image4.png\" alt=\"\" width=\"632\" height=\"776\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image4.png 632w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image4-244x300.png 244w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image4-570x700.png 570w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><figcaption id=\"caption-attachment-877\" class=\"wp-caption-text\">Code snippet screenshot<\/figcaption><\/figure>\n<p>The post method in this view handles incoming POST requests. First, it sets the Stripe API key to the secret key specified in the Django settings. Then, it extracts the data from the items field in the request data and checks for an authenticated user in the request object. If a user is authenticated, the method creates a new Stripe checkout session using the stripe.checkout.Session.create() method. The session includes information on the line items, customer email, and success\/cancel URLs. The line items should be defined as a list of products and their quantity, like this:<\/p>\n<figure id=\"attachment_878\" aria-describedby=\"caption-attachment-878\" style=\"width: 542px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-878 size-full\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image13.png\" alt=\"\" width=\"542\" height=\"279\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image13.png 542w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image13-300x154.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><figcaption id=\"caption-attachment-878\" class=\"wp-caption-text\">Postman testing<\/figcaption><\/figure>\n<p>If the session creation is successful, this method will return the URL generated by Stripe for the checkout session to the frontend of our application. This is an excellent option if you prefer not to handle credit card payment security yourself. Additionally, Stripe provides the ability to customize the interface to match your application&#8217;s design. In our case, the checkout session appears like this:<\/p>\n<figure id=\"attachment_879\" aria-describedby=\"caption-attachment-879\" style=\"width: 654px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-879\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3-1024x523.png\" alt=\"\" width=\"654\" height=\"334\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3-1024x523.png 1024w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3-300x153.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3-768x392.png 768w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3-1536x784.png 1536w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3-750x383.png 750w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/image3.png 1641w\" sizes=\"auto, (max-width: 654px) 100vw, 654px\" \/><figcaption id=\"caption-attachment-879\" class=\"wp-caption-text\">Stripe checkout screenshot<\/figcaption><\/figure>\n<p>Once a payment is successfully made, Stripe will redirect the user to the success_url that we passed during session creation. If the user cancels the payment, they will be redirected to the cancel_url. It&#8217;s important to ensure that both of these endpoints exist on your end to ensure a seamless user experience.<\/p>\n<h2>Conclusion<\/h2>\n<p>Stripe is a payment service provider that simplifies the integration of payment processing into web applications. Also known for being secure, reliable, and developer-friendly. With Stripe&#8217;s API, developers can create custom payment forms, manage subscriptions, handle refunds, and more. Stripe offers a flexible solution for businesses of all sizes with its support for various payment methods. This article provides a step-by-step guide for developers to seamlessly integrate Stripe into their marketplace website, covering the initial project setup, payment processing, and webhooks. With Stripe&#8217;s integrated Checkout session mechanism, businesses can handle payments quickly and efficiently, freeing up more time to focus on other aspects of their business.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Stripe As a web developer, selecting the appropriate payment service provider for your project can pose a daunting<\/p>\n","protected":false},"author":10,"featured_media":885,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[69,64,63,67,65,66,68],"class_list":["post-821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backend-development","tag-django","tag-integration","tag-payment","tag-products","tag-stripe","tag-testing","tag-webhooks"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Integrate Stripe Payments into Your Marketplace Site - Agilno<\/title>\n<meta name=\"description\" content=\"Learn how to integrate Stripe, a payment service provider, into your web app. Discover benefits and follow the step-by-step integration process.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Integrate Stripe Payments into Your Marketplace Site - Agilno\" \/>\n<meta property=\"og:description\" content=\"Learn how to integrate Stripe, a payment service provider, into your web app. Discover benefits and follow the step-by-step integration process.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\" \/>\n<meta property=\"og:site_name\" content=\"Agilno\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-10T07:00:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-01T13:01:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ivan Ivandic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ivan Ivandic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\"},\"author\":{\"name\":\"Ivan Ivandic\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/29d3e722001d00675b5c3edccaa5006d\"},\"headline\":\"Integrate Stripe Payments into Your Marketplace Site\",\"datePublished\":\"2023-05-10T07:00:05+00:00\",\"dateModified\":\"2023-06-01T13:01:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\"},\"wordCount\":1412,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg\",\"keywords\":[\"Django\",\"integration\",\"payment\",\"products\",\"Stripe\",\"testing\",\"webhooks\"],\"articleSection\":[\"Backend Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\",\"url\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\",\"name\":\"Integrate Stripe Payments into Your Marketplace Site - Agilno\",\"isPartOf\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg\",\"datePublished\":\"2023-05-10T07:00:05+00:00\",\"dateModified\":\"2023-06-01T13:01:26+00:00\",\"author\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/29d3e722001d00675b5c3edccaa5006d\"},\"description\":\"Learn how to integrate Stripe, a payment service provider, into your web app. Discover benefits and follow the step-by-step integration process.\",\"breadcrumb\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage\",\"url\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg\",\"contentUrl\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg\",\"width\":2560,\"height\":1540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/makeit.com.hr\/agilno\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integrate Stripe Payments into Your Marketplace Site\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#website\",\"url\":\"https:\/\/makeit.com.hr\/agilno\/\",\"name\":\"Agilno\",\"description\":\"We build experiences, products, and businesses that create results\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/makeit.com.hr\/agilno\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/29d3e722001d00675b5c3edccaa5006d\",\"name\":\"Ivan Ivandic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9b9314e55ea5ca07240d246afd3333ff511444c432b148f530ba5b44c7d81db5?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9b9314e55ea5ca07240d246afd3333ff511444c432b148f530ba5b44c7d81db5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9b9314e55ea5ca07240d246afd3333ff511444c432b148f530ba5b44c7d81db5?s=96&d=mm&r=g\",\"caption\":\"Ivan Ivandic\"},\"url\":\"https:\/\/makeit.com.hr\/agilno\/author\/ivan-ivandic\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Integrate Stripe Payments into Your Marketplace Site - Agilno","description":"Learn how to integrate Stripe, a payment service provider, into your web app. Discover benefits and follow the step-by-step integration process.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/","og_locale":"en_US","og_type":"article","og_title":"Integrate Stripe Payments into Your Marketplace Site - Agilno","og_description":"Learn how to integrate Stripe, a payment service provider, into your web app. Discover benefits and follow the step-by-step integration process.","og_url":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/","og_site_name":"Agilno","article_published_time":"2023-05-10T07:00:05+00:00","article_modified_time":"2023-06-01T13:01:26+00:00","og_image":[{"width":2560,"height":1540,"url":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg","type":"image\/jpeg"}],"author":"Ivan Ivandic","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ivan Ivandic","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#article","isPartOf":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/"},"author":{"name":"Ivan Ivandic","@id":"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/29d3e722001d00675b5c3edccaa5006d"},"headline":"Integrate Stripe Payments into Your Marketplace Site","datePublished":"2023-05-10T07:00:05+00:00","dateModified":"2023-06-01T13:01:26+00:00","mainEntityOfPage":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/"},"wordCount":1412,"commentCount":0,"image":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage"},"thumbnailUrl":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg","keywords":["Django","integration","payment","products","Stripe","testing","webhooks"],"articleSection":["Backend Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/","url":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/","name":"Integrate Stripe Payments into Your Marketplace Site - Agilno","isPartOf":{"@id":"https:\/\/makeit.com.hr\/agilno\/#website"},"primaryImageOfPage":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage"},"image":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage"},"thumbnailUrl":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg","datePublished":"2023-05-10T07:00:05+00:00","dateModified":"2023-06-01T13:01:26+00:00","author":{"@id":"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/29d3e722001d00675b5c3edccaa5006d"},"description":"Learn how to integrate Stripe, a payment service provider, into your web app. Discover benefits and follow the step-by-step integration process.","breadcrumb":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#primaryimage","url":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg","contentUrl":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2023\/05\/6.jpg","width":2560,"height":1540},{"@type":"BreadcrumbList","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/integrate-stripe-payments-into-your-marketplace-site-with-django\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/makeit.com.hr\/agilno\/"},{"@type":"ListItem","position":2,"name":"Integrate Stripe Payments into Your Marketplace Site"}]},{"@type":"WebSite","@id":"https:\/\/makeit.com.hr\/agilno\/#website","url":"https:\/\/makeit.com.hr\/agilno\/","name":"Agilno","description":"We build experiences, products, and businesses that create results","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/makeit.com.hr\/agilno\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/29d3e722001d00675b5c3edccaa5006d","name":"Ivan Ivandic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9b9314e55ea5ca07240d246afd3333ff511444c432b148f530ba5b44c7d81db5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9b9314e55ea5ca07240d246afd3333ff511444c432b148f530ba5b44c7d81db5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9b9314e55ea5ca07240d246afd3333ff511444c432b148f530ba5b44c7d81db5?s=96&d=mm&r=g","caption":"Ivan Ivandic"},"url":"https:\/\/makeit.com.hr\/agilno\/author\/ivan-ivandic\/"}]}},"_links":{"self":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts\/821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/comments?post=821"}],"version-history":[{"count":17,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts\/821\/revisions"}],"predecessor-version":[{"id":915,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts\/821\/revisions\/915"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/media\/885"}],"wp:attachment":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/media?parent=821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/categories?post=821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/tags?post=821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}