Note: This article was written based on the v1.0.0 of the monnify-go library and the library is now in its v2.0.0. You can click here to view the recent article on the v2.0.0
In today's article, I would be showing you how to integrate the monnify payment gateway into your Go project.
Monnify is a payment gateway for businesses to accept payments from customers, either on a recurring or one-time basis. Monnify offers an easier, faster and cheaper way for businesses to get paid on their web and mobile applications using convenient payment methods for customers with the highest success rates obtainable in Nigeria.
We would be using a monnify library I created for the implementation. Here's the github link to the library https://github.com/iqquee/monnify-go
Installation
To install this monnify package, you need to install Go and set your Go workspace first.
- You can use the below Go command to install monnify-go
$ go get -u github.com/iqquee/monnify-go
- Import it in your code:
import "github.com/iqquee/monnify-go"
Accept Payment
Use this to accept payments from customers
package main
import (
"fmt"
monnify "github.com/iqquee/monnify-go"
"github.com/iqquee/monnify-go/transaction"
)
func main() {
apiKey := ""
secretKey := ""
baseUrl := "https://sandbox.monnify.com" // for test
monnify.Options(apiKey, secretKey, baseUrl)
amount := 100
paymentReference := "ref123"
paymentDesc := "test payment"
currencyCode := "NGN"
contractCode := ""
customerName := ""
customerEmail := ""
customerNumber := ""
redirectUrl := "https://google.com" // test redirect url
res, status, err := transaction.AcceptPayment(amount,paymentReference , paymentDesc, currencyCode, contractCode, customerName, customerEmail, customerNumber, redirectUrl)
if err != nil {
fmt.Println(err)
}
fmt.Println(status)
fmt.Println(res)
}
Get Accepted Payment Status
Use this to get accepted payment status
package main
import (
"fmt"
monnify "github.com/iqquee/monnify-go"
"github.com/iqquee/monnify-go/transaction"
)
func main() {
apiKey := ""
secretKey := ""
baseUrl := "https://sandbox.monnify.com" // for test
monnify.Options(apiKey, secretKey, baseUrl)
paymentReference := "ref123"
res, status, err := transaction.GetTransactionStatus(paymentReference)
if err != nil {
fmt.Println(err)
}
fmt.Println(status)
fmt.Println(res)
}
Initiate Single Transfer
Use this to initiate single transfers
package main
import (
"fmt"
monnify "github.com/iqquee/monnify-go"
"github.com/iqquee/monnify-go/transaction"
)
func main() {
apiKey := ""
secretKey := ""
baseUrl := "https://sandbox.monnify.com" // for test
monnify.Options(apiKey, secretKey, baseUrl)
amount := 100
paymentReference := "ref123"
narration := "example transaction"
bankCode := "058" // for GT Bank
currency := "NGN"
accountNumber := ""
walletId := ""
res, status, err := transaction.InitiateSingleTransfer(amount, paymentReference, narration, currency, bankCode, accountNumber, walletId)
if err != nil {
fmt.Println(err)
}
fmt.Println(status)
fmt.Println(res)
}
Initiate Single Transfer Status
Use this to get the initiated single transfer status
package main
import (
"fmt"
monnify "github.com/iqquee/monnify-go"
"github.com/iqquee/monnify-go/transaction"
)
func main() {
apiKey := ""
secretKey := ""
baseUrl := "https://sandbox.monnify.com" // for test
monnify.Options(apiKey, secretKey, baseUrl)
paymentReference := "ref123"
res, status, err := transaction.GetInitiateSingleTransferStatus(paymentReference)
if err != nil {
fmt.Println(err)
}
fmt.Println(status)
fmt.Println(res)
}
This package monnify-go is in it stable v1.0.0 and the methods above is what this library offers now. But as time goes on, all the features monnify offers would be added to this package.
Top comments (0)