Stripe è una delle piattaforme di pagamento più utilizzate al mondo. In questo articolo vedremo come utilizzare le API di Stripe con il linguaggio di programmazione Go.
Installazione della libreria Stripe
Per interagire con Stripe in Go, dobbiamo installare il pacchetto ufficiale di Stripe SDK per Go.
go get github.com/stripe/stripe-go/v78
Configurazione della chiave API
Prima di effettuare qualsiasi operazione, dobbiamo configurare la chiave API fornita da Stripe.
package main
import (
"github.com/stripe/stripe-go/v78"
"github.com/stripe/stripe-go/v78/customer"
)
func main() {
stripe.Key = "sk_test_XXXXXXXXXXXXXXXXXXXXXXX"
}
Creazione di un cliente
Possiamo creare un cliente in Stripe usando il pacchetto customer
.
params := &stripe.CustomerParams{
Email: stripe.String("customer@example.com"),
Name: stripe.String("Mario Rossi"),
}
c, err := customer.New(params)
if err != nil {
log.Fatalf("Errore nella creazione del cliente: %v", err)
}
fmt.Printf("Cliente creato: %s", c.ID)
Creazione di un pagamento
Per elaborare un pagamento con carta, possiamo usare l'endpoint paymentintent
.
import "github.com/stripe/stripe-go/v78/paymentintent"
params := &stripe.PaymentIntentParams{
Amount: stripe.Int64(1000),
Currency: stripe.String("eur"),
PaymentMethodTypes: stripe.StringSlice([]string{"card"}),
}
pi, err := paymentintent.New(params)
if err != nil {
log.Fatalf("Errore nella creazione del pagamento: %v", err)
}
fmt.Printf("Pagamento creato: %s", pi.ID)
Gestione dei webhook
I webhook permettono di ricevere notifiche sugli eventi di pagamento. Ecco un esempio di gestione di un webhook in Go.
import (
"net/http"
"io"
"github.com/stripe/stripe-go/v78/webhook"
)
func handleWebhook(w http.ResponseWriter, r *http.Request) {
payload, _ := io.ReadAll(r.Body)
event, err := webhook.ConstructEvent(payload, r.Header.Get("Stripe-Signature"), "webhook_secret")
if err != nil {
http.Error(w, "Errore nel parsing del webhook", http.StatusBadRequest)
return
}
fmt.Printf("Evento ricevuto: %s", event.Type)
}
Conclusione
In questo articolo abbiamo esplorato come integrare le API di Stripe in un'applicazione Go. Abbiamo visto come configurare la chiave API, creare un cliente, elaborare un pagamento e gestire i webhook.