Documentation ¶
Index ¶
- Constants
- type Callbacks
- type Client
- func (c *Client) AddCard(callbacks Callbacks) (*PayZeResponse, error)
- func (c *Client) CancelSubscription(subscriptionID string) (*PayZeSubscriptionResponse, error)
- func (c *Client) CommitTransaction()
- func (c *Client) CreateRequestPayload(action string, data interface{}) PayZeRequest
- func (c *Client) CreateSubscription(subData SubscriptionRequestData) (*PayZeResponse, error)
- func (c *Client) GetMerchantBalance()
- func (c *Client) GetTransactionInfo(transactionID string) (*PayZeTransactionInfoResponse, error)
- func (c *Client) JustPay(paymentData PayRequestData) (*PayZeResponse, error)
- func (c *Client) JustPayAndSplit(amount float64, commitNow bool, currency string, split []SplitParticipant) error
- func (c *Client) NewRequest(method, url string, payload interface{}) (*http.Request, error)
- func (c *Client) PayWithCard(paymentData PayWithCardRequestData) (*PayZeResponse, error)
- func (c *Client) PayWithCardAndSplit()
- func (c *Client) RefundTransaction()
- func (c *Client) Send(req *http.Request, v interface{}) error
- func (c *Client) SetHTTPClient(client *http.Client)
- func (c *Client) SetLog(log io.Writer)
- func (c *Client) SubscriptionStatus(subscriptionID string) (*PayZeSubscriptionResponse, error)
- type ErrorResponse
- type LogEntry
- type PayRequestData
- type PayWithCardRequestData
- type PayZeRequest
- type PayZeResponse
- type PayZeSubscriptionResponse
- type PayZeTransactionInfoResponse
- type PaymentInformation
- type ResponseField
- type SplitInfo
- type SplitParticipant
- type SubscriptionRequestData
- type SubscriptionResponseField
- type TransactionResponseField
Constants ¶
const ( PayZeApiV1URL = "https://payze.io/api/v1" DefaultHTTPMethod = "POST" )
Connection based constants
const ( JustPay = "justPay" JustPayAndSplit = JustPay AddCard = "addCard" PayWithCard = "payWithCard" PayWithCardAndSplit = PayWithCard TransactionInfo = "getTransactionInfo" Refund = "refund" Balance = "getBalance" CommitTransaction = "commit" CreateSubscription = "subscription" SubscriptionStatus = "subscriptionStatus" CancelSubscription = "cancelSubscription" )
Action Method names
const ( TransactionBlocked = "Blocked" TransactionCardAdded = "CardAdded" TransactionCardAddedForSubscription = "CardAddedForSubscription" TransactionCommitFailed = "CommitFailed" TransactionCommitted = "Committed" TransactionCreated = "Created" TransactionNothing = "Nothing" TransactionError = "Error" TransactionPlatformReceived = "PlatformReceived" TransactionRefunded = "Refunded" TransactionRefundedPartially = "RefundedPartially" TransactionRejected = "Rejected" TransactionTimeout = "Timeout" )
Transaction Statuses
const ( SubscriptionCreated = "Created" SubscriptionStarted = "Started" SubscriptionActive = "Active" SubscriptionCancelled = "Cancelled" )
const ( SubscriptionIntervalTypeMonth = "Month" SubscriptionIntervalTypeDay = "Day" SubscriptionIntervalTypeWeek = "Week" SubscriptionIntervalTypeYear = "Year" )
const ( ChannelEmail = "EMAIL" ChannelSMS = "SMS" )
const ( GEL = "GEL" USD = "USD" )
Currencies
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { sync.Mutex Client *http.Client ClientID string Secret string APIBase string Log io.Writer // If user sets log file logs will go there //Default callbacks are used in case callbacks arent passed for each request data DefaultCallbacks Callbacks }
* Client represents a PayZe REST API Client
func (*Client) CancelSubscription ¶
func (c *Client) CancelSubscription(subscriptionID string) (*PayZeSubscriptionResponse, error)
func (*Client) CommitTransaction ¶
func (c *Client) CommitTransaction()
func (*Client) CreateRequestPayload ¶
func (c *Client) CreateRequestPayload(action string, data interface{}) PayZeRequest
*CreateRequestPayload Create proper payload for PayZe request
func (*Client) CreateSubscription ¶
func (c *Client) CreateSubscription(subData SubscriptionRequestData) (*PayZeResponse, error)
func (*Client) GetMerchantBalance ¶
func (c *Client) GetMerchantBalance()
func (*Client) GetTransactionInfo ¶
func (c *Client) GetTransactionInfo(transactionID string) (*PayZeTransactionInfoResponse, error)
func (*Client) JustPay ¶
func (c *Client) JustPay(paymentData PayRequestData) (*PayZeResponse, error)
func (*Client) JustPayAndSplit ¶
func (*Client) NewRequest ¶
* NewRequest constructs a new http.Request, Marshal payload to json bytes
func (*Client) PayWithCard ¶
func (c *Client) PayWithCard(paymentData PayWithCardRequestData) (*PayZeResponse, error)
func (*Client) PayWithCardAndSplit ¶
func (c *Client) PayWithCardAndSplit()
func (*Client) RefundTransaction ¶
func (c *Client) RefundTransaction()
func (*Client) Send ¶
* Send makes a request to the API, the response body will be unmarshalled into v, which should be correct struct for the given request body passed by reference or it can be an io.Writer, in which case the response bytes will be written to it
func (*Client) SetHTTPClient ¶
* SetHTTPClient sets *http.Client as current client client
func (*Client) SubscriptionStatus ¶
func (c *Client) SubscriptionStatus(subscriptionID string) (*PayZeSubscriptionResponse, error)
type ErrorResponse ¶
type ErrorResponse struct { Response *http.Response `json:"-"` Data []byte `json:"-"` Timestamp string `json:"timestamp"` Status uint `json:"status"` ErrorHint string `json:"error"` Message string `json:"message"` Path string `json:"path"` }
func (ErrorResponse) Error ¶
func (e ErrorResponse) Error() string
type LogEntry ¶
type LogEntry struct { Date string `json:"date"` //TODO for future parse dates StatusBefore string `json:"statusBefore"` Status string `json:"status"` ChangeType string `json:"changeType"` }
*LogEntry is an entry of logs array returned during action: GetTransactionInfo
type PayRequestData ¶
type PayRequestData struct { Amount float64 `json:"amount,string"` Currency string `json:"currency"` Info PaymentInformation `json:"info"` Callbacks }
*PayRequestData Data part of PayZe general requests
type PayWithCardRequestData ¶
type PayWithCardRequestData struct { Amount float64 `json:"amount,string"` Currency string `json:"currency"` CardToken string `json:"card_token"` }
*PayWithCardRequestData Data part of PayZe general requests for card payment
type PayZeRequest ¶
type PayZeRequest struct { Method string `json:"method"` APIKey string `json:"apiKey"` APISecret string `json:"apiSecret"` Data interface{} `json:"data"` }
*PayZeRequest PayZe general request structure
type PayZeResponse ¶
type PayZeResponse struct { ID int64 `json:"id"` Status string `json:"status"` Action string `json:"action"` CreatedAt string `json:"createdDate"` Response ResponseField `json:"response"` }
*PayZeResponse PayZe general response structure
type PayZeSubscriptionResponse ¶
type PayZeSubscriptionResponse struct { ID int64 `json:"id"` Status string `json:"status"` Action string `json:"action"` CreatedAt string `json:"createdDate"` Response SubscriptionResponseField `json:"response"` }
*PayZeSubscriptionResponse PayZe subscription status response structure
type PayZeTransactionInfoResponse ¶
type PayZeTransactionInfoResponse struct { ID int64 `json:"id"` Status string `json:"status"` Action string `json:"action"` CreatedAt string `json:"createdDate"` Response TransactionResponseField `json:"response"` }
*PayZeTransactionInfoResponse PayZe response structure of transaction info
type PaymentInformation ¶
type ResponseField ¶
type ResponseField struct { SubscriptionID string `json:"subscriptionId,omitempty"` CardID string `json:"cardId,omitempty"` TransactionUrl string `json:"transactionUrl,omitempty"` TransactionID string `json:"transactionId,omitempty"` }
*ResponseField response part of PayZe general requests
type SplitInfo ¶
type SplitInfo struct { IBan string `json:"iban"` Amount float64 `json:"amount,string"` Status string `json:"status,omitempty"` }
*SplitInfo is an entry of splits array returned during action: GetTransactionInfo
type SplitParticipant ¶
type SubscriptionRequestData ¶
type SubscriptionRequestData struct { IntervalType string `json:"intervalType"` Interval uint `json:"interval"` Name string `json:"name"` Channel string `json:"channel"` Description string `json:"description"` SendTo string `json:"sendTo"` Amount float64 `json:"amount"` Currency string `json:"currency"` Info PaymentInformation `json:"info"` Callbacks }
type SubscriptionResponseField ¶
type SubscriptionResponseField struct { ID string `json:"id,omitempty"` CreatedAt string `json:"created_at,omitempty"` IsActive bool `json:"isActive,omitempty"` CardToken string `json:"cardToken,omitempty"` Status string `json:"status,omitempty"` Error string `json:"error,omitempty"` }
*SubscriptionResponseField response part of PayZe general requests
type TransactionResponseField ¶
type TransactionResponseField struct { CardMask string `json:"cardMask,omitempty"` Amount float64 `json:"amount,omitempty"` Splits []SplitInfo `json:"splits,omitempty"` Log []LogEntry `json:"log,omitempty"` Err string `json:"error,omitempty"` GetCanBeCommitted bool `json:"getCanBeCommitted"` ResultCode string `json:"resultCode"` TransactionID string `json:"transactionId"` CommitDate string `json:"commit_date"` FinalAmount float64 `json:"finalAmount"` Currency string `json:"currency"` Commission float64 `json:"commission"` Refundable bool `json:"refundable"` Refunded float64 `json:"refunded"` HasSplit bool `json:"hasSplit"` Status string `json:"status"` CreatedAt string `json:"createDate"` }
*ResponseField response part of PayZe general requests