Примечание: Эта статья была написана на основе версии 1.0.0 библиотеки monnify-go, а сейчас библиотека находится в версии 2.0.0. Вы можете щелкнуть здесь, чтобы просмотреть недавнюю статью о версии 2.0.0.
В сегодняшней статье я покажу вам, как интегрировать платежный шлюз monnify в ваш Go-проект.
Monnify — это платежный шлюз для предприятий, позволяющий принимать платежи от клиентов, как на повторяющейся, так и на разовой основе. Monnify предлагает более простой, быстрый и дешевый способ для предприятий получать оплату через свои веб- и мобильные приложения, используя удобные способы оплаты для клиентов с самыми высокими показателями успешности, достижимыми в Нигерии.
Для реализации мы будем использовать библиотеку monnify, которую я создал. Вот ссылка на github на библиотеку https://github.com/hisyntax/monnify-go.
Установка
Чтобы установить этот пакет monnify, вам необходимо установить Go и создать рабочее пространство Go.
- Вы можете использовать следующую команду Go для установки monnify-go
$ go get -u github.com/hisyntax/monnify-go
- Импортируйте его в свой код:
import "github.com/hisyntax/monnify-go"
Принять платеж
Используйте это для приема платежей от клиентов
package main
import (
"fmt"
monnify "github.com/hisyntax/monnify-go"
"github.com/hisyntax/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)
}
Получить статус принятого платежа
Используйте эту функцию для получения статуса принятого платежа
package main
import (
"fmt"
monnify "github.com/hisyntax/monnify-go"
"github.com/hisyntax/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)
}
Инициировать одиночный перевод
Используйте эту функцию для инициирования одиночных переводов
package main
import (
"fmt"
monnify "github.com/hisyntax/monnify-go"
"github.com/hisyntax/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
Используйте эту функцию для получения статуса инициированной одиночной передачи
package main
import (
"fmt"
monnify "github.com/hisyntax/monnify-go"
"github.com/hisyntax/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)
}
Этот пакет monnify-go находится в стабильной версии v1.0.0, и приведенные выше методы — это то, что эта библиотека предлагает сейчас. Но со временем все возможности, которые предлагает monnify, будут добавлены в этот пакет.