Help us shape the future of Go! Take the 2026 Go Developer Survey

paymentmanager

package module
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2026 License: MIT Imports: 9 Imported by: 0

README

Payment Manager

Módulo de dominio para registrar pagos de mesón (efectivo, débito, crédito, transferencia) y pagos online (Webpay Plus, vía una pasarela inyectada). Maneja devoluciones y la conciliación con la pasarela. Diseño: docs/ARCHITECTURE.md; flujos y ramas probadas: docs/diagrams/flows.md.

Inicio rápido

En la raíz del repo, abre la demo (pantalla Pagos y un paso de cobro de mesón, con la pasarela en memoria sandbox):

webtyp

Operaciones

Op Descripción Require
get_charge Consulta el valor a pagar y su moneda payment_online, Read
create_counter_payment Registra un pago de mesón payment, Create
start_online_payment Inicia flujo webpay payment_online, Create
get_payment_status Estado actual de un pago payment_online, Read
get_payment Obtiene un pago (limpio de token) payment, Read
list_payments_by_reference Pagos de una reserva/referencia payment, Read
list_payments Lista pagos payment, Read
refund_payment Realiza una devolución parcial o total refund, Create
list_refunds Devoluciones de un pago refund, Read
reconcile_online_payments Cierra pagos online perdidos payment, Update

Estados

Estado Descripción
PENDING Pago online iniciado, esperando respuesta de pasarela
PAID Pago completado y acreditado
FAILED Pago rechazado por la pasarela
CANCELLED El cliente abortó o canceló el flujo webpay
EXPIRED El pago webpay no fue completado a tiempo
PARTIALLY_REFUNDED Se devolvió parte del monto, pero queda saldo
REFUNDED Devolución total del monto

Cableado en una app

gw, _ := transbank.Open(env.Get(transbank.EnvWebpay)) // github.com/veltylabs/transbank
pm, err := paymentmanager.New(db, paymentmanager.Deps{
	Publisher: broker,
	Gateway:   gw,
	ReturnURL: publicURL + transbank.ReturnPath,
	Charges:   []paymentmanager.ChargeSource{{Module: "appointment_booking", Reader: bookingModule}},
})
  • El esquema lo crea migrate.Migrate(conn, compiler) desde el cmd/migrate de la app.
  • La app corre reconcile_online_payments cada minuto.
  • ui.PaymentStep es el paso de cobro que incrustan otras pantallas; ui.Browser es la pantalla Pagos; ui.TakeReturn lee la vuelta de la pasarela.

Archivos clave

Archivo Qué contiene
model.go / model_orm.go Modelos (model_orm.go lo genera ormc; no editar)
fsm.go Máquina de estados del pago
ports.go Puertos Gateway y ChargeReader
module.go / repository.go Servicio y consultas
ops.go Operaciones, recursos RBAC y códigos HTTP
view.go Presenter de la lista de pagos
amount.go FormatAmount
sandbox/ Pasarela en memoria para pruebas y demo
migrate/ Esquema (payment, refund)
ui/ Paso de pago, pantalla Pagos, vuelta de la pasarela
seed/, web/ Datos y demo

Documentation

Index

Constants

View Source
const (
	ErrNotFound            = domainError("payment not found")
	ErrRefundNotFound      = domainError("refund not found")
	ErrMissingArgs         = domainError("missing required arguments")
	ErrUnknownReference    = domainError("no charge reader for this reference module")
	ErrNotPayable          = domainError("the reference has nothing to pay")
	ErrUnsupportedCurrency = domainError("unsupported currency")
	ErrInvalidMethod       = domainError("invalid payment method for this channel")
	ErrInvalidTransition   = domainError("invalid payment status transition")
	ErrRefundExceeds       = domainError("refund amount exceeds what is left to refund")
	ErrIdTaken             = domainError("id already used by another operation")
	ErrAlreadyPaid         = domainError("the reference is already paid")
	ErrNotPaid             = domainError("payment is not paid")
	ErrConflict            = domainError("payment changed concurrently")
	ErrGatewayUnavailable  = domainError("online payments are not configured")
	ErrGatewayFailed       = domainError("payment gateway call failed")
	ErrAmountMismatch      = domainError("gateway amount differs from the payment amount")
)
View Source
const (
	EventPay           = "PAY"
	EventFail          = "FAIL"
	EventCancel        = "CANCEL"
	EventExpire        = "EXPIRE"
	EventRefundPartial = "REFUND_PARTIAL"
	EventRefundTotal   = "REFUND_TOTAL"
)

Eventos de la máquina de estados del pago.

View Source
const (
	ChannelCounter = "counter"
	ChannelOnline  = "online"
)
View Source
const (
	MethodCash     = "cash"
	MethodDebit    = "debit"
	MethodCredit   = "credit"
	MethodTransfer = "transfer"
	MethodWebpay   = "webpay"
)
View Source
const (
	CurrencyCLP = "CLP"
	CurrencyUSD = "USD"
)
View Source
const (
	StatusPending           = "PENDING"
	StatusPaid              = "PAID"
	StatusFailed            = "FAILED"
	StatusCancelled         = "CANCELLED" // el cliente abandonó el pago online
	StatusExpired           = "EXPIRED"   // venció sin respuesta de la pasarela
	StatusPartiallyRefunded = "PARTIALLY_REFUNDED"
	StatusRefunded          = "REFUNDED"
)
View Source
const (
	RefundKindReversed  = "REVERSED"  // pasarela: reversa total
	RefundKindNullified = "NULLIFIED" // pasarela: anulación total o parcial
	RefundKindManual    = "MANUAL"    // mesón: devolución registrada por el cajero
)
View Source
const (
	OnlinePendingTimeout = 600       // un pago online PENDING más viejo que esto se concilia
	GatewayStatusWindow  = 7 * 86400 // la pasarela guarda el estado 7 días
)

Tiempos (segundos).

View Source
const (
	EventPaymentPaid     = "payment.paid"
	EventPaymentFailed   = "payment.failed"
	EventPaymentRefunded = "payment.refunded"
)

Eventos publicados después de cada mutación exitosa. Payload: *Payment, o *Refund en EventPaymentRefunded.

View Source
const (
	OpGetCharge               = "get_charge"
	OpCreateCounterPayment    = "create_counter_payment"
	OpStartOnlinePayment      = "start_online_payment"
	OpGetPaymentStatus        = "get_payment_status"
	OpGetPayment              = "get_payment"
	OpListPaymentsByReference = "list_payments_by_reference"
	OpListPayments            = "list_payments"
	OpRefundPayment           = "refund_payment"
	OpListRefunds             = "list_refunds"
	OpReconcileOnlinePayments = "reconcile_online_payments"
)

Operaciones del módulo; en el cable van como "payment_manager.<op>".

View Source
const (
	ResourcePayment       = "payment"
	ResourcePaymentOnline = "payment_online"
	ResourceRefund        = "refund"
)

Recursos RBAC. La app concede ResourcePaymentOnline a la identidad anónima para la reserva online; el resto, solo al personal.

View Source
const (
	QueryPayment = "payment"
	QueryStatus  = "status"
)

QueryPayment y QueryStatus son los parámetros de la query con que la ruta de retorno de la pasarela devuelve el navegador a la app: /?payment=<id>&status=<estado>#<pantalla>.

View Source
const (
	OutcomePending    = "pending"
	OutcomeAuthorized = "authorized"
	OutcomeRejected   = "rejected"
)
View Source
const ListWindowSeconds = 30 * 86400

ListWindowSeconds es cuánto hacia atrás muestra la lista de pagos: 30 días.

View Source
const ModelName = "payment_manager"

Variables

View Source
var ChargeResultModel = model.Definition{
	Name: "charge_result",
	Fields: model.Fields{
		{Name: "amount", Type: model.Int()},
		{Name: "currency", Type: model.Text()},
		{Name: "payable", Type: model.Bool()},
	},
}
View Source
var CreateCounterPaymentArgsModel = model.Definition{
	Name: "create_counter_payment_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "id", Type: model.Text(), NotNull: true},
		{Name: "reference_module", Type: model.Text(), NotNull: true},
		{Name: "reference_id", Type: model.Text(), NotNull: true},
		{Name: "method", Type: input.Radio(), NotNull: true},
		{Name: "receipt_number", Type: model.Text()},
	},
}
View Source
var GetChargeArgsModel = model.Definition{
	Name: "get_charge_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "reference_module", Type: model.Text(), NotNull: true},
		{Name: "reference_id", Type: model.Text(), NotNull: true},
	},
}
View Source
var GetPaymentArgsModel = model.Definition{
	Name: "get_payment_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "id", Type: model.Text(), NotNull: true},
	},
}
View Source
var ListPaymentsArgsModel = model.Definition{
	Name: "list_payments_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "from", Type: model.Int(), NotNull: true},
		{Name: "to", Type: model.Int(), NotNull: true},
	},
}
View Source
var ListPaymentsByReferenceArgsModel = model.Definition{
	Name: "list_payments_by_reference_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "reference_module", Type: model.Text(), NotNull: true},
		{Name: "reference_id", Type: model.Text(), NotNull: true},
	},
}
View Source
var ListRefundsArgsModel = model.Definition{
	Name: "list_refunds_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "payment_id", Type: model.Text(), NotNull: true},
	},
}
View Source
var PaymentModel = model.Definition{
	Name: "payment",
	Fields: model.Fields{
		{Name: "id", Type: model.Text(), DB: &model.FieldDB{PK: true}, NotNull: true, Permitted: model.Permitted{Letters: true, Numbers: true, Extra: []rune{'.', '-', '_'}, Minimum: 1, Maximum: 26}},
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "reference_module", Type: model.Text(), NotNull: true, Permitted: model.Permitted{Maximum: 60}},
		{Name: "reference_id", Type: model.Text(), NotNull: true, Permitted: model.Permitted{Maximum: 64}},
		{Name: "channel", Type: model.Text(), NotNull: true},
		{Name: "method", Type: model.Text(), NotNull: true},
		{Name: "amount", Type: model.Int(), NotNull: true},
		{Name: "currency", Type: model.Text(), NotNull: true, Permitted: model.Permitted{Letters: true, Minimum: 3, Maximum: 3}},
		{Name: "status", Type: model.Text(), NotNull: true},
		{Name: "refunded_amount", Type: model.Int()},
		{Name: "provider_token", Type: model.Text(), OmitEmpty: true},

		{Name: "authorization_code", Type: model.Text(), OmitEmpty: true, Permitted: model.Permitted{Letters: true, Numbers: true, Maximum: 6}},
		{Name: "payment_type_code", Type: model.Text(), OmitEmpty: true, Permitted: model.Permitted{Letters: true, Maximum: 2}},
		{Name: "installments", Type: model.Int(), OmitEmpty: true},
		{Name: "card_last4", Type: model.Text(), OmitEmpty: true, Permitted: model.Permitted{Numbers: true, Maximum: 4}},
		{Name: "receipt_number", Type: model.Text(), OmitEmpty: true, Permitted: model.Permitted{Maximum: 40}},
		{Name: "return_to", Type: model.Text(), OmitEmpty: true, Permitted: model.Permitted{Letters: true, Numbers: true, Extra: []rune{'_', '-'}, Maximum: 60}},
		{Name: "created_by", Type: model.Text(), OmitEmpty: true},
		{Name: "created_at", Type: model.Int()},
		{Name: "paid_at", Type: model.Int(), OmitEmpty: true},
		{Name: "updated_at", Type: model.Int()},
		{Name: "revision", Type: model.Int()},
	},
}
View Source
var PaymentStatusResultModel = model.Definition{
	Name: "payment_status_result",
	Fields: model.Fields{
		{Name: "id", Type: model.Text()},
		{Name: "status", Type: model.Text()},
	},
}
View Source
var Payment_ = struct {
	Id                string
	TenantId          string
	ReferenceModule   string
	ReferenceId       string
	Channel           string
	Method            string
	Amount            string
	Currency          string
	Status            string
	RefundedAmount    string
	ProviderToken     string
	AuthorizationCode string
	PaymentTypeCode   string
	Installments      string
	CardLast4         string
	ReceiptNumber     string
	ReturnTo          string
	CreatedBy         string
	CreatedAt         string
	PaidAt            string
	UpdatedAt         string
	Revision          string
}{
	Id:                "id",
	TenantId:          "tenant_id",
	ReferenceModule:   "reference_module",
	ReferenceId:       "reference_id",
	Channel:           "channel",
	Method:            "method",
	Amount:            "amount",
	Currency:          "currency",
	Status:            "status",
	RefundedAmount:    "refunded_amount",
	ProviderToken:     "provider_token",
	AuthorizationCode: "authorization_code",
	PaymentTypeCode:   "payment_type_code",
	Installments:      "installments",
	CardLast4:         "card_last4",
	ReceiptNumber:     "receipt_number",
	ReturnTo:          "return_to",
	CreatedBy:         "created_by",
	CreatedAt:         "created_at",
	PaidAt:            "paid_at",
	UpdatedAt:         "updated_at",
	Revision:          "revision",
}
View Source
var ReconcileOnlinePaymentsArgsModel = model.Definition{
	Name: "reconcile_online_payments_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
	},
}
View Source
var ReconcileResultModel = model.Definition{
	Name: "reconcile_result",
	Fields: model.Fields{
		{Name: "closed", Type: model.Int()},
	},
}
View Source
var RefundModel = model.Definition{
	Name: "refund",
	Fields: model.Fields{
		{Name: "id", Type: model.Text(), DB: &model.FieldDB{PK: true}, NotNull: true, Permitted: model.Permitted{Letters: true, Numbers: true, Extra: []rune{'.', '-', '_'}, Minimum: 1, Maximum: 26}},
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "payment_id", Type: model.Text(), Ref: &PaymentModel, DB: &model.FieldDB{RefColumn: "id"}, NotNull: true},
		{Name: "amount", Type: model.Int(), NotNull: true},
		{Name: "kind", Type: model.Text(), NotNull: true},
		{Name: "method", Type: model.Text(), OmitEmpty: true},
		{Name: "reason", Type: input.Textarea(), NotNull: true, Permitted: model.Permitted{Maximum: 255}},
		{Name: "authorization_code", Type: model.Text(), OmitEmpty: true},
		{Name: "created_by", Type: model.Text(), OmitEmpty: true},
		{Name: "created_at", Type: model.Int()},
	},
}
View Source
var RefundPaymentArgsModel = model.Definition{
	Name: "refund_payment_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "id", Type: model.Text(), NotNull: true},
		{Name: "payment_id", Type: model.Text(), NotNull: true},
		{Name: "amount", Type: model.Int(), NotNull: true},
		{Name: "reason", Type: input.Textarea(), NotNull: true, Permitted: model.Permitted{Maximum: 255}},
		{Name: "method", Type: model.Text()},
	},
}
View Source
var Refund_ = struct {
	Id                string
	TenantId          string
	PaymentId         string
	Amount            string
	Kind              string
	Method            string
	Reason            string
	AuthorizationCode string
	CreatedBy         string
	CreatedAt         string
}{
	Id:                "id",
	TenantId:          "tenant_id",
	PaymentId:         "payment_id",
	Amount:            "amount",
	Kind:              "kind",
	Method:            "method",
	Reason:            "reason",
	AuthorizationCode: "authorization_code",
	CreatedBy:         "created_by",
	CreatedAt:         "created_at",
}
View Source
var StartOnlinePaymentArgsModel = model.Definition{
	Name: "start_online_payment_args",
	Fields: model.Fields{
		{Name: "tenant_id", Type: model.Text(), NotNull: true},
		{Name: "id", Type: model.Text(), NotNull: true},
		{Name: "reference_module", Type: model.Text(), NotNull: true},
		{Name: "reference_id", Type: model.Text(), NotNull: true},

		{Name: "return_to", Type: model.Text(), Permitted: model.Permitted{Letters: true, Numbers: true, Extra: []rune{'_', '-'}, Maximum: 60}},
	},
}
View Source
var StartOnlinePaymentResultModel = model.Definition{
	Name: "start_online_payment_result",
	Fields: model.Fields{
		{Name: "payment_id", Type: model.Text()},
		{Name: "redirect_url", Type: model.Text()},
		{Name: "token", Type: model.Text()},
	},
}

Functions

func FormatAmount added in v0.1.0

func FormatAmount(amount int64, currency string) string

func NewView added in v0.1.0

func NewView(caller router.Caller, tenantId string) view.Presenter

NewView construye el Presenter de solo lectura de los pagos del tenant de los últimos ListWindowSeconds.

func StatusFor added in v0.1.0

func StatusFor(err error) int

StatusFor es el código HTTP de un error del módulo (tabla del plan, §5).

func Transition added in v0.1.0

func Transition(current, event string) (string, error)

Transition devuelve el estado al que lleva event desde current, o ErrInvalidTransition.

Types

type ChargeReader added in v0.1.0

type ChargeReader interface {
	Charge(tenantId, referenceId string) (amount int64, currency string, payable bool, err error)
}

type ChargeResult added in v0.1.0

type ChargeResult struct {
	Amount   int64
	Currency string
	Payable  bool
}

func (*ChargeResult) DecodeFields added in v0.1.0

func (m *ChargeResult) DecodeFields(r model.FieldReader)

func (*ChargeResult) EncodeFields added in v0.1.0

func (m *ChargeResult) EncodeFields(w model.FieldWriter)

func (*ChargeResult) IsNil added in v0.1.0

func (m *ChargeResult) IsNil() bool

func (*ChargeResult) ModelName added in v0.1.0

func (m *ChargeResult) ModelName() string

func (*ChargeResult) Pointers added in v0.1.0

func (m *ChargeResult) Pointers() []any

func (*ChargeResult) Schema added in v0.1.0

func (m *ChargeResult) Schema() []model.Field

func (*ChargeResult) Validate added in v0.1.0

func (m *ChargeResult) Validate(action byte) error

type ChargeResultList added in v0.1.0

type ChargeResultList []*ChargeResult

func (*ChargeResultList) Append added in v0.1.0

func (s *ChargeResultList) Append() model.Fielder

func (*ChargeResultList) At added in v0.1.0

func (s *ChargeResultList) At(i int) model.Fielder

func (*ChargeResultList) DecodeFields added in v0.1.0

func (s *ChargeResultList) DecodeFields(_ model.FieldReader)

func (*ChargeResultList) EncodeFields added in v0.1.0

func (s *ChargeResultList) EncodeFields(_ model.FieldWriter)

func (*ChargeResultList) IsNil added in v0.1.0

func (s *ChargeResultList) IsNil() bool

func (*ChargeResultList) Len added in v0.1.0

func (s *ChargeResultList) Len() int

type ChargeSource added in v0.1.0

type ChargeSource struct {
	Module string
	Reader ChargeReader
}

type CreateCounterPaymentArgs added in v0.1.0

type CreateCounterPaymentArgs struct {
	TenantId        string
	Id              string
	ReferenceModule string
	ReferenceId     string
	Method          string
	ReceiptNumber   string
}

func (*CreateCounterPaymentArgs) DecodeFields added in v0.1.0

func (m *CreateCounterPaymentArgs) DecodeFields(r model.FieldReader)

func (*CreateCounterPaymentArgs) EncodeFields added in v0.1.0

func (m *CreateCounterPaymentArgs) EncodeFields(w model.FieldWriter)

func (*CreateCounterPaymentArgs) IsNil added in v0.1.0

func (m *CreateCounterPaymentArgs) IsNil() bool

func (*CreateCounterPaymentArgs) ModelName added in v0.1.0

func (m *CreateCounterPaymentArgs) ModelName() string

func (*CreateCounterPaymentArgs) Pointers added in v0.1.0

func (m *CreateCounterPaymentArgs) Pointers() []any

func (*CreateCounterPaymentArgs) Schema added in v0.1.0

func (m *CreateCounterPaymentArgs) Schema() []model.Field

func (*CreateCounterPaymentArgs) Validate added in v0.1.0

func (m *CreateCounterPaymentArgs) Validate(action byte) error

type CreateCounterPaymentArgsList added in v0.1.0

type CreateCounterPaymentArgsList []*CreateCounterPaymentArgs

func (*CreateCounterPaymentArgsList) Append added in v0.1.0

func (*CreateCounterPaymentArgsList) At added in v0.1.0

func (*CreateCounterPaymentArgsList) DecodeFields added in v0.1.0

func (s *CreateCounterPaymentArgsList) DecodeFields(_ model.FieldReader)

func (*CreateCounterPaymentArgsList) EncodeFields added in v0.1.0

func (s *CreateCounterPaymentArgsList) EncodeFields(_ model.FieldWriter)

func (*CreateCounterPaymentArgsList) IsNil added in v0.1.0

func (*CreateCounterPaymentArgsList) Len added in v0.1.0

type Deps added in v0.1.0

type Deps struct {
	Publisher events.Publisher // opcional — nil desactiva la publicación
	Gateway   Gateway          // opcional — nil: el canal online responde ErrGatewayUnavailable
	ReturnURL string           // requerido con Gateway: URL absoluta de la ruta de retorno
	Charges   []ChargeSource   // requerido: quién responde el monto de cada módulo de referencia
}

Deps son las dependencias que inyecta la raíz de composición.

type Gateway added in v0.1.0

type Gateway interface {
	Start(req GatewayStart) (GatewayStarted, error)
	Commit(token string) (GatewayResult, error)
	Status(token string) (GatewayResult, error)
	Refund(token string, amount int64) (GatewayRefund, error)
}

Gateway es la pasarela de pago online. La implementación concreta (github.com/veltylabs/transbank) la inyecta la app; sus llamadas son síncronas y solo corren en el servidor.

type GatewayRefund added in v0.1.0

type GatewayRefund struct {
	Kind              string
	AuthorizationCode string
	Amount            int64
}

type GatewayResult added in v0.1.0

type GatewayResult struct {
	Outcome           string
	Amount            int64
	AuthorizationCode string
	PaymentTypeCode   string
	Installments      int64
	CardLast4         string
}

type GatewayStart added in v0.1.0

type GatewayStart struct {
	BuyOrder  string
	SessionId string
	Amount    int64
	Currency  string
	ReturnURL string
}

type GatewayStarted added in v0.1.0

type GatewayStarted struct {
	Token       string
	RedirectURL string
}

type GetChargeArgs added in v0.1.0

type GetChargeArgs struct {
	TenantId        string
	ReferenceModule string
	ReferenceId     string
}

func (*GetChargeArgs) DecodeFields added in v0.1.0

func (m *GetChargeArgs) DecodeFields(r model.FieldReader)

func (*GetChargeArgs) EncodeFields added in v0.1.0

func (m *GetChargeArgs) EncodeFields(w model.FieldWriter)

func (*GetChargeArgs) IsNil added in v0.1.0

func (m *GetChargeArgs) IsNil() bool

func (*GetChargeArgs) ModelName added in v0.1.0

func (m *GetChargeArgs) ModelName() string

func (*GetChargeArgs) Pointers added in v0.1.0

func (m *GetChargeArgs) Pointers() []any

func (*GetChargeArgs) Schema added in v0.1.0

func (m *GetChargeArgs) Schema() []model.Field

func (*GetChargeArgs) Validate added in v0.1.0

func (m *GetChargeArgs) Validate(action byte) error

type GetChargeArgsList added in v0.1.0

type GetChargeArgsList []*GetChargeArgs

func (*GetChargeArgsList) Append added in v0.1.0

func (s *GetChargeArgsList) Append() model.Fielder

func (*GetChargeArgsList) At added in v0.1.0

func (*GetChargeArgsList) DecodeFields added in v0.1.0

func (s *GetChargeArgsList) DecodeFields(_ model.FieldReader)

func (*GetChargeArgsList) EncodeFields added in v0.1.0

func (s *GetChargeArgsList) EncodeFields(_ model.FieldWriter)

func (*GetChargeArgsList) IsNil added in v0.1.0

func (s *GetChargeArgsList) IsNil() bool

func (*GetChargeArgsList) Len added in v0.1.0

func (s *GetChargeArgsList) Len() int

type GetPaymentArgs added in v0.1.0

type GetPaymentArgs struct {
	TenantId string
	Id       string
}

func (*GetPaymentArgs) DecodeFields added in v0.1.0

func (m *GetPaymentArgs) DecodeFields(r model.FieldReader)

func (*GetPaymentArgs) EncodeFields added in v0.1.0

func (m *GetPaymentArgs) EncodeFields(w model.FieldWriter)

func (*GetPaymentArgs) IsNil added in v0.1.0

func (m *GetPaymentArgs) IsNil() bool

func (*GetPaymentArgs) ModelName added in v0.1.0

func (m *GetPaymentArgs) ModelName() string

func (*GetPaymentArgs) Pointers added in v0.1.0

func (m *GetPaymentArgs) Pointers() []any

func (*GetPaymentArgs) Schema added in v0.1.0

func (m *GetPaymentArgs) Schema() []model.Field

func (*GetPaymentArgs) Validate added in v0.1.0

func (m *GetPaymentArgs) Validate(action byte) error

type GetPaymentArgsList added in v0.1.0

type GetPaymentArgsList []*GetPaymentArgs

func (*GetPaymentArgsList) Append added in v0.1.0

func (s *GetPaymentArgsList) Append() model.Fielder

func (*GetPaymentArgsList) At added in v0.1.0

func (*GetPaymentArgsList) DecodeFields added in v0.1.0

func (s *GetPaymentArgsList) DecodeFields(_ model.FieldReader)

func (*GetPaymentArgsList) EncodeFields added in v0.1.0

func (s *GetPaymentArgsList) EncodeFields(_ model.FieldWriter)

func (*GetPaymentArgsList) IsNil added in v0.1.0

func (s *GetPaymentArgsList) IsNil() bool

func (*GetPaymentArgsList) Len added in v0.1.0

func (s *GetPaymentArgsList) Len() int

type ListPaymentsArgs added in v0.1.0

type ListPaymentsArgs struct {
	TenantId string
	From     int64
	To       int64
}

func (*ListPaymentsArgs) DecodeFields added in v0.1.0

func (m *ListPaymentsArgs) DecodeFields(r model.FieldReader)

func (*ListPaymentsArgs) EncodeFields added in v0.1.0

func (m *ListPaymentsArgs) EncodeFields(w model.FieldWriter)

func (*ListPaymentsArgs) IsNil added in v0.1.0

func (m *ListPaymentsArgs) IsNil() bool

func (*ListPaymentsArgs) ModelName added in v0.1.0

func (m *ListPaymentsArgs) ModelName() string

func (*ListPaymentsArgs) Pointers added in v0.1.0

func (m *ListPaymentsArgs) Pointers() []any

func (*ListPaymentsArgs) Schema added in v0.1.0

func (m *ListPaymentsArgs) Schema() []model.Field

func (*ListPaymentsArgs) Validate added in v0.1.0

func (m *ListPaymentsArgs) Validate(action byte) error

type ListPaymentsArgsList added in v0.1.0

type ListPaymentsArgsList []*ListPaymentsArgs

func (*ListPaymentsArgsList) Append added in v0.1.0

func (s *ListPaymentsArgsList) Append() model.Fielder

func (*ListPaymentsArgsList) At added in v0.1.0

func (*ListPaymentsArgsList) DecodeFields added in v0.1.0

func (s *ListPaymentsArgsList) DecodeFields(_ model.FieldReader)

func (*ListPaymentsArgsList) EncodeFields added in v0.1.0

func (s *ListPaymentsArgsList) EncodeFields(_ model.FieldWriter)

func (*ListPaymentsArgsList) IsNil added in v0.1.0

func (s *ListPaymentsArgsList) IsNil() bool

func (*ListPaymentsArgsList) Len added in v0.1.0

func (s *ListPaymentsArgsList) Len() int

type ListPaymentsByReferenceArgs added in v0.1.0

type ListPaymentsByReferenceArgs struct {
	TenantId        string
	ReferenceModule string
	ReferenceId     string
}

func (*ListPaymentsByReferenceArgs) DecodeFields added in v0.1.0

func (m *ListPaymentsByReferenceArgs) DecodeFields(r model.FieldReader)

func (*ListPaymentsByReferenceArgs) EncodeFields added in v0.1.0

func (m *ListPaymentsByReferenceArgs) EncodeFields(w model.FieldWriter)

func (*ListPaymentsByReferenceArgs) IsNil added in v0.1.0

func (m *ListPaymentsByReferenceArgs) IsNil() bool

func (*ListPaymentsByReferenceArgs) ModelName added in v0.1.0

func (m *ListPaymentsByReferenceArgs) ModelName() string

func (*ListPaymentsByReferenceArgs) Pointers added in v0.1.0

func (m *ListPaymentsByReferenceArgs) Pointers() []any

func (*ListPaymentsByReferenceArgs) Schema added in v0.1.0

func (m *ListPaymentsByReferenceArgs) Schema() []model.Field

func (*ListPaymentsByReferenceArgs) Validate added in v0.1.0

func (m *ListPaymentsByReferenceArgs) Validate(action byte) error

type ListPaymentsByReferenceArgsList added in v0.1.0

type ListPaymentsByReferenceArgsList []*ListPaymentsByReferenceArgs

func (*ListPaymentsByReferenceArgsList) Append added in v0.1.0

func (*ListPaymentsByReferenceArgsList) At added in v0.1.0

func (*ListPaymentsByReferenceArgsList) DecodeFields added in v0.1.0

func (*ListPaymentsByReferenceArgsList) EncodeFields added in v0.1.0

func (*ListPaymentsByReferenceArgsList) IsNil added in v0.1.0

func (*ListPaymentsByReferenceArgsList) Len added in v0.1.0

type ListRefundsArgs added in v0.1.0

type ListRefundsArgs struct {
	TenantId  string
	PaymentId string
}

func (*ListRefundsArgs) DecodeFields added in v0.1.0

func (m *ListRefundsArgs) DecodeFields(r model.FieldReader)

func (*ListRefundsArgs) EncodeFields added in v0.1.0

func (m *ListRefundsArgs) EncodeFields(w model.FieldWriter)

func (*ListRefundsArgs) IsNil added in v0.1.0

func (m *ListRefundsArgs) IsNil() bool

func (*ListRefundsArgs) ModelName added in v0.1.0

func (m *ListRefundsArgs) ModelName() string

func (*ListRefundsArgs) Pointers added in v0.1.0

func (m *ListRefundsArgs) Pointers() []any

func (*ListRefundsArgs) Schema added in v0.1.0

func (m *ListRefundsArgs) Schema() []model.Field

func (*ListRefundsArgs) Validate added in v0.1.0

func (m *ListRefundsArgs) Validate(action byte) error

type ListRefundsArgsList added in v0.1.0

type ListRefundsArgsList []*ListRefundsArgs

func (*ListRefundsArgsList) Append added in v0.1.0

func (s *ListRefundsArgsList) Append() model.Fielder

func (*ListRefundsArgsList) At added in v0.1.0

func (*ListRefundsArgsList) DecodeFields added in v0.1.0

func (s *ListRefundsArgsList) DecodeFields(_ model.FieldReader)

func (*ListRefundsArgsList) EncodeFields added in v0.1.0

func (s *ListRefundsArgsList) EncodeFields(_ model.FieldWriter)

func (*ListRefundsArgsList) IsNil added in v0.1.0

func (s *ListRefundsArgsList) IsNil() bool

func (*ListRefundsArgsList) Len added in v0.1.0

func (s *ListRefundsArgsList) Len() int

type Module added in v0.1.0

type Module struct {
	// contains filtered or unexported fields
}

Module registra, confirma y devuelve pagos.

func New

func New(db *orm.DB, deps Deps) (*Module, error)

New conecta el módulo a un *orm.DB ya migrado (ver el subpaquete migrate).

func (*Module) Charge added in v0.1.0

func (m *Module) Charge(tenantId, referenceModule, referenceId string) (amount int64, currency string, payable bool, err error)

Charge pregunta al módulo dueño de la referencia cuánto se cobra. El monto nunca viene del cliente.

func (*Module) CompleteOnlinePayment added in v0.1.0

func (m *Module) CompleteOnlinePayment(ret OnlineReturn) (Payment, error)

CompleteOnlinePayment termina un pago online con lo que devolvió la pasarela (ver OnlineReturn). Es idempotente: un pago que ya no está PENDING se devuelve tal cual.

func (*Module) CreateCounterPayment added in v0.1.0

func (m *Module) CreateCounterPayment(cmd CreateCounterPaymentArgs) (Payment, error)

CreateCounterPayment registra un pago hecho en el mesón. Nace pagado. Repetir el mismo id con la misma referencia devuelve el pago guardado.

func (*Module) GetPayment added in v0.1.0

func (m *Module) GetPayment(tenantId, id string) (Payment, error)

GetPayment lee un pago del tenant.

func (*Module) ListPayments added in v0.1.0

func (m *Module) ListPayments(tenantId string, from, to int64) ([]Payment, error)

ListPayments lista los pagos creados en [from, to) (segundos).

func (*Module) ListPaymentsByReference added in v0.1.0

func (m *Module) ListPaymentsByReference(tenantId, referenceModule, referenceId string) ([]Payment, error)

ListPaymentsByReference lista los pagos de una referencia.

func (*Module) ListRefunds added in v0.1.0

func (m *Module) ListRefunds(tenantId, paymentId string) ([]Refund, error)

ListRefunds lista las devoluciones de un pago.

func (*Module) ModelName added in v0.1.0

func (m *Module) ModelName() string

func (*Module) MountOperations added in v0.1.0

func (m *Module) MountOperations(reg router.OperationRegistry)

func (*Module) PaidAmount added in v0.1.0

func (m *Module) PaidAmount(tenantId, paymentId, referenceModule, referenceId string) (amount int64, currency string, err error)

PaidAmount verifica un pago para el módulo dueño de la referencia: devuelve el monto neto (pagado menos devuelto) solo si el pago es de esa referencia y está pagado.

func (*Module) ReconcileOnlinePayments added in v0.1.0

func (m *Module) ReconcileOnlinePayments(tenantId string, now int64) (int, error)

ReconcileOnlinePayments cierra los pagos online que siguen PENDING después de OnlinePendingTimeout (diagrama §8). Devuelve cuántos cerró. Sin pasarela no hay pagos online que cerrar.

func (*Module) RefundPayment added in v0.1.0

func (m *Module) RefundPayment(cmd RefundPaymentArgs) (Refund, error)

RefundPayment devuelve amount de un pago pagado. En online lo pide a la pasarela; en mesón registra la devolución con su medio.

func (*Module) StartOnlinePayment added in v0.1.0

func (m *Module) StartOnlinePayment(cmd StartOnlinePaymentArgs) (StartOnlinePaymentResult, error)

StartOnlinePayment crea el pago PENDING y pide a la pasarela un token y la URL a la que se envía al cliente.

type OnlineReturn added in v0.1.0

type OnlineReturn struct {
	Token      string
	AbortToken string
	BuyOrder   string
}

type Payment added in v0.1.0

type Payment struct {
	Id                string
	TenantId          string
	ReferenceModule   string
	ReferenceId       string
	Channel           string
	Method            string
	Amount            int64
	Currency          string
	Status            string
	RefundedAmount    int64
	ProviderToken     string
	AuthorizationCode string
	PaymentTypeCode   string
	Installments      int64
	CardLast4         string
	ReceiptNumber     string
	ReturnTo          string
	CreatedBy         string
	CreatedAt         int64
	PaidAt            int64
	UpdatedAt         int64
	Revision          int64
}

func ReadOnePayment added in v0.1.0

func ReadOnePayment(qb *orm.QB, model *Payment) (*Payment, error)

func (*Payment) DecodeFields added in v0.1.0

func (m *Payment) DecodeFields(r model.FieldReader)

func (*Payment) EncodeFields added in v0.1.0

func (m *Payment) EncodeFields(w model.FieldWriter)

func (*Payment) IsNil added in v0.1.0

func (m *Payment) IsNil() bool

func (*Payment) Item added in v0.1.0

func (p *Payment) Item() view.Item

Item proyecta un pago como fila: monto y medio; estado y referencia.

func (*Payment) ModelName added in v0.1.0

func (m *Payment) ModelName() string

func (*Payment) Pointers added in v0.1.0

func (m *Payment) Pointers() []any

func (*Payment) Schema added in v0.1.0

func (m *Payment) Schema() []model.Field

func (*Payment) Validate added in v0.1.0

func (m *Payment) Validate(action byte) error

type PaymentList added in v0.1.0

type PaymentList []*Payment

func ReadAllPayment added in v0.1.0

func ReadAllPayment(qb *orm.QB) (PaymentList, error)

func (*PaymentList) Append added in v0.1.0

func (s *PaymentList) Append() model.Fielder

func (*PaymentList) At added in v0.1.0

func (s *PaymentList) At(i int) model.Fielder

func (*PaymentList) DecodeFields added in v0.1.0

func (s *PaymentList) DecodeFields(_ model.FieldReader)

func (*PaymentList) EncodeFields added in v0.1.0

func (s *PaymentList) EncodeFields(_ model.FieldWriter)

func (*PaymentList) IsNil added in v0.1.0

func (s *PaymentList) IsNil() bool

func (*PaymentList) Len added in v0.1.0

func (s *PaymentList) Len() int

type PaymentStatusResult added in v0.1.0

type PaymentStatusResult struct {
	Id     string
	Status string
}

func (*PaymentStatusResult) DecodeFields added in v0.1.0

func (m *PaymentStatusResult) DecodeFields(r model.FieldReader)

func (*PaymentStatusResult) EncodeFields added in v0.1.0

func (m *PaymentStatusResult) EncodeFields(w model.FieldWriter)

func (*PaymentStatusResult) IsNil added in v0.1.0

func (m *PaymentStatusResult) IsNil() bool

func (*PaymentStatusResult) ModelName added in v0.1.0

func (m *PaymentStatusResult) ModelName() string

func (*PaymentStatusResult) Pointers added in v0.1.0

func (m *PaymentStatusResult) Pointers() []any

func (*PaymentStatusResult) Schema added in v0.1.0

func (m *PaymentStatusResult) Schema() []model.Field

func (*PaymentStatusResult) Validate added in v0.1.0

func (m *PaymentStatusResult) Validate(action byte) error

type PaymentStatusResultList added in v0.1.0

type PaymentStatusResultList []*PaymentStatusResult

func (*PaymentStatusResultList) Append added in v0.1.0

func (*PaymentStatusResultList) At added in v0.1.0

func (*PaymentStatusResultList) DecodeFields added in v0.1.0

func (s *PaymentStatusResultList) DecodeFields(_ model.FieldReader)

func (*PaymentStatusResultList) EncodeFields added in v0.1.0

func (s *PaymentStatusResultList) EncodeFields(_ model.FieldWriter)

func (*PaymentStatusResultList) IsNil added in v0.1.0

func (s *PaymentStatusResultList) IsNil() bool

func (*PaymentStatusResultList) Len added in v0.1.0

func (s *PaymentStatusResultList) Len() int

type ReconcileOnlinePaymentsArgs added in v0.1.0

type ReconcileOnlinePaymentsArgs struct {
	TenantId string
}

func (*ReconcileOnlinePaymentsArgs) DecodeFields added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) DecodeFields(r model.FieldReader)

func (*ReconcileOnlinePaymentsArgs) EncodeFields added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) EncodeFields(w model.FieldWriter)

func (*ReconcileOnlinePaymentsArgs) IsNil added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) IsNil() bool

func (*ReconcileOnlinePaymentsArgs) ModelName added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) ModelName() string

func (*ReconcileOnlinePaymentsArgs) Pointers added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) Pointers() []any

func (*ReconcileOnlinePaymentsArgs) Schema added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) Schema() []model.Field

func (*ReconcileOnlinePaymentsArgs) Validate added in v0.1.0

func (m *ReconcileOnlinePaymentsArgs) Validate(action byte) error

type ReconcileOnlinePaymentsArgsList added in v0.1.0

type ReconcileOnlinePaymentsArgsList []*ReconcileOnlinePaymentsArgs

func (*ReconcileOnlinePaymentsArgsList) Append added in v0.1.0

func (*ReconcileOnlinePaymentsArgsList) At added in v0.1.0

func (*ReconcileOnlinePaymentsArgsList) DecodeFields added in v0.1.0

func (*ReconcileOnlinePaymentsArgsList) EncodeFields added in v0.1.0

func (*ReconcileOnlinePaymentsArgsList) IsNil added in v0.1.0

func (*ReconcileOnlinePaymentsArgsList) Len added in v0.1.0

type ReconcileResult added in v0.1.0

type ReconcileResult struct {
	Closed int64
}

func (*ReconcileResult) DecodeFields added in v0.1.0

func (m *ReconcileResult) DecodeFields(r model.FieldReader)

func (*ReconcileResult) EncodeFields added in v0.1.0

func (m *ReconcileResult) EncodeFields(w model.FieldWriter)

func (*ReconcileResult) IsNil added in v0.1.0

func (m *ReconcileResult) IsNil() bool

func (*ReconcileResult) ModelName added in v0.1.0

func (m *ReconcileResult) ModelName() string

func (*ReconcileResult) Pointers added in v0.1.0

func (m *ReconcileResult) Pointers() []any

func (*ReconcileResult) Schema added in v0.1.0

func (m *ReconcileResult) Schema() []model.Field

func (*ReconcileResult) Validate added in v0.1.0

func (m *ReconcileResult) Validate(action byte) error

type ReconcileResultList added in v0.1.0

type ReconcileResultList []*ReconcileResult

func (*ReconcileResultList) Append added in v0.1.0

func (s *ReconcileResultList) Append() model.Fielder

func (*ReconcileResultList) At added in v0.1.0

func (*ReconcileResultList) DecodeFields added in v0.1.0

func (s *ReconcileResultList) DecodeFields(_ model.FieldReader)

func (*ReconcileResultList) EncodeFields added in v0.1.0

func (s *ReconcileResultList) EncodeFields(_ model.FieldWriter)

func (*ReconcileResultList) IsNil added in v0.1.0

func (s *ReconcileResultList) IsNil() bool

func (*ReconcileResultList) Len added in v0.1.0

func (s *ReconcileResultList) Len() int

type Refund added in v0.1.0

type Refund struct {
	Id                string
	TenantId          string
	PaymentId         string
	Amount            int64
	Kind              string
	Method            string
	Reason            string
	AuthorizationCode string
	CreatedBy         string
	CreatedAt         int64
}

func ReadOneRefund added in v0.1.0

func ReadOneRefund(qb *orm.QB, model *Refund) (*Refund, error)

func (*Refund) DecodeFields added in v0.1.0

func (m *Refund) DecodeFields(r model.FieldReader)

func (*Refund) EncodeFields added in v0.1.0

func (m *Refund) EncodeFields(w model.FieldWriter)

func (*Refund) IsNil added in v0.1.0

func (m *Refund) IsNil() bool

func (*Refund) ModelName added in v0.1.0

func (m *Refund) ModelName() string

func (*Refund) Pointers added in v0.1.0

func (m *Refund) Pointers() []any

func (*Refund) Schema added in v0.1.0

func (m *Refund) Schema() []model.Field

func (*Refund) SchemaExt added in v0.1.0

func (m *Refund) SchemaExt() []model.FieldExt

func (*Refund) Validate added in v0.1.0

func (m *Refund) Validate(action byte) error

type RefundList added in v0.1.0

type RefundList []*Refund

func ReadAllRefund added in v0.1.0

func ReadAllRefund(qb *orm.QB) (RefundList, error)

func (*RefundList) Append added in v0.1.0

func (s *RefundList) Append() model.Fielder

func (*RefundList) At added in v0.1.0

func (s *RefundList) At(i int) model.Fielder

func (*RefundList) DecodeFields added in v0.1.0

func (s *RefundList) DecodeFields(_ model.FieldReader)

func (*RefundList) EncodeFields added in v0.1.0

func (s *RefundList) EncodeFields(_ model.FieldWriter)

func (*RefundList) IsNil added in v0.1.0

func (s *RefundList) IsNil() bool

func (*RefundList) Len added in v0.1.0

func (s *RefundList) Len() int

type RefundPaymentArgs added in v0.1.0

type RefundPaymentArgs struct {
	TenantId  string
	Id        string
	PaymentId string
	Amount    int64
	Reason    string
	Method    string
}

func (*RefundPaymentArgs) DecodeFields added in v0.1.0

func (m *RefundPaymentArgs) DecodeFields(r model.FieldReader)

func (*RefundPaymentArgs) EncodeFields added in v0.1.0

func (m *RefundPaymentArgs) EncodeFields(w model.FieldWriter)

func (*RefundPaymentArgs) IsNil added in v0.1.0

func (m *RefundPaymentArgs) IsNil() bool

func (*RefundPaymentArgs) ModelName added in v0.1.0

func (m *RefundPaymentArgs) ModelName() string

func (*RefundPaymentArgs) Pointers added in v0.1.0

func (m *RefundPaymentArgs) Pointers() []any

func (*RefundPaymentArgs) Schema added in v0.1.0

func (m *RefundPaymentArgs) Schema() []model.Field

func (*RefundPaymentArgs) Validate added in v0.1.0

func (m *RefundPaymentArgs) Validate(action byte) error

type RefundPaymentArgsList added in v0.1.0

type RefundPaymentArgsList []*RefundPaymentArgs

func (*RefundPaymentArgsList) Append added in v0.1.0

func (s *RefundPaymentArgsList) Append() model.Fielder

func (*RefundPaymentArgsList) At added in v0.1.0

func (*RefundPaymentArgsList) DecodeFields added in v0.1.0

func (s *RefundPaymentArgsList) DecodeFields(_ model.FieldReader)

func (*RefundPaymentArgsList) EncodeFields added in v0.1.0

func (s *RefundPaymentArgsList) EncodeFields(_ model.FieldWriter)

func (*RefundPaymentArgsList) IsNil added in v0.1.0

func (s *RefundPaymentArgsList) IsNil() bool

func (*RefundPaymentArgsList) Len added in v0.1.0

func (s *RefundPaymentArgsList) Len() int

type StartOnlinePaymentArgs added in v0.1.0

type StartOnlinePaymentArgs struct {
	TenantId        string
	Id              string
	ReferenceModule string
	ReferenceId     string
	ReturnTo        string
}

func (*StartOnlinePaymentArgs) DecodeFields added in v0.1.0

func (m *StartOnlinePaymentArgs) DecodeFields(r model.FieldReader)

func (*StartOnlinePaymentArgs) EncodeFields added in v0.1.0

func (m *StartOnlinePaymentArgs) EncodeFields(w model.FieldWriter)

func (*StartOnlinePaymentArgs) IsNil added in v0.1.0

func (m *StartOnlinePaymentArgs) IsNil() bool

func (*StartOnlinePaymentArgs) ModelName added in v0.1.0

func (m *StartOnlinePaymentArgs) ModelName() string

func (*StartOnlinePaymentArgs) Pointers added in v0.1.0

func (m *StartOnlinePaymentArgs) Pointers() []any

func (*StartOnlinePaymentArgs) Schema added in v0.1.0

func (m *StartOnlinePaymentArgs) Schema() []model.Field

func (*StartOnlinePaymentArgs) Validate added in v0.1.0

func (m *StartOnlinePaymentArgs) Validate(action byte) error

type StartOnlinePaymentArgsList added in v0.1.0

type StartOnlinePaymentArgsList []*StartOnlinePaymentArgs

func (*StartOnlinePaymentArgsList) Append added in v0.1.0

func (*StartOnlinePaymentArgsList) At added in v0.1.0

func (*StartOnlinePaymentArgsList) DecodeFields added in v0.1.0

func (s *StartOnlinePaymentArgsList) DecodeFields(_ model.FieldReader)

func (*StartOnlinePaymentArgsList) EncodeFields added in v0.1.0

func (s *StartOnlinePaymentArgsList) EncodeFields(_ model.FieldWriter)

func (*StartOnlinePaymentArgsList) IsNil added in v0.1.0

func (s *StartOnlinePaymentArgsList) IsNil() bool

func (*StartOnlinePaymentArgsList) Len added in v0.1.0

type StartOnlinePaymentResult added in v0.1.0

type StartOnlinePaymentResult struct {
	PaymentId   string
	RedirectUrl string
	Token       string
}

func (*StartOnlinePaymentResult) DecodeFields added in v0.1.0

func (m *StartOnlinePaymentResult) DecodeFields(r model.FieldReader)

func (*StartOnlinePaymentResult) EncodeFields added in v0.1.0

func (m *StartOnlinePaymentResult) EncodeFields(w model.FieldWriter)

func (*StartOnlinePaymentResult) IsNil added in v0.1.0

func (m *StartOnlinePaymentResult) IsNil() bool

func (*StartOnlinePaymentResult) ModelName added in v0.1.0

func (m *StartOnlinePaymentResult) ModelName() string

func (*StartOnlinePaymentResult) Pointers added in v0.1.0

func (m *StartOnlinePaymentResult) Pointers() []any

func (*StartOnlinePaymentResult) Schema added in v0.1.0

func (m *StartOnlinePaymentResult) Schema() []model.Field

func (*StartOnlinePaymentResult) Validate added in v0.1.0

func (m *StartOnlinePaymentResult) Validate(action byte) error

type StartOnlinePaymentResultList added in v0.1.0

type StartOnlinePaymentResultList []*StartOnlinePaymentResult

func (*StartOnlinePaymentResultList) Append added in v0.1.0

func (*StartOnlinePaymentResultList) At added in v0.1.0

func (*StartOnlinePaymentResultList) DecodeFields added in v0.1.0

func (s *StartOnlinePaymentResultList) DecodeFields(_ model.FieldReader)

func (*StartOnlinePaymentResultList) EncodeFields added in v0.1.0

func (s *StartOnlinePaymentResultList) EncodeFields(_ model.FieldWriter)

func (*StartOnlinePaymentResultList) IsNil added in v0.1.0

func (*StartOnlinePaymentResultList) Len added in v0.1.0

Directories

Path Synopsis
Package migrate crea y actualiza el esquema de payment_manager.
Package migrate crea y actualiza el esquema de payment_manager.
Package sandbox es una pasarela de pago en memoria que implementa paymentmanager.Gateway.
Package sandbox es una pasarela de pago en memoria que implementa paymentmanager.Gateway.

Jump to

Keyboard shortcuts

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