models

package
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Feb 29, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Models provides predefined structures to facilitate interaction with PixelPay entities.

We strongly recommend that you use the special methods to create objects from the structure of each model. These methods provide a correctly initialized structure.

Note that you can use chaining with these methods.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Billing

type Billing struct {
	// Customer billing address
	Address string `json:"address,omitempty"`

	// Customer billing country alpha-2 code (ISO 3166-1)
	Country string `json:"country,omitempty"`

	// Customer billing state alpha code (ISO 3166-2)
	State string `json:"state,omitempty"`

	// Customer billing city
	City string `json:"city,omitempty"`

	// Customer billing postal code
	Zip string `json:"zip,omitempty"`

	// Customer billing phone
	Phone string `json:"phone,omitempty"`
}

Billing represents the billing information for a request.

func NewBilling

func NewBilling() *Billing

NewBilling initializes and returns a new instance of the Billing model.

type Card

type Card struct {
	// Card number or PAN
	Number string `json:"number,omitempty"`

	// Card security code
	Cvv2 string `json:"cvv2,omitempty"`

	// Card expire month date (MM)
	ExpireMonth int `json:"expire_month,omitempty"`

	// Card expire year date (YYYY)
	ExpireYear int `json:"expire_year,omitempty"`

	// Cardholder name
	Cardholder string `json:"cardholder,omitempty"`
}

Card represents the card information for a request.

func NewCard

func NewCard() *Card

NewCard initializes and returns a new instance of the Card model.

func (Card) GetExpireFormat

func (model Card) GetExpireFormat() string

GetExpireFormat returns the expiration date of a credit card in the YYMM ISO format.

type Item

type Item struct {
	// Item identifier code or UPC/EAN
	Code string `json:"code,omitempty"`

	// Item product title
	Title string `json:"title,omitempty"`

	// Item per unit price
	Price float64 `json:"price,omitempty"`

	// Item quantity
	Qty int `json:"qty,omitempty"`

	// Item tax amount per unit
	Tax float64 `json:"tax,omitempty"`

	// Item total value
	Total float64 `json:"total,omitempty"`
}

Item represents the item information for a request.

func NewItem

func NewItem() *Item

NewItem initializes and returns a new instance of the Item model.

func (*Item) Totalize

func (model *Item) Totalize() *Item

Totalize calculates the total price of the item by multiplying its price by its quantity and updates the Total field of the Item.

This function updates the Item model.

type Order

type Order struct {
	// Order ID
	Id string `json:"id,omitempty"`

	// Order currency code alpha-3
	Currency string `json:"currency,omitempty"`

	// Order total amount
	Amount float64 `json:"amount,omitempty"`

	// Order total tax amount
	TaxAmount float64 `json:"tax_amount,omitempty"`

	// Order total shipping amount
	ShippingAmount float64 `json:"shipping_amount,omitempty"`

	// Order summary of items or products
	Content []Item `json:"content,omitempty"`

	// Order extra properties
	Extras map[string]string `json:"extras,omitempty"`

	// Order note or aditional instructions
	Note string `json:"note,omitempty"`

	// Order calback webhook URL
	CallbackUrl string `json:"callback_url,omitempty"`

	// Order customer name
	CustomerName string `json:"customer_name,omitempty"`

	// Order customer email
	CustomerEmail string `json:"customer_email,omitempty"`
}

Order represents the order information for a request.

func NewOrder

func NewOrder() *Order

NewOrder initializes and returns a new instance of the Order model.

func (*Order) AddExtra

func (model *Order) AddExtra(key string, value interface{}) *Order

AddExtra adds extra properties related to the order.

The `key` parameter represents the id of the extra. The `value` parameter represents the content of the extra.

This function updates the Extra property of the Order model.

func (*Order) AddItem

func (model *Order) AddItem(item Item) *Order

AddItem appends an item to the content list of the order.

The `item` parameter represents the item to be added to the order.

This function updates the order amount by calling Totalize().

func (*Order) Totalize

func (model *Order) Totalize() *Order

Totalize calculates the tax and amount of the order by calling the Totalize() function for each Item. To calculate the amount, it adds up the total of all items. To calculate the tax, it multiplies the tax of each item by its quantity. This function updates the TaxAmount, the Amount and every Item of the Order model.

type Settings

type Settings struct {
	// Merchant API auth key
	AuthKey string `json:"auth_key,omitempty"`

	// Merchant API auth hash (MD5 of secret key)
	AuthHash string `json:"auth_hash,omitempty"`

	// Merchant API platform auth user (SHA-512 of user email)
	AuthUser string `json:"auth_user,omitempty"`

	// Merchant API endpoint URL
	Endpoint string `json:"endpoint,omitempty"`

	// Merchant API environment
	Environment string `json:"environment,omitempty"`

	// Settings response messages language
	Lang string `json:"lang,omitempty"`

	// SDK identifier
	Sdk string `json:"sdk,omitempty"`
}

Settings represents the settings information for a request.

func NewSettings

func NewSettings() *Settings

NewSettings initializes and returns a new instance of the Settings model.

func (*Settings) SetupCredentials

func (model *Settings) SetupCredentials(key, hash string) *Settings

Sets up the API credentials.

The `key` parameter represents the merchant'model key ID. The `hash` parameter represents the merchant'model secret key.

This function updates the Settings model.

func (*Settings) SetupEndpoint

func (model *Settings) SetupEndpoint(endpoint string) *Settings

Sets up the API endpoint URL.

The `endpoint` parameter represents the URL to connect to the API.

This function updates the Settings model.

func (*Settings) SetupEnvironment

func (model *Settings) SetupEnvironment(env string) *Settings

Sets up the API environment.

The `env` parameter represents the enenvironment (e.g. "live", "sandbox").

This function updates the Settings model.

func (*Settings) SetupLanguage

func (model *Settings) SetupLanguage(lang string) *Settings

Sets up the response messages language.

The `lang` parameter represents the language to be used.

This function updates the Settings model.

func (*Settings) SetupPlatformUser

func (model *Settings) SetupPlatformUser(hash string) *Settings

Sets up the API platform user.

The `hash` parameter represents the merchant user's email.

This function updates the Settings model.

func (*Settings) SetupSandbox

func (model *Settings) SetupSandbox() *Settings

Sets up defaults to Sandbox credentials.

This function updates the Settings model.

Jump to

Keyboard shortcuts

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