config

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// OperationPayment 付款操作
	OperationPayment = "payment"
	// OperationRefund 退款操作
	OperationRefund = "refund"
)
View Source
const (
	// TradeStatusWaitBuyerPay 交易创建,等待买家付款
	TradeStatusWaitBuyerPay = "WAIT_BUYER_PAY"
	// TradeStatusClosed 未付款交易超时关闭,或支付完成后全额退款
	TradeStatusClosed = "TRADE_CLOSED"
	// TradeStatusSuccess 交易支付成功
	TradeStatusSuccess = "TRADE_SUCCESS"
	// TradeStatusFinished 交易结束,不可退款
	TradeStatusFinished = "TRADE_FINISHED"
	// TradeStatusException 交易异常(用于退款)
	TradeStatusException = "TRADE_EXCEPTION"
	// TradeStatusProcessing 交易中(用于退款)
	TradeStatusProcessing = "TRADE_PROCESSING"
)

Variables

View Source
var (
	ErrTradeAlreadyExists  = errors.New("payment trade already exists")
	ErrUnknownDevice       = errors.New("unknown device type")
	ErrSignature           = errors.New("signature error")
	ErrPaymentFailed       = errors.New("payment failed")
	ErrRefundAlreadyExists = errors.New("refund request already exists")
	ErrRefundFailed        = errors.New("refund failed")
	ErrUnsupported         = errors.New("unsupported")

	ErrAppIDRequired     = errors.New(`AppID required`)
	ErrAppSecretRequired = errors.New(`AppSecret required`)
	ErrSubtypeRequired   = errors.New(`Subtype required`)
)

Functions

func IsClosed added in v0.0.21

func IsClosed(status string) bool

func IsFinished added in v0.0.21

func IsFinished(status string) bool

func IsOK

func IsOK(err error) bool

func IsProcessing added in v0.0.21

func IsProcessing(status string) bool

IsProcessing 是否退款中

func IsSuccess added in v0.0.21

func IsSuccess(status string) bool

func IsWaitPay added in v0.0.21

func IsWaitPay(status string) bool

func ParseMultiAccount added in v0.3.14

func ParseMultiAccount(cfg string, subtype string) string

func RegisterAccountSetDefaults added in v0.2.2

func RegisterAccountSetDefaults(platform string, fn func(a *Account))

func UnregisterAccountSetDefaults added in v0.2.2

func UnregisterAccountSetDefaults(platform string)

Types

type Account

type Account struct {
	Debug      bool     `json:"debug"`                //是否debug环境(如果支持沙箱环境则自动采用沙箱环境)
	AppID      string   `json:"appID,omitempty"`      //即AppID
	AppSecret  string   `json:"appSecret,omitempty"`  //即AppKey
	MerchantID string   `json:"merchantID,omitempty"` //商家ID
	PublicKey  string   `json:"publicKey,omitempty"`  //公钥
	PrivateKey string   `json:"privateKey,omitempty"` //私钥
	CertPath   string   `json:"certPath,omitempty"`   //证书路径
	WebhookID  string   `json:"webhookID,omitempty"`  //Paypal使用的webhook id
	Currencies []string `json:"currencies,omitempty"` //支持的币种
	Subtype    *Subtype `json:"subtype,omitempty"`    //子类型(用于选择第四方平台内支持的支付方式)
	Sort       int      `json:"sort"`                 //排序编号
	Options    Options  `json:"options,omitempty"`    //其它选项
}

Account 付款平台账号参数

func NewAccount

func NewAccount() *Account

func (*Account) FromStore

func (c *Account) FromStore(v echo.Store) *Account

func (*Account) Lite added in v0.2.13

func (c *Account) Lite() *AccountLite

func (*Account) ParseAppID added in v0.3.14

func (c *Account) ParseAppID(subtype string) (appID string)

func (*Account) ParseAppSecret added in v0.3.14

func (c *Account) ParseAppSecret(subtype string) (appSecret string)

func (*Account) SetDefaults added in v0.2.2

func (c *Account) SetDefaults(platform string) *Account

type AccountLite added in v0.2.13

type AccountLite struct {
	Debug      bool     `json:"debug"`                //是否debug环境(如果支持沙箱环境则自动采用沙箱环境)
	Currencies []string `json:"currencies,omitempty"` //支持的币种
	Subtype    *Subtype `json:"subtype,omitempty"`    //子类型(用于选择第四方平台内支持的支付方式)
	Sort       int      `json:"sort"`                 //排序编号
	Options    Options  `json:"options,omitempty"`    //其它选项
}

AccountLite Account脱敏后的结构体

type Currency added in v0.0.5

type Currency string

Currency 币种

const (
	// USD 美元
	USD Currency = `USD`
	// CNY 人民币
	CNY Currency = `CNY`
	// RUB 俄罗斯卢布
	RUB Currency = `RUB`
	// EUR 欧元
	EUR Currency = `EUR`
	// GBP 英镑
	GBP Currency = `GBP`
	// HKD 港元
	HKD Currency = `HKD`
	// JPY 日元
	JPY Currency = `JPY`
	// KRW 韩元
	KRW Currency = `KRW`
	// AUD 澳元
	AUD Currency = `AUD`
	// CAD 加元
	CAD Currency = `CAD`
)

func (Currency) String added in v0.0.5

func (c Currency) String() string

type Device

type Device string

Device 设备类型

const (
	// App 在App支付
	App Device = `app`
	// Web 在电脑端网页上支付
	Web Device = `web`
	// Wap 在手机端网页上支付
	Wap Device = `wap`
)

func DeviceList added in v0.0.22

func DeviceList() []Device

func (Device) IsMobile added in v0.0.29

func (a Device) IsMobile() bool

IsMobile 是否是移动设备

func (Device) IsSupported added in v0.0.22

func (a Device) IsSupported() bool

IsSupported 是否是支持的设备

func (Device) String added in v0.0.13

func (a Device) String() string

type GoodsType

type GoodsType int

GoodsType 商品类型

const (
	// VirtualGoods 虚拟商品
	VirtualGoods GoodsType = iota
	// PhysicalGoods 实物类商品
	PhysicalGoods
)

func (GoodsType) Name added in v0.0.13

func (a GoodsType) Name() string

func (GoodsType) String

func (a GoodsType) String() string

type OK

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

func NewOK

func NewOK(msg error) *OK

func NewOKString

func NewOKString(msg string) *OK

func (*OK) OK

func (s *OK) OK()

type OKer

type OKer interface {
	OK()
}

type Options

type Options struct {
	IconClass string `json:"iconClass,omitempty"` //图标class属性值
	IconImage string `json:"iconImage,omitempty"` //图标图片网址
	Title     string `json:"title,omitempty"`     //支付网关标题(中文)
	Name      string `json:"name,omitempty"`      //支付网关平台标识(英文)
	Extra     echo.H `json:"extra,omitempty"`     //扩展数据
}

type Pay

type Pay struct {
	Platform       string    //付款平台(alipay/wechat/paypal)
	Subtype        string    //子类型(用于选择第四方平台内支持的支付方式)
	Device         Device    //付款时的设备
	NotifyURL      string    //接收付款结果通知的网址
	ReturnURL      string    //支付操作后返回的网址
	CancelURL      string    //取消付款后返回的网址
	Subject        string    //主题描述
	OutTradeNo     string    //业务方的交易号(我们的订单号)
	Amount         float64   //支付金额
	Currency       Currency  //币种
	GoodsType      GoodsType //商品类型
	PassbackParams string    //回传参数
	ExpiredAt      time.Time //支付过期时间
	Options        echo.H    //其它选项
}

Pay 付款参数

func (*Pay) GoodsTypeName

func (pay *Pay) GoodsTypeName() string

type PayResponse added in v0.0.20

type PayResponse struct {
	TradeNo        string // 支付网关交易号
	RedirectURL    string
	QRCodeImageURL string
	QRCodeContent  string
	Params         echo.H
	Raw            interface{}
}

type Query added in v0.0.12

type Query struct {
	Platform    string //付款平台
	Subtype     string //子类型(用于选择第四方平台内支持的支付方式)
	TradeNo     string //付款平台的交易号
	OutTradeNo  string //业务方的交易号(我们的订单号)
	RefundNo    string //付款平台的退款单号 (退款查询时有效)
	OutRefundNo string //业务方的退款单号 (退款查询时有效)
	Options     echo.H //其它选项
}

Query 查询参数

func NewQuery added in v0.1.1

func NewQuery() *Query

func (*Query) CopyFromRefund added in v0.1.1

func (q *Query) CopyFromRefund(f *Refund) *Query

type Refund

type Refund struct {
	Platform     string   //付款平台
	Subtype      string   //子类型(用于选择第四方平台内支持的支付方式)
	TradeNo      string   //付款平台的交易号
	OutTradeNo   string   //业务方的交易号(我们的订单号)
	RefundNo     string   //付款平台退单号
	OutRefundNo  string   //业务方退单号
	TotalAmount  float64  //订单总金额(alipay可不传)
	RefundAmount float64  //退款金额
	RefundReason string   //退款原因(选填)
	Currency     Currency //币种
	NotifyURL    string   //接收退款结果通知的网址
	Options      echo.H   //其它选项
}

Refund 退款参数

type RefundItem added in v0.0.20

type RefundItem struct {
	Status      string  // 退款状态
	RefundFee   float64 // 退款金额
	OutRefundNo string  // 业务方退款单号
	RefundNo    string  // 支付网关退款号
}

RefundItem 退款项数据

func NewRefundItem added in v0.0.20

func NewRefundItem() *RefundItem

NewRefundItem 构造一个退款项数据实例

type Result added in v0.0.20

type Result struct {
	Operation string // 操作类型
	Status    string // 状态

	TradeNo    string // 支付网关交易号
	OutTradeNo string // 业务方交易号

	TotalAmount float64 // 订单总金额
	Currency    string  // 币种

	PayAmount   float64 // 在网关支付的金额(如果为0,表示和订单的金额一致)
	PayCurrency string  // 在网关支付的币种(如果为空,表示和订单的币种一样)

	TransactionFeeValue    float64 // 交易手续费金额
	TransactionFeeCurrency string  // 交易手续费币种

	Reason         string // 失败原因
	PassbackParams string // 原样回传参数

	OutRefundNo string        // 本地退款单号(退款时有效)
	RefundNo    string        // 支付网关退款号
	RefundFee   float64       // 退款金额(退款时有效)
	RefundItems []*RefundItem // 退款项列表

	// - 原始数据 -
	Raw interface{}
}

Result 付款或退款结果数据

func NewResult added in v0.0.20

func NewResult() *Result

NewResult 构造一个付款或退款结果数据实例

func (*Result) AddRefundItem added in v0.0.20

func (r *Result) AddRefundItem(items ...*RefundItem) *Result

AddRefundItem 添加退款项数据

func (*Result) GetPayAmount added in v0.0.32

func (r *Result) GetPayAmount() float64

func (*Result) GetPayCurrency added in v0.0.33

func (r *Result) GetPayCurrency() string

func (*Result) GetRefundItem added in v0.0.20

func (r *Result) GetRefundItem(outRefundNo string, refundNo string) *RefundItem

GetRefundItem 获取退款项数据

type SortByAccount added in v0.2.13

type SortByAccount []*Account

func (SortByAccount) Len added in v0.2.13

func (s SortByAccount) Len() int

func (SortByAccount) Less added in v0.2.13

func (s SortByAccount) Less(i, j int) bool

func (SortByAccount) Lite added in v0.2.13

func (s SortByAccount) Lite() []*AccountLite

func (SortByAccount) Sort added in v0.2.13

func (s SortByAccount) Sort() SortByAccount

func (SortByAccount) Swap added in v0.2.13

func (s SortByAccount) Swap(i, j int)

type Subtype added in v0.2.1

type Subtype struct {
	Label   string           `json:"label"`
	Options []*SubtypeOption `json:"options"`
}

func NewSubtype added in v0.2.2

func NewSubtype(label string, options ...*SubtypeOption) *Subtype

func (*Subtype) Add added in v0.2.2

func (s *Subtype) Add(o ...*SubtypeOption) *Subtype

func (*Subtype) Exists added in v0.2.7

func (s *Subtype) Exists(value string) bool

func (*Subtype) GetOption added in v0.2.7

func (s *Subtype) GetOption(value string) *SubtypeOption

type SubtypeOption added in v0.2.1

type SubtypeOption struct {
	Disabled bool   `json:"disabled"`
	Value    string `json:"value"`
	Text     string `json:"text"`
	Image    string `json:"image"`
	Checked  bool   `json:"checked"`
}

type Support added in v0.3.0

type Support int
const (
	SupportPayNotify Support = iota + 1
	SupportPayQuery
	SupportRefund
	SupportRefundNotify
	SupportRefundQuery
)

type Supports added in v0.3.0

type Supports []Support

func (Supports) IsSupported added in v0.3.0

func (a Supports) IsSupported(s Support) bool

Jump to

Keyboard shortcuts

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