Documentation
¶
Index ¶
- func Register(nm map[int]string)
- func RegisterTrader(key Trader, provider Provider)
- type Callback
- type Config
- type ConfigService
- type NotifyService
- type OrderStatus
- type ParaEncoder
- type ParaSigner
- type Provider
- type QueryResult
- type QueryService
- type Recharge
- type RechargeStatus
- type ReqPara
- func (rp *ReqPara) Add(name, value string, sign, query bool) *ReqPara
- func (rp *ReqPara) AddQuery(name, value string) *ReqPara
- func (rp *ReqPara) AddSign(name, value string) *ReqPara
- func (rp *ReqPara) Get(name string) *paraWrapper
- func (rp *ReqPara) ToSign(signer ParaSigner) string
- func (rp *ReqPara) ToUrl(gateway string, encoder ParaEncoder) string
- type ThirdPartyPayment
- type Trader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterTrader ¶
Types ¶
type Callback ¶
type Callback interface {
// Finish 第三方支付完成后的通知回调,业务系统根据回调处理相关的业务,如果业务处理失败则抛出异常。
// @param no 业务系统的充值流水号
// @param trader 第三方支付平台
// @param tradeNo 交易平台中的唯一流水号
// @param money 充值金额,不指定则使用订单默认的金额
// @param arrivalTime 到账时间,不指定则使用系统时间
// @param success 是否充值成功
Finish(no string, trader Trader, traderNo string, money float64, arrivalTime int64, success bool)
// FinishHasUID 第三方支付完成后的通知回调,业务系统根据回调处理相关的业务,如果业务处理失败则抛出异常。
// @param no 业务系统的充值流水号
// @param trader 第三方支付平台
// @param tradeNo 交易平台中的唯一流水号
// @param money 充值金额,不指定则使用订单默认的金额
// @param arrivalTime 到账时间,不指定则使用系统时间
// @param traderUID 交易会员号
// @param success 是否充值成功
FinishHasUID(no string, trader Trader, traderNo string, money float64, arrivalTime int64, traderUID string, success bool)
// RechargeByNo 根据充值记录的唯一流水号获取对应的充值记录,不存在则返回Null。
RechargeByNo(no string) Recharge
}
Callback 第三方支付平台的通知回调,业务系统实现。
type Config ¶
type Config struct {
Uid string `json:"uid"` // 该账户的唯一标示(同平台内唯一)
Weight int `json:"weight"` // 权重值(正数数字,为0表示不使用)
Account string `json:"account"` // 支付平台账户(登录账号,非API接口账号)
Key string `json:"key"` // API接口的标示(如partner、merchantId等)
Secret string `json:"secret"` // API接口的密钥
Props map[string]string `json:"props"` // 其他属性
}
type ConfigService ¶
type NotifyService ¶
type NotifyService interface {
// Trader 获取当前第三方支付平台的信息。
Trader() Trader
// Sync 处理支付平台的同步通知,通过浏览器的重定向通知
Sync(request *http.Request, response *http.Response)
// Async 处理支付平台的异步通知,支付平台直接通知平台服务器
Async(request *http.Request, response *http.Response)
}
NotifyService 第三方支付平台的通知接口定义。
type OrderStatus ¶
type OrderStatus int
OrderStatus 第三方平台的订单状态。
const ( Y OrderStatus = iota N P F )
func (OrderStatus) Name ¶
func (t OrderStatus) Name() string
func (OrderStatus) String ¶
func (t OrderStatus) String() string
type ParaEncoder ¶
type ParaEncoder interface {
// EncodeValue 对给定的参数值进行编码后返回。
// @param name 参数名称
// @param value 参数值
// @return string, error
EncodeValue(name, value string) string
}
ParaEncoder 请求参数的编码接口。
type ParaSigner ¶
type ParaSigner interface {
// Assembly 对指定的参数进行组织后返回该参数签名的表现形式。
// @param name 参数名称
// @param value 参数值
// @param index 参数在所有需要签名的参数中的位置序号,从0开始
// @param totals 所有需要签名的参数总数
Assembly(name, value string, index, totals int) string
}
ParaSigner 请求参数的签名处理接口。
type Provider ¶
type Provider interface {
Pay(para *ReqPara)
NotifyService() NotifyService
QueryService() QueryService
}
func GetProvider ¶
type QueryResult ¶
type QueryResult struct {
No string // 支付订单流水号
TppStatus OrderStatus // 第三方平台上订单状态
TppNo string // 第三方平台的订单号
PayTime string // 订单支付时间(仅在状态为Y时才必须有),格式:yyyy-MM-dd HH:mm:ss
PayMoney int64 // 订单支付金额(仅在状态为Y时才必须有),单位分
}
QueryResult 支付订单在第三方平台的查询结果封装。
type QueryService ¶
type QueryService interface {
// Trader 获取本查询结果支持的第三方平台。
Trader() Trader
// Query 根据给定的充值记录查询本平台上的订单信息并返回。
Query(rv Recharge) (QueryResult, error)
}
QueryService 第三方支付平台的查询业务接口定义。
type RechargeStatus ¶
type RechargeStatus int
const ( NEW RechargeStatus = iota PROCESS SUCCESS FAILED CANCEL REFUND PAYED //已支付 // INIT 只对线下汇款充值才有效,为上传凭证之前的 INIT )
func (RechargeStatus) Name ¶
func (t RechargeStatus) Name() string
func (RechargeStatus) String ¶
func (t RechargeStatus) String() string
type ReqPara ¶
type ReqPara struct {
// contains filtered or unexported fields
}
ReqPara 第三方支付平台的请求参数封装。
func NewReqPara ¶
func NewReqPara() *ReqPara
func (*ReqPara) Add ¶
Add 添加一个参数信息,该方法会按照添加调用顺序来顺序组装相应的参数参与签名或提交。 @param name 参数名称 @param value 参数值 @param sign 是否参与签名 @param query 是否添加到请求参数中
func (*ReqPara) ToSign ¶
func (rp *ReqPara) ToSign(signer ParaSigner) string
ToSign 将所有需要签名的参数进行组装后返回待签名字符串。
type ThirdPartyPayment ¶
type ThirdPartyPayment struct {
// contains filtered or unexported fields
}
func NewThirdPartyPayment ¶
func NewThirdPartyPayment(config ConfigService, callback Callback) ThirdPartyPayment
func (ThirdPartyPayment) Config ¶
func (tpp ThirdPartyPayment) Config(trader Trader, uid string) Config
func (ThirdPartyPayment) Query ¶
func (tpp ThirdPartyPayment) Query(rvo Recharge, sync bool) QueryResult
func (ThirdPartyPayment) QueryConfig ¶
func (tpp ThirdPartyPayment) QueryConfig(uid string) Config
type Trader ¶
type Trader int64
func (Trader) AsyncNotifyUrl ¶
AsyncNotifyUrl 获取支付平台异步通知的接收地址(全http地址)
func (Trader) SyncNotifyUrl ¶
SyncNotifyUrl 获取支付平台同步通知的接收地址(全http地址)
Click to show internal directories.
Click to hide internal directories.