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.