Usare le API di Stripe in Go

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.

Torna su