mpesa

package module
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2023 License: MIT Imports: 16 Imported by: 0

README

Mpesa

Mpesa for Mpesa

made-with-Go GitHub go.mod Go version of a Go module GoDoc reference example

Golang bindings for the Mpesa Payment API. Make your MPESA payments Ready... To... Gooo! (pun intended). Made with love for gophers.

Features

  • Customer to Business (C2B) Single Payment
  • Business to Business (B2B)
  • Business to Customer (B2C)
  • Payment Reversal
  • Query Transaction status
  • Query Beneficiary Name
  • Query Direct Debit
  • Direct Debit Create
  • Direct Debit Payment

Pre-requisites

  • First sign up with Mpesa to get your API Key and PUBLIC key.

    You can go through this blog, Getting Started With Mpesa Developer API for a more detailed guide.

  • API key and Public key can be put in a file the following extensions json, yaml, .env

Supported extensions

json

 {
     "api_key":"your-api-key",
     "public_key":"your-public-key"
 }

yaml

api_key: your-api-key
public_key: your public key

.env

api_key=your-api-key
public_key=your-public-key

Installation

Simply install with the go get command:

go get github.com/Golang-Tanzania/mpesa

Then import it to your main package as:

package main

import (
	mpesa "github.com/Golang-Tanzania/mpesa
)

Load keys

First create a new variable of type mpesa.Client and then load the configs that we put on config dir, in it there is config.json file

var client mpesa.Client

client.LoadKeys("path to dir", "file", "file extension(json,yaml,.env)", environment(mpesa.Sandbox/mpesa.Production))
client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

Examples

Below are examples on how to make different transactions.

Customer To Business
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)

	a := mpesa.C2BPaymentRequest{
		InputAmount:                   "100",
		InputCustomerMSISDN:           "000000000001",
		InputCountry:                  "TZN",
		InputCurrency:                 "TZS",
		InputServiceProviderCode:      "000000",
		InputTransactionReference:     "T12344C",
		InputThirdPartyConversationID: "asv02e5958774f7ba228d83d0d689761",
		InputPurchasedItemsDesc:       "Test",
	}
	res, err := client.C2BPayment(context.Background(), a)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Business To Customer
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)


	c := mpesa.B2CPaymentRequest{
		InputAmount:                   "100",
		InputCustomerMSISDN:           "000000000001",
		InputCountry:                  "TZN",
		InputCurrency:                 "TZS",
		InputServiceProviderCode:      "000000",
		InputTransactionReference:     "T12344C",
		InputThirdPartyConversationID: "asv02e5958774f7ba228d83d0d689761",
		InputPaymentItemsDesc:       "Test",
	}

	res, err := client.B2CPayment(context.Background(), c)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)

}

Business To Business
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)

	b := mpesa.B2BPaymentRequest{
		InputAmount:            "100",
		InputCountry:           "TZN",
		InputCurrency:          "TZS",
		InputPrimaryPartyCode: "000000",
		InputReceiverPartyCode: "000001",
		InputThirdPartyConversationID: "8a89835c71f15e99396",
		InputTransactionReference: "T12344C",
		InputPurchasedItemsDesc: "Test",
	}

	res, err := client.B2BPayment(context.Background(), b)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Payment Reversal
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)

	d :=  mpesa.ReversalRequest{
		InputTransactionID: "0000000000001",
		InputCountry: "TZN",
		InputServiceProviderCode: "000000",
		InputReversalAmount: "100",
		InputThirdPartyConversationID: "asv02e5958774f7ba228d83d0d689761",
	}

	res, err := client.Reversal(context.Background(), d)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Query Transaction status
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)

	e := mpesa.QueryTxStatusRequest{
		InputQueryReference:           "000000000000000000001",
		InputCountry:                  "TZN",
		InputServiceProviderCode:      "000000",
		InputThirdPartyConversationID: "asv02e5958774f7ba228d83d0d689761",
	}

	res, err := client.QueryTxStatus(context.Background(), e)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Query Beneficiary Name
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)

	h := mpesa.QueryBenRequest{
		InputCountry:                  "TZN",
		InputServiceProviderCode:      "000000",
		InputThirdPartyConversationID: "AAA6d1f939c1005v2de053v4912jbasdj1j2kk",
		InputCustomerMSISDN:           "000000000001",
		InputKycQueryType:             "Name",
	}

	res, err := client.QueryBeneficiaryName(context.Background(), h)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Query Direct Debit

	i := mpesa.QueryDirectDBReq{
		InputQueryBalanceAmount:       true,
		InputBalanceAmount:            "100",
		InputCountry:                  "TZN",
		InputCustomerMSISDN:           "255744553111",
		InputMsisdnToken:              "cvgwUBZ3lAO9ivwhWAFeng==",
		InputServiceProviderCode:      "112244",
		InputThirdPartyConversationID: "GPO3051656128",
		InputThirdPartyReference:      "Test123",
		InputMandateID:                "15045",
		InputCurrency:                 "TZS",
	}

	res, err := client.QueryDirectDebit(context.Background(), i)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Direct Debit Create
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)


	f := mpesa.DirectDBCreateReq{
		InputCustomerMSISDN:         "000000000001",
		InputCountry:                "TZN",
		InputServiceProviderCode:    "000000",
		InputThirdPartyReference:    "3333",
		InputThirdPartyConversationID: "asv02e5958774f7ba228d83d0d689761",
		InputAgreedTC:               "1",
		InputFirstPaymentDate:       "20160324",
		InputFrequency:              "06",
		InputStartRangeOfDays:       "01",
		InputEndRangeOfDays:         "22",
		InputExpiryDate:             "20161126",
	}

	res, err := client.DirectDebitCreate(context.Background(), f)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Direct Debit Payment
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)



	g := mpesa.DebitDBPaymentReq{
		InputMsisdnToken:              "AbCd123=",
		InputCustomerMSISDN:           "000000000001",
		InputCountry:                  "TZN",
		InputServiceProviderCode:      "000000",
		InputThirdPartyReference:      "5db410b459bd433ca8e5",
		InputThirdPartyConversationID: "AAA6d1f939c1005v2de053v4912jbasdj1j2kk",
		InputAmount:                   "10",
		InputCurrency:                 "TZS",
		InputMandateID:                "15045",
	}

	res, err := client.DirectDebitPayment(context.Background(), g)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}
Cancel Direct Debit
package main

import (
	"context"
	"fmt"
	"net/http"
	"time"

	"github.com/Golang-Tanzania/mpesa"
)

func main() {
	var client mpesa.Client

	client.LoadKeys("./config", "config", "json", mpesa.Sandbox)

	customClient := &http.Client{
		Timeout: 10 * time.Second,
	}
	client.SetHttpClient(customClient)



	j := mpesa.CancelDirectDBReq{
		InputMsisdnToken:              "cvgwUBZ3lAO9ivwhWAFeng==",
		InputCustomerMSISDN:           "000000000001",
		InputCountry:                  "TZN",
		InputServiceProviderCode:      "000000",
		InputThirdPartyReference:      "00000000000000000001",
		InputThirdPartyConversationID: "AAA6d1f939c1005v2de053v4912jbasdj1j2kk",
		InputMandateID:                "15045",
	}

	res, err := client.CancelDirectDebit(context.Background(), j)

	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("res", res)
}

Authors

This package is authored and maintained by Mojo and Hopertz. A list of all other contributors can be found here.

Contributing

Contributions are welcome. Please open an issue or submit a pull request.

License

MIT License

Copyright (c) 2023 Golang Tanzania

Documentation

Index

Constants

View Source
const (
	Address             = "openapi.m-pesa.com"
	Ssl                 = true
	Port                = 443
	Sandbox             = "sandbox"
	ProdEndpoint        = "/openapi/ipg/v2/vodacomTZN/"
	SandboxEndpoint     = "/sandbox/ipg/v2/vodacomTZN/"
	SessionEndPath      = "getSession"
	C2BPaymentPath      = "c2bPayment/singleStage"
	B2BPaymentPath      = "b2bPayment"
	B2CPaymentPath      = "b2cPayment"
	ReversalPath        = "reversal"
	QueryTxStatusPath   = "queryTransactionStatus"
	DirectDebitPath     = "directDebitCreation"
	DebitDBPaymentPath  = "directDebitPayment"
	QueryBeneficialPath = "queryBeneficiaryName"
	QueryDirectDBPath   = "queryDirectDebit"
	CancelDirectDBPath  = "directDebitCancel"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type B2BPaymentRequest

type B2BPaymentRequest struct {
	InputAmount                   string `json:"input_Amount"`
	InputReceiverPartyCode        string `json:"input_ReceiverPartyCode"`
	InputCountry                  string `json:"input_Country"`
	InputCurrency                 string `json:"input_Currency"`
	InputPrimaryPartyCode         string `json:"input_PrimaryPartyCode"`
	InputTransactionReference     string `json:"input_TransactionReference"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputPurchasedItemsDesc       string `json:"input_PurchasedItemsDesc"`
}

type B2BPaymentResponse

type B2BPaymentResponse struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionID            string `json:"output_TransactionID"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type B2CPaymentRequest

type B2CPaymentRequest struct {
	InputAmount                   string `json:"input_Amount"`
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN"`
	InputCountry                  string `json:"input_Country"`
	InputCurrency                 string `json:"input_Currency"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputTransactionReference     string `json:"input_TransactionReference"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputPaymentItemsDesc         string `json:"input_PaymentItemsDesc"`
}

type B2CPaymentResponse

type B2CPaymentResponse struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionID            string `json:"output_TransactionID"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type C2BPaymentRequest

type C2BPaymentRequest struct {
	InputAmount                   string `json:"input_Amount"`
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN"`
	InputCountry                  string `json:"input_Country"`
	InputCurrency                 string `json:"input_Currency"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputTransactionReference     string `json:"input_TransactionReference"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputPurchasedItemsDesc       string `json:"input_PurchasedItemsDesc"`
}

type C2BPaymentResponse

type C2BPaymentResponse struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionID            string `json:"output_TransactionID"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type CancelDirectDBReq

type CancelDirectDBReq struct {
	InputMsisdnToken              string `json:"input_MsisdnToken"`
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN"`
	InputCountry                  string `json:"input_Country"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyReference      string `json:"input_ThirdPartyReference"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputMandateID                string `json:"input_MandateID"`
}

type CancelDirectDBRes

type CancelDirectDBRes struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionReference     string `json:"output_TransactionReference"`
	OutputMsisdnToken              string `json:"output_MsisdnToken"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type Client

type Client struct {
	Client      *http.Client
	Keys        *Keys
	Environment string
}

func (*Client) B2BPayment

func (c *Client) B2BPayment(ctx context.Context, payload B2BPaymentRequest) (*B2BPaymentResponse, error)

func (*Client) B2CPayment

func (c *Client) B2CPayment(ctx context.Context, payload B2CPaymentRequest) (*B2CPaymentResponse, error)

func (*Client) C2BPayment

func (c *Client) C2BPayment(ctx context.Context, payload C2BPaymentRequest) (*C2BPaymentResponse, error)

func (*Client) CancelDirectDebit

func (c *Client) CancelDirectDebit(ctx context.Context, payload CancelDirectDBReq) (*CancelDirectDBRes, error)

func (*Client) DirectDebitCreate

func (c *Client) DirectDebitCreate(ctx context.Context, payload DirectDBCreateReq) (*DirectDBCreateRes, error)

func (*Client) DirectDebitPayment

func (c *Client) DirectDebitPayment(ctx context.Context, payload DebitDBPaymentReq) (*DebitDBPaymentRes, error)

func (*Client) LoadKeys

func (c *Client) LoadKeys(path, filename, filetype, env string)

func (*Client) NewReqWithQueryParams

func (c *Client) NewReqWithQueryParams(ctx context.Context, method, baseUrl string, payload interface{}) (*http.Request, error)

func (*Client) NewRequest

func (c *Client) NewRequest(ctx context.Context, method, url string, payload interface{}) (*http.Request, error)

func (*Client) QueryBeneficiaryName

func (c *Client) QueryBeneficiaryName(ctx context.Context, payload QueryBenRequest) (*QueryBenResponse, error)

func (*Client) QueryDirectDebit

func (c *Client) QueryDirectDebit(ctx context.Context, payload QueryDirectDBReq) (*QueryDirectDBRes, error)

func (*Client) QueryTxStatus

func (c *Client) QueryTxStatus(ctx context.Context, payload QueryTxStatusRequest) (*QueryTxStatusResponse, error)

func (*Client) QueryValuesFromStruct

func (c *Client) QueryValuesFromStruct(payload interface{}) (url.Values, error)

func (*Client) Reversal

func (c *Client) Reversal(ctx context.Context, payload ReversalRequest) (*ReversalResponse, error)

func (*Client) Send

func (c *Client) Send(req *http.Request, v interface{}, e interface{}) error

func (*Client) SendWithAuth

func (c *Client) SendWithAuth(req *http.Request, v interface{}, e interface{}) error

func (*Client) SendWithSessionKey

func (c *Client) SendWithSessionKey(req *http.Request, v interface{}, e interface{}) error

func (*Client) SetHttpClient

func (c *Client) SetHttpClient(client *http.Client)

type DebitDBPaymentReq

type DebitDBPaymentReq struct {
	InputMsisdnToken              string `json:"input_MsisdnToken,omitempty"`
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN,omitempty"`
	InputCountry                  string `json:"input_Country"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyReference      string `json:"input_ThirdPartyReference"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputAmount                   string `json:"input_Amount"`
	InputCurrency                 string `json:"input_Currency"`
	InputMandateID                string `json:"input_MandateID,omitempty"`
}

type DebitDBPaymentRes

type DebitDBPaymentRes struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionID            string `json:"output_TransactionID"`
	OutputMsisdnToken              string `json:"output_MsisdnToken,omitempty"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID,omitempty"`
}

type DirectDBCreateReq

type DirectDBCreateReq struct {
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN"`
	InputCountry                  string `json:"input_Country"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyReference      string `json:"input_ThirdPartyReference"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputAgreedTC                 string `json:"input_AgreedTC"`
	InputFirstPaymentDate         string `json:"input_FirstPaymentDate,omitempty"`
	InputFrequency                string `json:"input_Frequency,omitempty"`
	InputStartRangeOfDays         string `json:"input_StartRangeOfDays,omitempty"`
	InputEndRangeOfDays           string `json:"input_EndRangeOfDays,omitempty"`
	InputExpiryDate               string `json:"input_ExpiryDate,omitempty"`
}

type DirectDBCreateRes

type DirectDBCreateRes struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionReference     string `json:"output_TransactionReference"`
	OutputMsisdnToken              string `json:"output_MsisdnToken,omitempty"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type Keys

type Keys struct {
	PublicKey string
	ApiKey    string
}

type QueryBenRequest

type QueryBenRequest struct {
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN"`
	InputCountry                  string `json:"input_Country"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputKycQueryType             string `json:"input_KycQueryType"`
}

type QueryBenResponse

type QueryBenResponse struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputCustomerFirstName        string `json:"output_CustomerFirstName"`
	OutputCustomerLastName         string `json:"output_CustomerLastName"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type QueryDirectDBReq

type QueryDirectDBReq struct {
	InputQueryBalanceAmount       bool   `json:"input_QueryBalanceAmount"`
	InputBalanceAmount            string `json:"input_BalanceAmount,omitempty"`
	InputCountry                  string `json:"input_Country"`
	InputCustomerMSISDN           string `json:"input_CustomerMSISDN,omitempty"`
	InputMsisdnToken              string `json:"input_MsisdnToken,omitempty"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
	InputThirdPartyReference      string `json:"input_ThirdPartyReference"`
	InputMandateID                string `json:"input_MandateID,omitempty"`
	InputCurrency                 string `json:"input_Currency"`
}

type QueryDirectDBRes

type QueryDirectDBRes struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionReference     string `json:"output_TransactionReference"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
	OutputSufficientBalance        bool   `json:"output_SufficientBalance"`
	OutputMsisdnToken              string `json:"output_MsisdnToken,omitempty"`
	OutputMandateID                string `json:"output_MandateID"`
	OutputMandateStatus            string `json:"output_MandateStatus"`
	OutputAccountStatus            string `json:"output_AccountStatus"`
	OutputFirstPaymentDate         string `json:"output_FirstPaymentDate,omitempty"`
	OutputFrequency                string `json:"output_Frequency,omitempty"`
	OutputPaymentDayFrom           string `json:"output_PaymentDayFrom,omitempty"`
	OutputPaymentDayTo             string `json:"output_PaymentDayTo,omitempty"`
	OutputExpiryDate               string `json:"output_ExpiryDate,omitempty"`
}

type QueryTxStatusRequest

type QueryTxStatusRequest struct {
	InputQueryReference           string `json:"input_QueryReference"`
	InputCountry                  string `json:"input_Country"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
}

type QueryTxStatusResponse

type QueryTxStatusResponse struct {
	OutputResponseCode              string `json:"output_ResponseCode"`
	OutputResponseDesc              string `json:"output_ResponseDesc"`
	OutputResponseTransactionStatus string `json:"output_ResponseTransactionStatus"`
	OutputConversationID            string `json:"output_ConversationID"`
	OutputThirdPartyConversationID  string `json:"output_ThirdPartyConversationID"`
	OutputOriginalTransactionID     string `json:"output_OriginalTransactionID"`
}

type ReversalRequest

type ReversalRequest struct {
	InputReversalAmount           string `json:"input_ReversalAmount,omitempty"`
	InputCountry                  string `json:"input_Country"`
	InputTransactionID            string `json:"input_TransactionID"`
	InputServiceProviderCode      string `json:"input_ServiceProviderCode"`
	InputThirdPartyConversationID string `json:"input_ThirdPartyConversationID"`
}

type ReversalResponse

type ReversalResponse struct {
	OutputResponseCode             string `json:"output_ResponseCode"`
	OutputResponseDesc             string `json:"output_ResponseDesc"`
	OutputTransactionID            string `json:"output_TransactionID"`
	OutputConversationID           string `json:"output_ConversationID"`
	OutputThirdPartyConversationID string `json:"output_ThirdPartyConversationID"`
}

type SessionKeyResponse

type SessionKeyResponse struct {
	OutputResponseCode string `json:"output_ResponseCode"`
	OutputResponseDesc string `json:"output_ResponseDesc"`
	OutputSessionID    string `json:"output_SessionID"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL