Instalacao
go get github.com/axon-fintech/axon-goConfiguracao
main.gogo
package main
import (
"github.com/axon-fintech/axon-go"
)
func main() {
client := axon.NewClient(
axon.WithAPIKey("axon_sk_..."),
axon.WithEnvironment(axon.Sandbox), // ou axon.Production
)
// Usar o client...
}Vault - Tokenizacao
vault.gogo
package main
import (
"context"
"fmt"
"github.com/axon-fintech/axon-go"
"github.com/axon-fintech/axon-go/vault"
)
func tokenizeCard(client *axon.Client) {
ctx := context.Background()
token, err := client.Vault.CreateToken(ctx, &vault.CreateTokenRequest{
Card: &vault.Card{
Number: "4111111111111111",
ExpMonth: 12,
ExpYear: 2025,
CVV: "123",
HolderName: "JOAO SILVA",
},
Metadata: map[string]string{
"customer_id": "cust_123",
},
})
if err != nil {
panic(err)
}
fmt.Printf("Token: %s\n", token.ID)
fmt.Printf("Brand: %s\n", token.Card.Brand)
fmt.Printf("Last4: %s\n", token.Card.Last4)
}Synapse - Transformacoes
synapse.gogo
package main
import (
"context"
"fmt"
"github.com/axon-fintech/axon-go"
"github.com/axon-fintech/axon-go/synapse"
)
func transformMessage(client *axon.Client) {
ctx := context.Background()
result, err := client.Synapse.Transform(ctx, &synapse.TransformRequest{
SourceFormat: "pacs.008",
TargetFormat: "pix_payment",
Message: []byte(pacs008XML),
})
if err != nil {
panic(err)
}
fmt.Printf("Transformation ID: %s\n", result.ID)
fmt.Printf("Result: %s\n", string(result.Data))
}Tratamento de erros
errors.gogo
package main
import (
"context"
"errors"
"fmt"
"github.com/axon-fintech/axon-go"
)
func handleErrors(client *axon.Client) {
ctx := context.Background()
_, err := client.Vault.GetToken(ctx, "tok_invalid")
if err != nil {
var axonErr *axon.Error
if errors.As(err, &axonErr) {
fmt.Printf("Error code: %s\n", axonErr.Code)
fmt.Printf("Message: %s\n", axonErr.Message)
fmt.Printf("Request ID: %s\n", axonErr.RequestID)
switch axonErr.Code {
case "TOKEN_NOT_FOUND":
// Handle not found
case "RATE_LIMIT_EXCEEDED":
// Handle rate limit
default:
// Handle other errors
}
}
}
}