Documentation
¶
Index ¶
- Constants
- Variables
- func FormatAmount(amount int64, currency string) string
- func NewView(caller router.Caller, opts ...view.Option) view.Presenter
- func Transition(current, event string) (string, error)
- type BankDays
- type ChargeReader
- type ChargeResult
- func (m *ChargeResult) DecodeFields(r model.FieldReader)
- func (m *ChargeResult) EncodeFields(w model.FieldWriter)
- func (m *ChargeResult) IsNil() bool
- func (m *ChargeResult) ModelName() string
- func (m *ChargeResult) Pointers() []any
- func (m *ChargeResult) Schema() []model.Field
- func (m *ChargeResult) Validate(action byte) error
- type ChargeResultList
- type ChargeSource
- type CreateCounterPaymentArgs
- func (m *CreateCounterPaymentArgs) DecodeFields(r model.FieldReader)
- func (m *CreateCounterPaymentArgs) EncodeFields(w model.FieldWriter)
- func (m *CreateCounterPaymentArgs) IsNil() bool
- func (m *CreateCounterPaymentArgs) ModelName() string
- func (m *CreateCounterPaymentArgs) Pointers() []any
- func (m *CreateCounterPaymentArgs) Schema() []model.Field
- func (m *CreateCounterPaymentArgs) Validate(action byte) error
- type CreateCounterPaymentArgsList
- func (s *CreateCounterPaymentArgsList) Append() model.Fielder
- func (s *CreateCounterPaymentArgsList) At(i int) model.Fielder
- func (s *CreateCounterPaymentArgsList) DecodeFields(_ model.FieldReader)
- func (s *CreateCounterPaymentArgsList) EncodeFields(_ model.FieldWriter)
- func (s *CreateCounterPaymentArgsList) IsNil() bool
- func (s *CreateCounterPaymentArgsList) Len() int
- type Deps
- type Gateway
- type GatewayRefund
- type GatewayResult
- type GatewayStart
- type GatewayStarted
- type GetChargeArgs
- func (m *GetChargeArgs) DecodeFields(r model.FieldReader)
- func (m *GetChargeArgs) EncodeFields(w model.FieldWriter)
- func (m *GetChargeArgs) IsNil() bool
- func (m *GetChargeArgs) ModelName() string
- func (m *GetChargeArgs) Pointers() []any
- func (m *GetChargeArgs) Schema() []model.Field
- func (m *GetChargeArgs) Validate(action byte) error
- type GetChargeArgsList
- func (s *GetChargeArgsList) Append() model.Fielder
- func (s *GetChargeArgsList) At(i int) model.Fielder
- func (s *GetChargeArgsList) DecodeFields(_ model.FieldReader)
- func (s *GetChargeArgsList) EncodeFields(_ model.FieldWriter)
- func (s *GetChargeArgsList) IsNil() bool
- func (s *GetChargeArgsList) Len() int
- type GetPaymentArgs
- func (m *GetPaymentArgs) DecodeFields(r model.FieldReader)
- func (m *GetPaymentArgs) EncodeFields(w model.FieldWriter)
- func (m *GetPaymentArgs) IsNil() bool
- func (m *GetPaymentArgs) ModelName() string
- func (m *GetPaymentArgs) Pointers() []any
- func (m *GetPaymentArgs) Schema() []model.Field
- func (m *GetPaymentArgs) Validate(action byte) error
- type GetPaymentArgsList
- func (s *GetPaymentArgsList) Append() model.Fielder
- func (s *GetPaymentArgsList) At(i int) model.Fielder
- func (s *GetPaymentArgsList) DecodeFields(_ model.FieldReader)
- func (s *GetPaymentArgsList) EncodeFields(_ model.FieldWriter)
- func (s *GetPaymentArgsList) IsNil() bool
- func (s *GetPaymentArgsList) Len() int
- type ListPaymentsArgs
- func (m *ListPaymentsArgs) DecodeFields(r model.FieldReader)
- func (m *ListPaymentsArgs) EncodeFields(w model.FieldWriter)
- func (m *ListPaymentsArgs) IsNil() bool
- func (m *ListPaymentsArgs) ModelName() string
- func (m *ListPaymentsArgs) Pointers() []any
- func (m *ListPaymentsArgs) Schema() []model.Field
- func (m *ListPaymentsArgs) Validate(action byte) error
- type ListPaymentsArgsList
- func (s *ListPaymentsArgsList) Append() model.Fielder
- func (s *ListPaymentsArgsList) At(i int) model.Fielder
- func (s *ListPaymentsArgsList) DecodeFields(_ model.FieldReader)
- func (s *ListPaymentsArgsList) EncodeFields(_ model.FieldWriter)
- func (s *ListPaymentsArgsList) IsNil() bool
- func (s *ListPaymentsArgsList) Len() int
- type ListPaymentsByReferenceArgs
- func (m *ListPaymentsByReferenceArgs) DecodeFields(r model.FieldReader)
- func (m *ListPaymentsByReferenceArgs) EncodeFields(w model.FieldWriter)
- func (m *ListPaymentsByReferenceArgs) IsNil() bool
- func (m *ListPaymentsByReferenceArgs) ModelName() string
- func (m *ListPaymentsByReferenceArgs) Pointers() []any
- func (m *ListPaymentsByReferenceArgs) Schema() []model.Field
- func (m *ListPaymentsByReferenceArgs) Validate(action byte) error
- type ListPaymentsByReferenceArgsList
- func (s *ListPaymentsByReferenceArgsList) Append() model.Fielder
- func (s *ListPaymentsByReferenceArgsList) At(i int) model.Fielder
- func (s *ListPaymentsByReferenceArgsList) DecodeFields(_ model.FieldReader)
- func (s *ListPaymentsByReferenceArgsList) EncodeFields(_ model.FieldWriter)
- func (s *ListPaymentsByReferenceArgsList) IsNil() bool
- func (s *ListPaymentsByReferenceArgsList) Len() int
- type ListRefundsArgs
- func (m *ListRefundsArgs) DecodeFields(r model.FieldReader)
- func (m *ListRefundsArgs) EncodeFields(w model.FieldWriter)
- func (m *ListRefundsArgs) IsNil() bool
- func (m *ListRefundsArgs) ModelName() string
- func (m *ListRefundsArgs) Pointers() []any
- func (m *ListRefundsArgs) Schema() []model.Field
- func (m *ListRefundsArgs) SchemaExt() []model.FieldExt
- func (m *ListRefundsArgs) Validate(action byte) error
- type ListRefundsArgsList
- func (s *ListRefundsArgsList) Append() model.Fielder
- func (s *ListRefundsArgsList) At(i int) model.Fielder
- func (s *ListRefundsArgsList) DecodeFields(_ model.FieldReader)
- func (s *ListRefundsArgsList) EncodeFields(_ model.FieldWriter)
- func (s *ListRefundsArgsList) IsNil() bool
- func (s *ListRefundsArgsList) Len() int
- type Module
- func (m *Module) Charge(tenantId, referenceModule, referenceId string) (amount int64, currency string, payable bool, err error)
- func (m *Module) CompleteOnlinePayment(r OnlineResult) (Payment, error)
- func (m *Module) CreateCounterPayment(cmd CreateCounterPaymentArgs) (Payment, error)
- func (m *Module) Due(tenantId, referenceModule, referenceId string) (amount int64, currency string, err error)
- func (m *Module) GetPayment(tenantId, id string) (Payment, error)
- func (m *Module) ListPayments(tenantId string, from, to time.Unix) ([]Payment, error)
- func (m *Module) ListPaymentsByReference(tenantId, referenceModule, referenceId string) ([]Payment, error)
- func (m *Module) ListRefunds(tenantId, paymentId string) ([]Refund, error)
- func (m *Module) ModelName() string
- func (m *Module) MountOperations(reg router.OperationRegistry)
- func (m *Module) NextReceiptNumber(tenantId string) (string, error)
- func (m *Module) PaidAmount(tenantId, paymentId, referenceModule, referenceId string) (amount int64, currency string, err error)
- func (m *Module) ReconcilePayments(tenantId string, now time.Unix) (int, error)
- func (m *Module) RefreshTerminalPayment(tenantId, id string) (Payment, error)
- func (m *Module) RefundPayment(cmd RefundPaymentArgs) (Refund, error)
- func (m *Module) StartOnlinePayment(cmd StartOnlinePaymentArgs) (StartOnlinePaymentResult, error)
- func (m *Module) StartTerminalPayment(cmd StartTerminalPaymentArgs) (Payment, error)
- type OnlineResult
- type Payer
- type Payment
- func (m *Payment) DecodeFields(r model.FieldReader)
- func (m *Payment) EncodeFields(w model.FieldWriter)
- func (m *Payment) IsNil() bool
- func (m *Payment) Item() model.Item
- func (m *Payment) ModelName() string
- func (m *Payment) Pointers() []any
- func (m *Payment) Schema() []model.Field
- func (m *Payment) Validate(action byte) error
- type PaymentCounter
- func (m *PaymentCounter) DecodeFields(r model.FieldReader)
- func (m *PaymentCounter) EncodeFields(w model.FieldWriter)
- func (m *PaymentCounter) IsNil() bool
- func (m *PaymentCounter) ModelName() string
- func (m *PaymentCounter) Pointers() []any
- func (m *PaymentCounter) Schema() []model.Field
- func (m *PaymentCounter) Validate(action byte) error
- type PaymentCounterList
- func (s *PaymentCounterList) Append() model.Fielder
- func (s *PaymentCounterList) At(i int) model.Fielder
- func (s *PaymentCounterList) DecodeFields(_ model.FieldReader)
- func (s *PaymentCounterList) EncodeFields(_ model.FieldWriter)
- func (s *PaymentCounterList) IsNil() bool
- func (s *PaymentCounterList) Len() int
- type PaymentList
- type PaymentStatusResult
- func (m *PaymentStatusResult) DecodeFields(r model.FieldReader)
- func (m *PaymentStatusResult) EncodeFields(w model.FieldWriter)
- func (m *PaymentStatusResult) IsNil() bool
- func (m *PaymentStatusResult) ModelName() string
- func (m *PaymentStatusResult) Pointers() []any
- func (m *PaymentStatusResult) Schema() []model.Field
- func (m *PaymentStatusResult) Validate(action byte) error
- type PaymentStatusResultList
- func (s *PaymentStatusResultList) Append() model.Fielder
- func (s *PaymentStatusResultList) At(i int) model.Fielder
- func (s *PaymentStatusResultList) DecodeFields(_ model.FieldReader)
- func (s *PaymentStatusResultList) EncodeFields(_ model.FieldWriter)
- func (s *PaymentStatusResultList) IsNil() bool
- func (s *PaymentStatusResultList) Len() int
- type Payout
- type PayoutCharge
- type PayoutTerms
- type ReconcilePaymentsArgs
- func (m *ReconcilePaymentsArgs) DecodeFields(r model.FieldReader)
- func (m *ReconcilePaymentsArgs) EncodeFields(w model.FieldWriter)
- func (m *ReconcilePaymentsArgs) IsNil() bool
- func (m *ReconcilePaymentsArgs) ModelName() string
- func (m *ReconcilePaymentsArgs) Pointers() []any
- func (m *ReconcilePaymentsArgs) Schema() []model.Field
- func (m *ReconcilePaymentsArgs) Validate(action byte) error
- type ReconcilePaymentsArgsList
- func (s *ReconcilePaymentsArgsList) Append() model.Fielder
- func (s *ReconcilePaymentsArgsList) At(i int) model.Fielder
- func (s *ReconcilePaymentsArgsList) DecodeFields(_ model.FieldReader)
- func (s *ReconcilePaymentsArgsList) EncodeFields(_ model.FieldWriter)
- func (s *ReconcilePaymentsArgsList) IsNil() bool
- func (s *ReconcilePaymentsArgsList) Len() int
- type ReconcileResult
- func (m *ReconcileResult) DecodeFields(r model.FieldReader)
- func (m *ReconcileResult) EncodeFields(w model.FieldWriter)
- func (m *ReconcileResult) IsNil() bool
- func (m *ReconcileResult) ModelName() string
- func (m *ReconcileResult) Pointers() []any
- func (m *ReconcileResult) Schema() []model.Field
- func (m *ReconcileResult) Validate(action byte) error
- type ReconcileResultList
- func (s *ReconcileResultList) Append() model.Fielder
- func (s *ReconcileResultList) At(i int) model.Fielder
- func (s *ReconcileResultList) DecodeFields(_ model.FieldReader)
- func (s *ReconcileResultList) EncodeFields(_ model.FieldWriter)
- func (s *ReconcileResultList) IsNil() bool
- func (s *ReconcileResultList) Len() int
- type Refund
- func (m *Refund) DecodeFields(r model.FieldReader)
- func (m *Refund) EncodeFields(w model.FieldWriter)
- func (m *Refund) IsNil() bool
- func (m *Refund) Item() model.Item
- func (m *Refund) ModelName() string
- func (m *Refund) Pointers() []any
- func (m *Refund) Schema() []model.Field
- func (m *Refund) SchemaExt() []model.FieldExt
- func (m *Refund) Validate(action byte) error
- type RefundList
- type RefundPaymentArgs
- func (m *RefundPaymentArgs) DecodeFields(r model.FieldReader)
- func (m *RefundPaymentArgs) EncodeFields(w model.FieldWriter)
- func (m *RefundPaymentArgs) IsNil() bool
- func (m *RefundPaymentArgs) ModelName() string
- func (m *RefundPaymentArgs) Pointers() []any
- func (m *RefundPaymentArgs) Schema() []model.Field
- func (m *RefundPaymentArgs) SchemaExt() []model.FieldExt
- func (m *RefundPaymentArgs) Validate(action byte) error
- type RefundPaymentArgsList
- func (s *RefundPaymentArgsList) Append() model.Fielder
- func (s *RefundPaymentArgsList) At(i int) model.Fielder
- func (s *RefundPaymentArgsList) DecodeFields(_ model.FieldReader)
- func (s *RefundPaymentArgsList) EncodeFields(_ model.FieldWriter)
- func (s *RefundPaymentArgsList) IsNil() bool
- func (s *RefundPaymentArgsList) Len() int
- type StartOnlinePaymentArgs
- func (m *StartOnlinePaymentArgs) DecodeFields(r model.FieldReader)
- func (m *StartOnlinePaymentArgs) EncodeFields(w model.FieldWriter)
- func (m *StartOnlinePaymentArgs) IsNil() bool
- func (m *StartOnlinePaymentArgs) ModelName() string
- func (m *StartOnlinePaymentArgs) Pointers() []any
- func (m *StartOnlinePaymentArgs) Schema() []model.Field
- func (m *StartOnlinePaymentArgs) Validate(action byte) error
- type StartOnlinePaymentArgsList
- func (s *StartOnlinePaymentArgsList) Append() model.Fielder
- func (s *StartOnlinePaymentArgsList) At(i int) model.Fielder
- func (s *StartOnlinePaymentArgsList) DecodeFields(_ model.FieldReader)
- func (s *StartOnlinePaymentArgsList) EncodeFields(_ model.FieldWriter)
- func (s *StartOnlinePaymentArgsList) IsNil() bool
- func (s *StartOnlinePaymentArgsList) Len() int
- type StartOnlinePaymentResult
- func (m *StartOnlinePaymentResult) DecodeFields(r model.FieldReader)
- func (m *StartOnlinePaymentResult) EncodeFields(w model.FieldWriter)
- func (m *StartOnlinePaymentResult) IsNil() bool
- func (m *StartOnlinePaymentResult) ModelName() string
- func (m *StartOnlinePaymentResult) Pointers() []any
- func (m *StartOnlinePaymentResult) Schema() []model.Field
- func (m *StartOnlinePaymentResult) Validate(action byte) error
- type StartOnlinePaymentResultList
- func (s *StartOnlinePaymentResultList) Append() model.Fielder
- func (s *StartOnlinePaymentResultList) At(i int) model.Fielder
- func (s *StartOnlinePaymentResultList) DecodeFields(_ model.FieldReader)
- func (s *StartOnlinePaymentResultList) EncodeFields(_ model.FieldWriter)
- func (s *StartOnlinePaymentResultList) IsNil() bool
- func (s *StartOnlinePaymentResultList) Len() int
- type StartTerminalPaymentArgs
- func (m *StartTerminalPaymentArgs) DecodeFields(r model.FieldReader)
- func (m *StartTerminalPaymentArgs) EncodeFields(w model.FieldWriter)
- func (m *StartTerminalPaymentArgs) IsNil() bool
- func (m *StartTerminalPaymentArgs) ModelName() string
- func (m *StartTerminalPaymentArgs) Pointers() []any
- func (m *StartTerminalPaymentArgs) Schema() []model.Field
- func (m *StartTerminalPaymentArgs) Validate(action byte) error
- type StartTerminalPaymentArgsList
- func (s *StartTerminalPaymentArgsList) Append() model.Fielder
- func (s *StartTerminalPaymentArgsList) At(i int) model.Fielder
- func (s *StartTerminalPaymentArgsList) DecodeFields(_ model.FieldReader)
- func (s *StartTerminalPaymentArgsList) EncodeFields(_ model.FieldWriter)
- func (s *StartTerminalPaymentArgsList) IsNil() bool
- func (s *StartTerminalPaymentArgsList) Len() int
- type Terminal
- type TerminalPush
- type TerminalPushed
- type TerminalResult
Constants ¶
const ( ErrNotFound = model.NotFound("payment not found") ErrRefundNotFound = model.NotFound("refund not found") ErrMissingArgs = model.Invalid("missing required arguments") ErrUnknownReference = model.Invalid("no charge reader for this reference module") ErrNotPayable = model.Invalid("the reference has nothing to pay") ErrUnsupportedCurrency = model.Invalid("unsupported currency") ErrInvalidMethod = model.Invalid("invalid payment method for this channel") ErrInvalidTransition = model.Invalid("invalid payment status transition") ErrRefundExceeds = model.Invalid("refund amount exceeds what is left to refund") ErrIdTaken = model.Conflict("id already used by another operation") ErrAlreadyPaid = model.Conflict("the reference is already paid") ErrNotPaid = model.Conflict("payment is not paid") ErrConflict = model.Conflict("payment changed concurrently") ErrGatewayFailed = model.Invalid("payment gateway call failed") ErrAmountMismatch = model.Invalid("gateway amount differs from the payment amount") ErrNoTerminalDevice = model.Invalid("no card terminal device for this reference module") ErrTerminalFailed = model.Invalid("card terminal call failed") ErrTerminalRequired = model.Invalid("card payments for this reference go through the card terminal") ErrNotTerminal = model.Invalid("payment is not a card terminal payment") )
const ( SourcePayment = "payment" SourcePaymentFee = "payment_fee" SourceRefund = "refund" )
Origen de los hechos.
const ( EventPay = "PAY" EventFail = "FAIL" EventCancel = "CANCEL" EventExpire = "EXPIRE" EventRefundPartial = "REFUND_PARTIAL" EventRefundTotal = "REFUND_TOTAL" )
Eventos de la máquina de estados del pago.
const ( ChannelCounter = "counter" ChannelOnline = "online" ChannelTerminal = "terminal" // cobro en caja empujado a la máquina de tarjeta )
const ( MethodCash = "cash" MethodDebit = "debit" MethodCredit = "credit" MethodTransfer = "transfer" MethodCard = "card" // pago en línea con tarjeta, cualquiera sea el procesador )
const ( CurrencyCLP = "CLP" CurrencyUSD = "USD" )
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" )
const ( RefundKindReversed = "REVERSED" // pasarela: reversa total RefundKindNullified = "NULLIFIED" // pasarela: anulación total o parcial RefundKindManual = "MANUAL" // mesón: devolución registrada por el cajero )
const ( PendingTimeout = 600 // un pago PENDING (online o máquina) más viejo que esto se concilia GatewayStatusWindow = 7 * 86400 // la pasarela guarda el estado 7 días )
Tiempos (segundos).
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.
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" OpStartTerminalPayment = "start_terminal_payment" OpRefreshTerminalPayment = "refresh_terminal_payment" OpReconcilePayments = "reconcile_payments" )
Operaciones del módulo; en el cable van como "payment_manager.<op>".
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>.
const ( OutcomePending = "pending" OutcomeAuthorized = "authorized" OutcomeRejected = "rejected" OutcomeCancelled = "cancelled" OutcomeExpired = "expired" )
const ErrCannotRead = model.Invalid("payment_manager: cannot read the request")
const ListWindowSeconds = 30 * time.Day
ListWindowSeconds es cuánto hacia atrás muestra la lista de pagos: 30 días.
const ModelName = "payment_manager"
Variables ¶
var ( ResourcePayment = model.ResourceOf(&PaymentModel) ResourcePaymentOnline = model.FeatureResource("payment_online") ResourceRefund = model.ResourceOf(&RefundModel) )
Recursos RBAC. La app concede ResourcePaymentOnline a la identidad anónima para la reserva online; el resto, solo al personal.
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()}, {Name: "terminal", Type: model.Bool()}, }, }
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: "created_by", Type: model.Text()}, }, }
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}, }, }
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}, }, }
var ListPaymentsArgsModel = model.Definition{ Name: "list_payments_args", Fields: model.Fields{ {Name: "tenant_id", Type: model.Text(), NotNull: true}, {Name: "from", Type: model.Int(), OmitEmpty: true}, {Name: "to", Type: model.Int(), OmitEmpty: true}, }, }
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}, }, }
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(), Ref: &PaymentModel, DB: &model.FieldDB{RefColumn: "id"}, NotNull: true}, }, }
var ListRefundsArgs_ = struct { TenantId string PaymentId string }{ TenantId: "tenant_id", PaymentId: "payment_id", }
var PaymentCounterModel = model.Definition{ Name: "payment_counter", Fields: model.Fields{ {Name: "tenant_id", Type: model.Text(), DB: &model.FieldDB{PK: true}, NotNull: true}, {Name: "next_number", Type: model.Int(), NotNull: true}, }, }
var PaymentCounter_ = struct { TenantId string NextNumber string }{ TenantId: "tenant_id", NextNumber: "next_number", }
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, Item: model.ItemDescription, Permitted: model.Permitted{Maximum: 60}}, {Name: "reference_id", Type: model.Text(), NotNull: true, Item: model.ItemDescription, Permitted: model.Permitted{Maximum: 64}}, {Name: "channel", Type: model.Text(), NotNull: true}, {Name: "method", Type: model.Text(), NotNull: true, Item: model.ItemDescription}, {Name: "amount", Type: model.Int(), NotNull: true, Item: model.ItemLabel}, {Name: "currency", Type: model.Text(), NotNull: true, Item: model.ItemDescription, Permitted: model.Permitted{Letters: true, Minimum: 3, Maximum: 3}}, {Name: "status", Type: model.Text(), NotNull: true, Item: model.ItemDescription}, {Name: "refunded_amount", Type: model.Int()}, {Name: "provider_token", Type: model.Text(), OmitEmpty: true}, {Name: "provider", Type: model.Text(), OmitEmpty: true, Permitted: model.Permitted{Letters: true, Numbers: true, Extra: []rune{'_', '-'}, Maximum: 30}}, {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.UnixTime()}, {Name: "paid_at", Type: model.UnixTime(), OmitEmpty: true}, {Name: "updated_at", Type: model.UnixTime()}, {Name: "revision", Type: model.Int()}, }, }
var PaymentStatusResultModel = model.Definition{ Name: "payment_status_result", Fields: model.Fields{ {Name: "id", Type: model.Text()}, {Name: "status", Type: model.Text()}, }, }
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 Provider 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", Provider: "provider", 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", }
var ReconcilePaymentsArgsModel = model.Definition{ Name: "reconcile_payments_args", Fields: model.Fields{ {Name: "tenant_id", Type: model.Text(), NotNull: true}, }, }
var ReconcileResultModel = model.Definition{ Name: "reconcile_result", Fields: model.Fields{ {Name: "closed", Type: model.Int()}, }, }
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, Item: model.ItemLabel}, {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.UnixTime()}, }, }
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(), Ref: &PaymentModel, DB: &model.FieldDB{RefColumn: "id"}, 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()}, {Name: "created_by", Type: model.Text()}, }, }
var RefundPaymentArgs_ = struct { TenantId string Id string PaymentId string Amount string Reason string Method string CreatedBy string }{ TenantId: "tenant_id", Id: "id", PaymentId: "payment_id", Amount: "amount", Reason: "reason", Method: "method", CreatedBy: "created_by", }
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", }
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}}, {Name: "payer_name", Type: model.Text(), Permitted: model.Permitted{Letters: true, Tilde: true, Spaces: true, Maximum: 120}}, {Name: "payer_email", Type: model.Text(), Permitted: model.Permitted{Letters: true, Numbers: true, Extra: []rune{'@', '.', '-', '_', '+'}, Maximum: 120}}, {Name: "payer_phone", Type: model.Text(), Permitted: model.Permitted{Numbers: true, Extra: []rune{'+'}, Maximum: 20}}, {Name: "created_by", Type: model.Text()}, }, }
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()}, {Name: "token_field", Type: model.Text()}, }, }
var StartTerminalPaymentArgsModel = model.Definition{ Name: "start_terminal_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: "created_by", Type: model.Text()}, }, }
Functions ¶
func FormatAmount ¶ added in v0.1.0
func NewView ¶ added in v0.1.0
NewView construye el Presenter de solo lectura de los pagos de los últimos ListWindowSeconds.
Uso:
presenter := paymentmanager.NewView(caller, view.WithTitle("Pagos"))
func Transition ¶ added in v0.1.0
Transition devuelve el estado al que lleva event desde current, o ErrInvalidTransition.
Types ¶
type BankDays ¶ added in v0.4.0
BankDays convierte días hábiles bancarios en fecha. Lo cumple business_calendar.(*Module).BankDayAfter. Ejemplo: deps.BankDays = calendario
type ChargeReader ¶ added in v0.1.0
type ChargeResult ¶ added in v0.1.0
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) 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
Device string // id de la máquina de la caja que cobra las referencias de este módulo; "" = sin máquina
}
type CreateCounterPaymentArgs ¶ added in v0.1.0
type CreateCounterPaymentArgs struct {
TenantId string
Id string
ReferenceModule string
ReferenceId string
Method string
CreatedBy 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 (s *CreateCounterPaymentArgsList) Append() model.Fielder
func (*CreateCounterPaymentArgsList) At ¶ added in v0.1.0
func (s *CreateCounterPaymentArgsList) At(i int) model.Fielder
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 (s *CreateCounterPaymentArgsList) IsNil() bool
func (*CreateCounterPaymentArgsList) Len ¶ added in v0.1.0
func (s *CreateCounterPaymentArgsList) Len() int
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
Charges []ChargeSource // requerido: quién responde el monto de cada módulo de referencia
Terminal Terminal // opcional — nil: el cobro con máquina responde ErrTerminalUnavailable
BankDays BankDays // requerido si el Terminal o el Gateway implementan PayoutTerms
}
Deps son las dependencias que inyecta la raíz de composición.
type Gateway ¶ added in v0.1.0
type Gateway interface {
Provider() string
Start(req GatewayStart) (GatewayStarted, error)
Status(token string) (GatewayResult, error)
Refund(token string, amount int64) (GatewayRefund, error)
}
Gateway es la pasarela de pago en línea. La implementación (github.com/veltylabs/transbank, github.com/veltylabs/tuu) la inyecta la app; verifica sola lo que le devuelve su procesador y llama a CompleteOnlinePayment con el resultado ya verificado. Sus llamadas son síncronas y solo corren en el servidor.
type GatewayRefund ¶ added in v0.1.0
type GatewayResult ¶ added in v0.1.0
type GatewayStart ¶ added in v0.1.0
type GatewayStarted ¶ added in v0.1.0
type GetChargeArgs ¶ added in v0.1.0
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) 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
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 (s *GetPaymentArgsList) At(i int) model.Fielder
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
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 (s *ListPaymentsArgsList) At(i int) model.Fielder
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 (s *ListPaymentsByReferenceArgsList) Append() model.Fielder
func (*ListPaymentsByReferenceArgsList) At ¶ added in v0.1.0
func (s *ListPaymentsByReferenceArgsList) At(i int) model.Fielder
func (*ListPaymentsByReferenceArgsList) DecodeFields ¶ added in v0.1.0
func (s *ListPaymentsByReferenceArgsList) DecodeFields(_ model.FieldReader)
func (*ListPaymentsByReferenceArgsList) EncodeFields ¶ added in v0.1.0
func (s *ListPaymentsByReferenceArgsList) EncodeFields(_ model.FieldWriter)
func (*ListPaymentsByReferenceArgsList) IsNil ¶ added in v0.1.0
func (s *ListPaymentsByReferenceArgsList) IsNil() bool
func (*ListPaymentsByReferenceArgsList) Len ¶ added in v0.1.0
func (s *ListPaymentsByReferenceArgsList) Len() int
type ListRefundsArgs ¶ added in v0.1.0
func ReadOneListRefundsArgs ¶ added in v0.4.28
func ReadOneListRefundsArgs(qb *orm.QB, model *ListRefundsArgs) (*ListRefundsArgs, error)
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) SchemaExt ¶ added in v0.4.28
func (m *ListRefundsArgs) SchemaExt() []model.FieldExt
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 ReadAllListRefundsArgs ¶ added in v0.4.28
func ReadAllListRefundsArgs(qb *orm.QB) (ListRefundsArgsList, error)
func (*ListRefundsArgsList) Append ¶ added in v0.1.0
func (s *ListRefundsArgsList) Append() model.Fielder
func (*ListRefundsArgsList) At ¶ added in v0.1.0
func (s *ListRefundsArgsList) At(i int) model.Fielder
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 (*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(r OnlineResult) (Payment, error)
CompleteOnlinePayment asienta el resultado que el adaptador ya verificó. 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) Due ¶ added in v0.2.0
func (m *Module) Due(tenantId, referenceModule, referenceId string) (amount int64, currency string, err error)
Due devuelve lo que falta cobrar de una referencia: el monto que informa su ChargeReader menos el bruto de los pagos PAID y PARTIALLY_REFUNDED de esa referencia. Un pago PENDING, FAILED, CANCELLED, EXPIRED o REFUNDED no cuenta. El monto nunca viene del cliente.
func (*Module) GetPayment ¶ added in v0.1.0
GetPayment lee un pago del tenant.
func (*Module) ListPayments ¶ added in v0.1.0
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
ListRefunds lista las devoluciones de un pago.
func (*Module) MountOperations ¶ added in v0.1.0
func (m *Module) MountOperations(reg router.OperationRegistry)
func (*Module) NextReceiptNumber ¶ added in v0.1.21
NextReceiptNumber returns this tenant's next sequential receipt number, formatted "R-000001" (zero-padded to 6 digits; grows past it without truncating). It must be gap-free per tenant.
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) ReconcilePayments ¶ added in v0.2.0
ReconcilePayments cierra los pagos online y de máquina que siguen PENDING después de PendingTimeout (diagrama §8). Devuelve cuántos cerró.
func (*Module) RefreshTerminalPayment ¶ added in v0.2.0
RefreshTerminalPayment consulta la máquina y asienta el resultado de un pago PENDING. Un pago que ya no está PENDING se devuelve tal cual.
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.
func (*Module) StartTerminalPayment ¶ added in v0.2.0
func (m *Module) StartTerminalPayment(cmd StartTerminalPaymentArgs) (Payment, error)
StartTerminalPayment crea el pago PENDING y envía el monto a la máquina de la caja del módulo de la referencia. Repetir el mismo id con la misma referencia devuelve el pago guardado.
type OnlineResult ¶ added in v0.3.0
type OnlineResult struct {
PaymentId string
Result GatewayResult
}
OnlineResult es lo que el adaptador ya verificó (firma del aviso o confirmación con el procesador).
type Payer ¶ added in v0.3.0
Payer es quien paga en línea. Los campos pueden ir vacíos; un adaptador que los exige responde error.
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
Provider string
AuthorizationCode string
PaymentTypeCode string
Installments int64
CardLast4 string
ReceiptNumber string
ReturnTo string
CreatedBy string
CreatedAt time.Unix
PaidAt time.Unix
UpdatedAt time.Unix
Revision int64
}
func ReadOnePayment ¶ added in v0.1.0
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)
type PaymentCounter ¶ added in v0.1.21
func ReadOnePaymentCounter ¶ added in v0.1.21
func ReadOnePaymentCounter(qb *orm.QB, model *PaymentCounter) (*PaymentCounter, error)
func (*PaymentCounter) DecodeFields ¶ added in v0.1.21
func (m *PaymentCounter) DecodeFields(r model.FieldReader)
func (*PaymentCounter) EncodeFields ¶ added in v0.1.21
func (m *PaymentCounter) EncodeFields(w model.FieldWriter)
func (*PaymentCounter) IsNil ¶ added in v0.1.21
func (m *PaymentCounter) IsNil() bool
func (*PaymentCounter) ModelName ¶ added in v0.1.21
func (m *PaymentCounter) ModelName() string
func (*PaymentCounter) Pointers ¶ added in v0.1.21
func (m *PaymentCounter) Pointers() []any
func (*PaymentCounter) Schema ¶ added in v0.1.21
func (m *PaymentCounter) Schema() []model.Field
func (*PaymentCounter) Validate ¶ added in v0.1.21
func (m *PaymentCounter) Validate(action byte) error
type PaymentCounterList ¶ added in v0.1.21
type PaymentCounterList []*PaymentCounter
func ReadAllPaymentCounter ¶ added in v0.1.21
func ReadAllPaymentCounter(qb *orm.QB) (PaymentCounterList, error)
func (*PaymentCounterList) Append ¶ added in v0.1.21
func (s *PaymentCounterList) Append() model.Fielder
func (*PaymentCounterList) At ¶ added in v0.1.21
func (s *PaymentCounterList) At(i int) model.Fielder
func (*PaymentCounterList) DecodeFields ¶ added in v0.1.21
func (s *PaymentCounterList) DecodeFields(_ model.FieldReader)
func (*PaymentCounterList) EncodeFields ¶ added in v0.1.21
func (s *PaymentCounterList) EncodeFields(_ model.FieldWriter)
func (*PaymentCounterList) IsNil ¶ added in v0.1.21
func (s *PaymentCounterList) IsNil() bool
func (*PaymentCounterList) Len ¶ added in v0.1.21
func (s *PaymentCounterList) Len() int
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) 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
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 (s *PaymentStatusResultList) Append() model.Fielder
func (*PaymentStatusResultList) At ¶ added in v0.1.0
func (s *PaymentStatusResultList) At(i int) model.Fielder
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 Payout ¶ added in v0.4.0
Payout es lo que responde el adaptador: comisión, IVA de la comisión y días hábiles hasta el depósito. El neto depositado es Amount − Fee − FeeTax.
type PayoutCharge ¶ added in v0.4.0
type PayoutCharge struct {
Amount int64
Currency string
Method string // MethodDebit, MethodCredit o MethodCard
Channel string // ChannelTerminal o ChannelOnline
}
PayoutCharge es el cobro del que se pregunta el abono.
type PayoutTerms ¶ added in v0.4.0
type PayoutTerms interface {
Payout(c PayoutCharge) (Payout, error)
}
PayoutTerms es lo que un adaptador (Terminal o Gateway) sabe de su plan contratado: cuánto descuenta el procesador y en cuántos días hábiles bancarios deposita. Es opcional: el módulo lo detecta con una aserción de tipo; sin él, un cobro con tarjeta se registra sin fecha de depósito ni comisión. Ejemplo: terms, ok := gateway.(paymentmanager.PayoutTerms)
type ReconcilePaymentsArgs ¶ added in v0.2.0
type ReconcilePaymentsArgs struct {
TenantId string
}
func (*ReconcilePaymentsArgs) DecodeFields ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) DecodeFields(r model.FieldReader)
func (*ReconcilePaymentsArgs) EncodeFields ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) EncodeFields(w model.FieldWriter)
func (*ReconcilePaymentsArgs) IsNil ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) IsNil() bool
func (*ReconcilePaymentsArgs) ModelName ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) ModelName() string
func (*ReconcilePaymentsArgs) Pointers ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) Pointers() []any
func (*ReconcilePaymentsArgs) Schema ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) Schema() []model.Field
func (*ReconcilePaymentsArgs) Validate ¶ added in v0.2.0
func (m *ReconcilePaymentsArgs) Validate(action byte) error
type ReconcilePaymentsArgsList ¶ added in v0.2.0
type ReconcilePaymentsArgsList []*ReconcilePaymentsArgs
func (*ReconcilePaymentsArgsList) Append ¶ added in v0.2.0
func (s *ReconcilePaymentsArgsList) Append() model.Fielder
func (*ReconcilePaymentsArgsList) At ¶ added in v0.2.0
func (s *ReconcilePaymentsArgsList) At(i int) model.Fielder
func (*ReconcilePaymentsArgsList) DecodeFields ¶ added in v0.2.0
func (s *ReconcilePaymentsArgsList) DecodeFields(_ model.FieldReader)
func (*ReconcilePaymentsArgsList) EncodeFields ¶ added in v0.2.0
func (s *ReconcilePaymentsArgsList) EncodeFields(_ model.FieldWriter)
func (*ReconcilePaymentsArgsList) IsNil ¶ added in v0.2.0
func (s *ReconcilePaymentsArgsList) IsNil() bool
func (*ReconcilePaymentsArgsList) Len ¶ added in v0.2.0
func (s *ReconcilePaymentsArgsList) Len() int
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 (s *ReconcileResultList) At(i int) model.Fielder
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 time.Unix
}
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)
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) 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
CreatedBy string
}
func ReadOneRefundPaymentArgs ¶ added in v0.4.28
func ReadOneRefundPaymentArgs(qb *orm.QB, model *RefundPaymentArgs) (*RefundPaymentArgs, error)
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) SchemaExt ¶ added in v0.4.28
func (m *RefundPaymentArgs) SchemaExt() []model.FieldExt
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 ReadAllRefundPaymentArgs ¶ added in v0.4.28
func ReadAllRefundPaymentArgs(qb *orm.QB) (RefundPaymentArgsList, error)
func (*RefundPaymentArgsList) Append ¶ added in v0.1.0
func (s *RefundPaymentArgsList) Append() model.Fielder
func (*RefundPaymentArgsList) At ¶ added in v0.1.0
func (s *RefundPaymentArgsList) At(i int) model.Fielder
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
PayerName string
PayerEmail string
PayerPhone string
CreatedBy 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 (s *StartOnlinePaymentArgsList) Append() model.Fielder
func (*StartOnlinePaymentArgsList) At ¶ added in v0.1.0
func (s *StartOnlinePaymentArgsList) At(i int) model.Fielder
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
func (s *StartOnlinePaymentArgsList) Len() int
type StartOnlinePaymentResult ¶ added in v0.1.0
type StartOnlinePaymentResult struct {
PaymentId string
RedirectUrl string
Token string
TokenField 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 (s *StartOnlinePaymentResultList) Append() model.Fielder
func (*StartOnlinePaymentResultList) At ¶ added in v0.1.0
func (s *StartOnlinePaymentResultList) At(i int) model.Fielder
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 (s *StartOnlinePaymentResultList) IsNil() bool
func (*StartOnlinePaymentResultList) Len ¶ added in v0.1.0
func (s *StartOnlinePaymentResultList) Len() int
type StartTerminalPaymentArgs ¶ added in v0.2.0
type StartTerminalPaymentArgs struct {
TenantId string
Id string
ReferenceModule string
ReferenceId string
Method string
CreatedBy string
}
func (*StartTerminalPaymentArgs) DecodeFields ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) DecodeFields(r model.FieldReader)
func (*StartTerminalPaymentArgs) EncodeFields ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) EncodeFields(w model.FieldWriter)
func (*StartTerminalPaymentArgs) IsNil ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) IsNil() bool
func (*StartTerminalPaymentArgs) ModelName ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) ModelName() string
func (*StartTerminalPaymentArgs) Pointers ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) Pointers() []any
func (*StartTerminalPaymentArgs) Schema ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) Schema() []model.Field
func (*StartTerminalPaymentArgs) Validate ¶ added in v0.2.0
func (m *StartTerminalPaymentArgs) Validate(action byte) error
type StartTerminalPaymentArgsList ¶ added in v0.2.0
type StartTerminalPaymentArgsList []*StartTerminalPaymentArgs
func (*StartTerminalPaymentArgsList) Append ¶ added in v0.2.0
func (s *StartTerminalPaymentArgsList) Append() model.Fielder
func (*StartTerminalPaymentArgsList) At ¶ added in v0.2.0
func (s *StartTerminalPaymentArgsList) At(i int) model.Fielder
func (*StartTerminalPaymentArgsList) DecodeFields ¶ added in v0.2.0
func (s *StartTerminalPaymentArgsList) DecodeFields(_ model.FieldReader)
func (*StartTerminalPaymentArgsList) EncodeFields ¶ added in v0.2.0
func (s *StartTerminalPaymentArgsList) EncodeFields(_ model.FieldWriter)
func (*StartTerminalPaymentArgsList) IsNil ¶ added in v0.2.0
func (s *StartTerminalPaymentArgsList) IsNil() bool
func (*StartTerminalPaymentArgsList) Len ¶ added in v0.2.0
func (s *StartTerminalPaymentArgsList) Len() int
type Terminal ¶ added in v0.2.0
type Terminal interface {
Provider() string // nombre del procesador; se guarda en cada pago ("tuu")
Push(req TerminalPush) (TerminalPushed, error) // envía el monto a la máquina; idempotente por RequestId
Status(token string) (TerminalResult, error) // estado del cobro en la máquina
}
Terminal es la máquina de cobro con tarjeta de una caja. La implementación concreta (por ejemplo github.com/veltylabs/tuu) la inyecta la app; sus llamadas son síncronas y solo corren en el servidor.
type TerminalPush ¶ added in v0.2.0
type TerminalPush struct {
RequestId string // = Payment.Id; la máquina lo usa como llave de idempotencia
Device string // id de la máquina en el procesador (TUU: número de serie)
Amount int64
Currency string
Method string // MethodDebit | MethodCredit
Description string // texto corto que muestra la máquina; puede ir vacío
}
type TerminalPushed ¶ added in v0.2.0
type TerminalPushed struct {
Token string // id del cobro en el procesador; se guarda en Payment.ProviderToken
}
Source Files
¶
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. |