142 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			HTML
		
	
	
		
			Executable File
		
	
	
| 
 | |
| {% extends "mnfapp/base.html" %}
 | |
| {% load static %}
 | |
| {% block content %}
 | |
| <head>
 | |
|     <meta charset="UTF-8">
 | |
|     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | |
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | |
|     <title>Checkout</title>
 | |
|     <script src="https://js.stripe.com/v3/"></script>
 | |
|     <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> -->
 | |
|     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
 | |
|     <!-- <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> -->
 | |
|     <style>
 | |
|         .checkout-container{
 | |
|             display: grid;
 | |
|             grid-template-columns: 48% 48%;
 | |
|         }
 | |
|         .checkout-content{
 | |
|             margin: 10px;
 | |
|             padding: 10px;
 | |
|         }
 | |
|     </style>
 | |
| </head>
 | |
|     <button style="color: blue;background-color: transparent; border: 0; text-decoration: underline;" onclick="window.history.back()"> Back To Payment</button>
 | |
|     <h1 style="background-color: #33b0ca; color: white; padding:0.2em 0em 0.3em 0.3em ; width: 96vw; margin-top:100px; text-align: center; font-size: 1.5rem;">Checkout</h1>
 | |
|     <div class="checkout-container">
 | |
|         <div>
 | |
|             <div class="checkout-content" style="border: solid black 1px; border-radius: 8px;">
 | |
|                 <form id='payment-form'>
 | |
|                     <h2 style="background-color: #33b0ca; color: white; padding:0.2em 0em 0.3em 0.3em; font-size: 1rem;border-radius: 4px; padding-left: 0.5rem;">Payment</h2>
 | |
|                     {%csrf_token%}
 | |
|                     <div style="padding-left: 0.3em;">
 | |
|                         <h3 style="font-size: 1rem; font-weight: 600;">Choose Payment Method</h3>
 | |
|                     
 | |
|                         <div id="payment-element" style="margin-top: 4vh; display: grid; grid-template-columns: auto;">
 | |
|         
 | |
|                         </div>
 | |
|                         <button id="submit" style="width: 10vw; margin-top: 2em; background-color: #33b0ca; color: white;padding: 0.3em; border-radius: 8px; margin-left: 77.5%; border: none;">PAY NOW</button>
 | |
|                         <div id="error-message">
 | |
|                         <!-- Display error message to your customers here -->
 | |
|                         </div>    
 | |
|                     </div>
 | |
|                 </form>
 | |
| 
 | |
| 
 | |
|                 
 | |
|             
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="checkout-content" style="border: solid black 1px; border-radius: 8px;">
 | |
|             <h2 style="background-color: #33b0ca; color: white; padding:0.2em 0em 0.3em 0.3em; font-size: 1rem; border-radius: 4px; padding-left: 0.5rem;">Order Summary</h2>
 | |
|             <div style="display: grid; grid-template-columns: auto auto; margin-left: 0.5em;font-size: 1.4em;">
 | |
|                 <span style="text-align: left; font-size: 1rem; transform: translateX(-6px);">Amount To Be Paid</span>
 | |
|                 <span style="text-align: left; font-size: 1rem;">$ {{amount}} USD = ₹ {{amtINR}} INR</span>
 | |
|                 {% if desc %}
 | |
|                 <span style="text-align: left; font-size: 1rem; transform: translateX(-6px);">Subscription</span>
 | |
|                 <span style="text-align: left; font-size: 1rem;">{{subPlan}}</span>
 | |
|                 {%endif%}
 | |
|         </div>
 | |
| 
 | |
|     </div>
 | |
| 
 | |
|     
 | |
| <script>
 | |
|     console.log("test1");
 | |
|     console.log("{{pk}}");
 | |
|     var clientSecret =  '{{secret_key}}'
 | |
| 
 | |
|     const stripe = Stripe("{{pk}}");
 | |
|     console.log("test2");
 | |
|     
 | |
|     const options = {
 | |
|       clientSecret: clientSecret,
 | |
|     };
 | |
|     console.log('{{pid}}');
 | |
|     const elements = stripe.elements(options);
 | |
|     var style = {
 | |
|       base: {
 | |
|         color: "#32325d",
 | |
|         fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
 | |
|         fontSmoothing: "antialiased",
 | |
|         fontSize: "16px",
 | |
|         "::placeholder": {
 | |
|           color: "#aab7c4",
 | |
|         },
 | |
|       },
 | |
|       invalid: {
 | |
|         color: "#fa755a",
 | |
|         iconColor: "#fa755a",
 | |
|       },
 | |
|     };
 | |
|     var host = window.location.host;
 | |
|     console.log(host)
 | |
|     let protocol = ''
 | |
|         if (window.location.protocol === "https:") {
 | |
|               protocol = 'https://'
 | |
|         } else {
 | |
|               protocol = 'http://'
 | |
|         }
 | |
| 
 | |
| 
 | |
|     var csrfToken = "{{ csrf_token }}";
 | |
|     var redirectUrl = `${protocol}${host}/pay/paymentDone`
 | |
|     var paymentElement = elements.create("payment");
 | |
|     paymentElement.mount("#payment-element");
 | |
|     
 | |
|     const form = document.getElementById('payment-form');
 | |
|     form.addEventListener('submit', async (event) => {
 | |
|       event.preventDefault();
 | |
|       
 | |
|       console.log('testingforrev')
 | |
|       
 | |
|       const {error} = await stripe.confirmPayment({
 | |
|         //`Elements` instance that was used to create the Payment Element
 | |
|         elements,
 | |
|        
 | |
|         confirmParams: {
 | |
|         return_url: `${redirectUrl}`,
 | |
|         }
 | |
|       });
 | |
|     
 | |
|       if (error) {
 | |
|         // This point will only be reached if there is an immediate error when
 | |
|         // confirming the payment. Show error to your customer (for example, payment
 | |
|         // details incomplete)
 | |
|         
 | |
|         const messageContainer = document.querySelector('#error-message');
 | |
|         messageContainer.textContent = error.message;
 | |
|       } else {
 | |
| 
 | |
|         // Your customer will be redirected to your `return_url`. For some payment
 | |
|         // methods like iDEAL, your customer will be redirected to an intermediate
 | |
|         // site first to authorize the payment, then redirected to the `return_url`.
 | |
|       }
 | |
|     });
 | |
| 
 | |
| </script>
 | |
| 
 | |
| 
 | |
| {%endblock%}
 |