diff --git a/static/js/checkout.js b/static/js/checkout.js new file mode 100644 index 0000000..2e3607f --- /dev/null +++ b/static/js/checkout.js @@ -0,0 +1,81 @@ +// Set your publishable key: remember to change this to your live publishable key in production +// See your keys here: https://dashboard.stripe.com/account/apikeys +var stripe = Stripe('pk_test_51Icq29K2XyHQRTs2DeltUIWrbFb5evfJVGaQzMv4r50g8Q7HAUkSFr7BBGv0aP1damXIhM6fZ4Yf9Wz0qW6TpTVi00dWcW7J1O'); +var elements = stripe.elements(); + +// Set up Stripe.js and Elements to use in checkout form +var style = { + base: { + color: "#32325d", + } +}; + +var card = elements.create("card", { style: style }); +card.mount("#card-element"); + + +card.addEventListener('change', ({error}) => { + const displayError = document.getElementById('card-errors'); + if (error) { + displayError.textContent = error.message; + } else { + displayError.textContent = ''; + } +}); + + +var submitButton = document.getElementById('submit'); + +function GetClientSecret() { + var result = ""; + $.ajax({ + async: false, + url: "getstripepaymentintent", + type: "get", //send it through get method + dataType: "json", + data: { + charge_data: $("#charge_data").html() + }, + success: function(response) { + console.log('pay success'); + console.log(response.stripesessionid); + console.log('rc: '+response.rc); + if (response.rc == 0) { + result = response.stripeclientsecret; + } + }, + error: function(xhr) { + console.log('getstripepaymentintent error'); + //Do Something to handle error + } + }); + + return result; +} + +submitButton.addEventListener('click', function(ev) { + var clientSecret = GetClientSecret(); + stripe.confirmCardPayment(clientSecret, { + payment_method: { + card: card, + billing_details: { + name: 'Jenny Rosen' + } + } + }).then(function(result) { + if (result.error) { + // Show error to your customer (e.g., insufficient funds) + console.log(result.error.message); + } else { + // The payment has been processed! + if (result.paymentIntent.status === 'succeeded') { + // Show a success message to your customer + // There's a risk of the customer closing the window before callback + // execution. Set up a webhook or plugin to listen for the + // payment_intent.succeeded event that handles any business critical + // post-payment actions. + alert("Payment succeeded!!!"); + } + } + }); +}); diff --git a/static/js/tracker.js b/static/js/tracker.js index e4f06f0..2ec2a0e 100644 --- a/static/js/tracker.js +++ b/static/js/tracker.js @@ -77,7 +77,7 @@ $(document).ready(function () { } else { this_date = paid_until; } - abo_table += '' + $(this).find('.alias').html() + '' + moment(this_date, 'DD.MM.YYYY').add('years', this_count).format('DD.MM.YYYY') + '' + (this_count * 24).toFixed(2) + ''; + abo_table += '' + $(this).find('.alias').html() + '' + moment(this_date, 'DD.MM.YYYY').add('years', this_count).format('DD.MM.YYYY') + '' + (this_count * 60).toFixed(2) + ''; if (charge_data == '') { charge_data = $(this).find("div").first().attr('id') + ":" + this_count; } else { @@ -85,7 +85,7 @@ $(document).ready(function () { } } }); - abo_table += 'Total CHF' + (counter * 24).toFixed(2) + ''; + abo_table += 'Total CHF' + (counter * 60).toFixed(2) + ''; abo_table += ""; if (counter > 0) { $("#abos_verlaengern").html(abo_table); @@ -157,7 +157,7 @@ function loadStripeLibrary() { function SetupStripe() { // Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/account/apikeys - stripe = Stripe('pk_test_YkSGqH3Tk9WKK9HrlY63GhAg'); + stripe = Stripe('pk_test_51Icq29K2XyHQRTs2DeltUIWrbFb5evfJVGaQzMv4r50g8Q7HAUkSFr7BBGv0aP1damXIhM6fZ4Yf9Wz0qW6TpTVi00dWcW7J1O'); elements = stripe.elements({ locale: "de" }); // Set up Stripe.js and Elements to use in checkout form diff --git a/stripe.go b/stripe.go index adc4fcb..ade75b5 100644 --- a/stripe.go +++ b/stripe.go @@ -41,7 +41,7 @@ func getstripepaymentintentHandler(response http.ResponseWriter, request *http.R } } } - abo_amount := int64(abo_years * 2400) + abo_amount := int64(abo_years * 6000) stripe.Key = getStripeKey() @@ -75,7 +75,7 @@ func HandlePayment(user string, charge_data string, amount int64) { years, _ := strconv.Atoi(res[1]) fmt.Printf("prolongActivation %s: %d\n", deveui, years) prolongActivation(deveui, years) - line := fmt.Sprintf("%-30s %20s %10.2f\n", getDevAlias(deveui), getActiveUntil(deveui), float64(24*years)) + line := fmt.Sprintf("%-30s %20s %10.2f\n", getDevAlias(deveui), getActiveUntil(deveui), float64(60*years)) charge_data_email_text = charge_data_email_text + line } }