2024-08-03 19:57:24 +00:00
|
|
|
package main
|
|
|
|
|
2024-08-03 20:26:40 +00:00
|
|
|
import (
|
|
|
|
"net/http"
|
2024-08-07 09:56:53 +00:00
|
|
|
"strconv"
|
|
|
|
|
|
|
|
"github.com/go-chi/chi/v5"
|
2024-08-03 20:26:40 +00:00
|
|
|
)
|
2024-08-03 19:57:24 +00:00
|
|
|
|
|
|
|
func (app *application) VirtualTerminal(w http.ResponseWriter, r *http.Request) {
|
2024-08-06 19:18:32 +00:00
|
|
|
if err := app.renderTemplate(w, r, "terminal", &templateData{}, "stripe-js"); err != nil {
|
2024-08-03 20:26:40 +00:00
|
|
|
app.errorLog.Println(err)
|
|
|
|
}
|
2024-08-03 19:57:24 +00:00
|
|
|
}
|
2024-08-04 16:17:56 +00:00
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
2024-08-06 11:29:32 +00:00
|
|
|
|
|
|
|
// ChargeOnce displays the page to buy one widget
|
|
|
|
func (app *application) ChargeOnce(w http.ResponseWriter, r *http.Request) {
|
2024-08-07 09:56:53 +00:00
|
|
|
id := chi.URLParam(r, "id")
|
|
|
|
widgetID, _ := strconv.Atoi(id)
|
|
|
|
|
|
|
|
widget, err := app.DB.GetWidget(widgetID)
|
|
|
|
if err != nil {
|
|
|
|
app.errorLog.Println(err)
|
2024-08-06 12:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
data := make(map[string]interface{})
|
|
|
|
data["widget"] = widget
|
|
|
|
|
|
|
|
if err := app.renderTemplate(w, r, "buy-once", &templateData{
|
|
|
|
Data: data,
|
|
|
|
}, "stripe-js"); err != nil {
|
2024-08-06 11:29:32 +00:00
|
|
|
app.errorLog.Println(err)
|
|
|
|
}
|
|
|
|
}
|