Generating a receipt page
This commit is contained in:
parent
48695949e3
commit
bfaf8965b3
@ -9,3 +9,33 @@ func (app *application) VirtualTerminal(w http.ResponseWriter, r *http.Request)
|
|||||||
app.errorLog.Println(err)
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -28,7 +28,7 @@ var functions = template.FuncMap{}
|
|||||||
var templateFS embed.FS
|
var templateFS embed.FS
|
||||||
|
|
||||||
func (app *application) addDefaultData(td *templateData, r *http.Request) *templateData {
|
func (app *application) addDefaultData(td *templateData, r *http.Request) *templateData {
|
||||||
return nil
|
return td
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *application) renderTemplate(
|
func (app *application) renderTemplate(
|
||||||
|
@ -10,6 +10,7 @@ func (app *application) routes() http.Handler {
|
|||||||
mux := chi.NewRouter()
|
mux := chi.NewRouter()
|
||||||
|
|
||||||
mux.Get("/virtual-terminal", app.VirtualTerminal)
|
mux.Get("/virtual-terminal", app.VirtualTerminal)
|
||||||
|
mux.Post("/payment-succeeded", app.PaymentSucceeded)
|
||||||
|
|
||||||
return mux
|
return mux
|
||||||
}
|
}
|
||||||
|
14
cmd/web/templates/succeeded.page.gohtml
Normal file
14
cmd/web/templates/succeeded.page.gohtml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{{ template "base" . }}
|
||||||
|
{{ define "title" }}
|
||||||
|
Payment Succedded!
|
||||||
|
{{ end }}
|
||||||
|
{{ define "content" }}
|
||||||
|
<h2 class="mt-5">Payment Succeeded</h2>
|
||||||
|
<hr>
|
||||||
|
<p>Payment Intent: {{ index .Data "pi" }}</p>
|
||||||
|
<p>Cardholder: {{ index .Data "cardholder" }}</p>
|
||||||
|
<p>Email: {{ index .Data "email" }}</p>
|
||||||
|
<p>Payment Method: {{ index .Data "pm" }}</p>
|
||||||
|
<p>Payment Amount: {{ index .Data "pa" }}</p>
|
||||||
|
<p>Currency: {{ index .Data "pc" }}</p>
|
||||||
|
{{ end }}
|
@ -6,7 +6,7 @@ Virtual Terminal
|
|||||||
<h2 class="mt-3 text-center">Virtual Terminal</h2>
|
<h2 class="mt-3 text-center">Virtual Terminal</h2>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="alert alert-danger text-center d-none" id="card-messages"></div>
|
<div class="alert alert-danger text-center d-none" id="card-messages"></div>
|
||||||
<form action="/payment-succecded"
|
<form action="/payment-succeeded"
|
||||||
method="post"
|
method="post"
|
||||||
name="charge_form"
|
name="charge_form"
|
||||||
id="charge_form"
|
id="charge_form"
|
||||||
@ -149,12 +149,13 @@ function val() {
|
|||||||
} else if (result.paymentIntent) {
|
} else if (result.paymentIntent) {
|
||||||
if (result.paymentIntent.status === "succeeded") {
|
if (result.paymentIntent.status === "succeeded") {
|
||||||
// we have charged the card
|
// we have charged the card
|
||||||
|
document.getElementById("payment_intent").value = result.paymentIntent.id;
|
||||||
document.getElementById("payment_method").value = result.paymentIntent.payment_method_types[0];
|
document.getElementById("payment_method").value = result.paymentIntent.payment_method_types[0];
|
||||||
document.getElementById("payment_amount").value = result.paymentIntent.amount;
|
document.getElementById("payment_amount").value = result.paymentIntent.amount;
|
||||||
document.getElementById("payment_currency").value = result.paymentIntent.currency;
|
document.getElementById("payment_currency").value = result.paymentIntent.currency;
|
||||||
processing.classList.add("d-none");
|
processing.classList.add("d-none");
|
||||||
showCardSuccess();
|
showCardSuccess();
|
||||||
// would submit the form
|
document.getElementById("charge_form").submit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user