package main import ( "myapp/internal/models" "net/http" ) func (app *application) VirtualTerminal(w http.ResponseWriter, r *http.Request) { stringMap := make(map[string]string) stringMap["publishable_key"] = app.config.stripe.key if err := app.renderTemplate(w, r, "terminal", &templateData{ StringMap: stringMap, }, "stripe-js"); err != nil { app.errorLog.Println(err) } } func (app *application) PaymentSucceeded(w http.ResponseWriter, r *http.Request) { err := r.ParseForm() if err != nil { app.errorLog.Println(err) return } // read posted data cardHolder := r.Form.Get("cardholder_name") email := r.Form.Get("cardholder_email") paymentIntent := r.Form.Get("payment_intent") paymentMethod := r.Form.Get("payment_method") paymentAmount := r.Form.Get("payment_amount") paymentCurrency := r.Form.Get("payment_currency") data := make(map[string]interface{}) data["cardholder"] = cardHolder data["email"] = email data["pi"] = paymentIntent data["pm"] = paymentMethod data["pa"] = paymentAmount data["pc"] = paymentCurrency if err := app.renderTemplate(w, r, "succeeded", &templateData{ Data: data, }); err != nil { app.errorLog.Println(err) } } // ChargeOnce displays the page to buy one widget func (app *application) ChargeOnce(w http.ResponseWriter, r *http.Request) { widget := models.Widget{ ID: 1, Name: "Custom Widget", Description: "Paris 2024", InventoryLevel: 10, Price: 1000, } data := make(map[string]interface{}) data["widget"] = widget if err := app.renderTemplate(w, r, "buy-once", &templateData{ Data: data, }, "stripe-js"); err != nil { app.errorLog.Println(err) } }