IntegrationsSDKs
SDK Go
Utiliser le SDK officiel Novasend cote Go.
Le SDK officiel Novasend pour Go est conçu pour être simple, performant et sans dépendance externe. Il utilise exclusivement la bibliothèque standard de Go.
Installation
Récupérez le module Go :
go get github.com/novasend/novasend-goConfiguration
Initialisez le client avec vos identifiants (disponibles sur le Portail Novasend). Nous vous recommandons d'utiliser os.Getenv pour charger vos clés.
import (
"os"
"time"
novasend "github.com/novasend/novasend-go"
)
client, err := novasend.NewClient(novasend.Config{
APIKey: os.Getenv("NOVASEND_API_KEY"),
SecretKey: os.Getenv("NOVASEND_SECRET_KEY"),
BaseURL: os.Getenv("NOVASEND_BASE_URL"),
Language: "fr",
Timeout: 30 * time.Second,
})Utilisation
Paiement Wallet (Redirection)
resp, err := client.CreateWalletPayment(ctx, &novasend.WalletPaymentRequest{
Reference: "ref_999",
Amount: 1500,
MSISDN: "+2250100000000",
CustomerName: "Moussa Traoré",
Country: "CI",
Action: novasend.PaymentAction{
SuccessURL: "https://votre-app.com/success",
FailureURL: "https://votre-app.com/fail",
},
})
if err == nil {
fmt.Println("URL de paiement :", resp.PaymentURL)
}Vérifier le Statut
status, err := client.GetPaymentStatus(ctx, "ref_999")
if err == nil {
fmt.Println("Statut :", status.Status)
}Webhooks
Vérifiez les signatures des webhooks avec la bibliothèque standard (HMAC-SHA256).
wh, _ := novasend.NewWebhooks(os.Getenv("NOVASEND_WEBHOOK_SECRET"))
http.HandleFunc("/webhook", func(w http.ResponseWriter, r *http.Request) {
body, _ := io.ReadAll(r.Body)
sig := r.Header.Get("X-Signature-Value")
event, err := wh.VerifySignature(body, sig)
if err != nil {
w.WriteHeader(http.StatusUnauthorized)
return
}
// Traitement de l'événement
w.WriteHeader(http.StatusOK)
})Gestion des Erreurs
Le SDK utilise un type d'erreur personnalisé APIError pour vous donner accès aux détails renvoyés par Novasend.
if err != nil {
var apiErr *novasend.APIError
if errors.As(err, &apiErr) {
fmt.Printf("Erreur API %d : %s\n", apiErr.StatusCode, apiErr.Message)
}
}Le SDK Go ne possède aucune dépendance externe, ce qui garantit une intégration légère et une sécurité maximale pour vos binaires.