frozzare / go-swish

Go package for the Swish merchant API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swish Build Status GoDoc Go Report Card

Go package for dealing with Swish merchant API.

Installation

go get -u github.com/frozzare/go-swish

Usage

Please read the Swish documentation first so you know what you need and what the different fields means.

Begin by obtaining the SSL certificates required by Swish. The Swish server itself uses a self-signed root certificated so a CA-bundle to verify its origin is needed. You will also need a client certificate and corresponding private key so the Swish server can identify you.

Certificates in certs directory is the test certificates from Swish and cannot be used in production.

package main

import (
	"context"
	"log"

	"github.com/frozzare/go-swish"
)

func main() {
	client, err := swish.NewClient(&swish.Options{
		Env:        "test",
		Passphrase: "swish",
		P12:        "./certs/test.p12",
		Root:       "./certs/root.pem",
	})

	if err != nil {
		log.Fatal(err)
	}

	res, err := client.CreatePayment(context.Background(), &swish.PaymentData{
		CallbackURL:           "https://example.com/api/swishcb/paymentrequests",
		PayeePaymentReference: "0123456789",
		PayeeAlias:            "1231181189",
		Amount:                "100.00",
		Currency:              "SEK",
		Message:               "Kingston USB Flash Drive 8 GB",
	})

	if err != nil {
		log.Fatal(err)
	}

	log.Println(res.ID)

	res, err = client.Payment(context.Background(), res.ID)

	if err != nil {
		log.Fatal(err)
	}

	log.Println(res.Status)
}

License

MIT © Fredrik Forsmo

About

Go package for the Swish merchant API

License:MIT License


Languages

Language:Go 100.0%