payments

package
v0.24.0 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2019 License: AGPL-3.0 Imports: 5 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrAccountNotSetup = errs.Class("payment account is not set up")

ErrAccountNotSetup is an error type which indicates that payment account is not created.

Functions

This section is empty.

Types

type Accounts added in v0.24.0

type Accounts interface {
	// Setup creates a payment account for the user.
	// If account is already set up it will return nil.
	Setup(ctx context.Context, userID uuid.UUID, email string) error

	// Balance returns an integer amount in cents that represents the current balance of payment account.
	Balance(ctx context.Context, userID uuid.UUID) (int64, error)

	// CreditCards exposes all needed functionality to manage account credit cards.
	CreditCards() CreditCards
	// StorjTokens exposes all storj token related functionality.
	StorjTokens() StorjTokens
}

Accounts exposes all needed functionality to manage payment accounts.

type Clearing added in v0.24.0

type Clearing interface {
	// Run runs payments clearing loop.
	Run(ctx context.Context) error
	// Closes closes payments clearing loop.
	Close() error
}

Clearing runs process of reconciling transactions deposits, customer balance, invoices and usages.

type CreditCard added in v0.24.0

type CreditCard struct {
	ID        string `json:"id"`
	ExpMonth  int    `json:"expMonth"`
	ExpYear   int    `json:"expYear"`
	Brand     string `json:"brand"`
	Last4     string `json:"last4"`
	IsDefault bool   `json:"isDefault"`
}

CreditCard holds all public information about credit card.

type CreditCards added in v0.24.0

type CreditCards interface {
	// List returns a list of credit cards for a given payment account.
	List(ctx context.Context, userID uuid.UUID) ([]CreditCard, error)

	// Add is used to save new credit card and attach it to payment account.
	Add(ctx context.Context, userID uuid.UUID, cardToken string) error

	// Remove is used to detach a credit card from payment account.
	Remove(ctx context.Context, userID uuid.UUID, cardID string) error

	// MakeDefault makes a credit card default payment method.
	// this credit card should be attached to account before make it default.
	MakeDefault(ctx context.Context, userID uuid.UUID, cardID string) error
}

CreditCards exposes all needed functionality to manage account credit cards.

type StorjTokens added in v0.24.0

type StorjTokens interface {
	// Deposit creates deposit transaction for specified amount.
	Deposit(ctx context.Context, userID uuid.UUID, amount big.Float) (*Transaction, error)
}

StorjTokens defines all payments STORJ token related functionality.

type Transaction added in v0.24.0

type Transaction struct {
	ID        TransactionID
	AccountID uuid.UUID
	Amount    big.Float
	Received  big.Float
	Address   string
	Status    TransactionStatus
	CreatedAt time.Time
}

Transaction defines deposit transaction which accepts user funds on a specific wallet address.

type TransactionID added in v0.24.0

type TransactionID []byte

TransactionID is a transaction ID type.

type TransactionStatus added in v0.24.0

type TransactionStatus string

TransactionStatus defines allowed statuses for deposit transactions.

const (
	// TransactionStatusPaid is a transaction which successfully received required funds.
	TransactionStatusPaid TransactionStatus = "paid"
	// TransactionStatusPending is a transaction which accepts funds.
	TransactionStatusPending TransactionStatus = "pending"
	// TransactionStatusCancelled is a transaction that is cancelled and no longer accepting new funds.
	TransactionStatusCancelled TransactionStatus = "cancelled"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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