new version with new stripe functionality
This commit is contained in:
parent
97d2bb2593
commit
6364bedb29
37
stripe.go
37
stripe.go
|
|
@ -3,8 +3,9 @@ package main
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/stripe/stripe-go/v72"
|
"github.com/stripe/stripe-go/v74"
|
||||||
"github.com/stripe/stripe-go/v72/paymentintent"
|
"github.com/stripe/stripe-go/v74/customer"
|
||||||
|
"github.com/stripe/stripe-go/v74/paymentintent"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
@ -21,6 +22,33 @@ func getStripePK() string {
|
||||||
return os.Getenv("STRIPE_PK")
|
return os.Getenv("STRIPE_PK")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getCustomerid(name string) string {
|
||||||
|
// if customer does not already exist, create it...
|
||||||
|
var cid = ""
|
||||||
|
params := &stripe.CustomerSearchParams{}
|
||||||
|
params.Query = *stripe.String("name:'" + name + "'")
|
||||||
|
customers := customer.Search(params)
|
||||||
|
for customers.Next() {
|
||||||
|
fmt.Printf("%s\n", customers.Current().(*stripe.Customer).ID)
|
||||||
|
cid = customers.Current().(*stripe.Customer).ID
|
||||||
|
}
|
||||||
|
|
||||||
|
if cid == "" {
|
||||||
|
// create new customer
|
||||||
|
paramsc := &stripe.CustomerParams{
|
||||||
|
Name: stripe.String(name),
|
||||||
|
}
|
||||||
|
|
||||||
|
customer, err := customer.New(paramsc)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error Creating Customer: " + name)
|
||||||
|
}
|
||||||
|
cid = customer.ID
|
||||||
|
}
|
||||||
|
|
||||||
|
return cid
|
||||||
|
}
|
||||||
|
|
||||||
func getstripepaymentintentHandler(response http.ResponseWriter, request *http.Request) {
|
func getstripepaymentintentHandler(response http.ResponseWriter, request *http.Request) {
|
||||||
name := getUserName(request)
|
name := getUserName(request)
|
||||||
if name != "" {
|
if name != "" {
|
||||||
|
|
@ -51,7 +79,12 @@ func getstripepaymentintentHandler(response http.ResponseWriter, request *http.R
|
||||||
|
|
||||||
stripe.Key = getStripeKey()
|
stripe.Key = getStripeKey()
|
||||||
|
|
||||||
|
// if customer does not already exist, create it...
|
||||||
|
customerid := getCustomerid(name)
|
||||||
|
|
||||||
|
// define payment
|
||||||
params := &stripe.PaymentIntentParams{
|
params := &stripe.PaymentIntentParams{
|
||||||
|
Customer: stripe.String(customerid),
|
||||||
Amount: stripe.Int64(abo_amount),
|
Amount: stripe.Int64(abo_amount),
|
||||||
Currency: stripe.String(string(stripe.CurrencyCHF)),
|
Currency: stripe.String(string(stripe.CurrencyCHF)),
|
||||||
ReceiptEmail: stripe.String(name),
|
ReceiptEmail: stripe.String(name),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue