Documentation ¶
Overview ¶
微信商家平台api
Index ¶
- Constants
- Variables
- func APIBaseURL() string
- func EditAddressSign(appId, url, timestamp, nonceStr, accessToken string) string
- func FormatTime(t time.Time) string
- func JsapiSign(appId, timeStamp, nonceStr, packageStr, signType string, apiKey string) string
- func NativeURL1(appId, mchId, productId, timestamp, nonceStr, apiKey string) string
- func NewTLSHttpClient(certFile, keyFile string) (httpClient *http.Client, err error)
- func NewTLSHttpClient2(certPEMBlock, keyPEMBlock []byte) (httpClient *http.Client, err error)
- func ParseTime(value string) (time.Time, error)
- func Sign(params map[string]string, apiKey string, fn func() hash.Hash) string
- func Sign2(params map[string]string, apiKey string, h hash.Hash) string
- type BizError
- type Client
- type Context
- func (ctx *Context) Abort()
- func (ctx *Context) Get(key string) (value interface{}, exists bool)
- func (ctx *Context) IsAborted() bool
- func (ctx *Context) MustGet(key string) interface{}
- func (ctx *Context) Next()
- func (ctx *Context) Response(msg map[string]string) (err error)
- func (ctx *Context) Set(key string, value interface{})
- func (ctx *Context) SetHandlers(handlers HandlerChain)
- type Error
- type ErrorHandler
- type ErrorHandlerFunc
- type Handler
- type HandlerChain
- type HandlerFunc
- type Server
Constants ¶
View Source
const ( ReturnCodeSuccess = "SUCCESS" ReturnCodeFail = "FAIL" )
View Source
const ( ResultCodeSuccess = "SUCCESS" ResultCodeFail = "FAIL" )
View Source
const ( SignType_MD5 = "MD5" SignType_SHA1 = "SHA1" SignType_HMAC_SHA256 = "HMAC-SHA256" )
Variables ¶
Functions ¶
func APIBaseURL ¶
func APIBaseURL() string
func EditAddressSign ¶
EditAddressSign 收货地址共享接口签名
func NativeURL1 ¶
扫码原生支付模式1的地址
func NewTLSHttpClient ¶
NewTLSHttpClient 创建支持双向证书认证的 http.Client.
func NewTLSHttpClient2 ¶
NewTLSHttpClient2 创建支持双向证书认证的 http.Client.
Types ¶
type BizError ¶
type BizError struct { XMLName struct{} `xml:"xml" json:"-"` ResultCode string `xml:"result_code" json:"result_code"` ErrCode string `xml:"err_code,omitempty" json:"err_code,omitempty"` ErrCodeDesc string `xml:"err_code_des,omitempty" json:"err_code_des,omitempty"` }
业务错误, result_code 不为 SUCCESS 时有返回.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
NewClient 创建一个新的 Client.
appId: 必选; 公众号的 appid mchId: 必选; 商户号 mch_id apiKey: 必选; 商户的签名 key httpClient: 可选; 默认使用 util.DefaultHttpClient
func NewSubMchClient ¶
func NewSubMchClient(appId, mchId, apiKey string, subAppId, subMchId string, httpClient *http.Client) *Client
NewSubMchClient 创建一个新的 Client.
appId: 必选; 公众号的 appid mchId: 必选; 商户号 mch_id apiKey: 必选; 商户的签名 key subAppId: 可选; 公众号的 sub_appid subMchId: 必选; 商户号 sub_mch_id httpClient: 可选; 默认使用 util.DefaultHttpClient
type Context ¶
type Context struct { Server *Server ResponseWriter http.ResponseWriter Request *http.Request RequestBody []byte // 回调请求的 http-body, 就是消息体的原始内容, 记录log可能需要这个信息 Msg map[string]string // 请求消息, return_code == "SUCCESS" && result_code == "SUCCESS" // contains filtered or unexported fields }
Context 是 Handler 处理消息(事件)的上下文环境. 非并发安全!
func (*Context) Abort ¶
func (ctx *Context) Abort()
Abort 阻止系统调用当前 handler 后续的 handlers, 即当前的 handler 处理完毕就返回, 一般在 middleware 中调用.
func (*Context) Get ¶
Get 返回 Context 中 key 对应的 value, 如果 key 存在的返回 (value, true), 否则返回 (nil, false).
func (*Context) Next ¶
func (ctx *Context) Next()
Next 中断当前 handler 程序逻辑执行其后续的 handlers, 一般在 middleware 中调用.
func (*Context) SetHandlers ¶
func (ctx *Context) SetHandlers(handlers HandlerChain)
SetHandlers 设置 handlers 给 Context.Next() 调用, 务必在 Context.Next() 调用之前设置, 否则会 panic.
NOTE: 此方法一般用不到, 除非你自己实现一个 Handler 给 Server 使用, 参考 HandlerChain.
type Error ¶
type Error struct { XMLName struct{} `xml:"xml" json:"-"` ReturnCode string `xml:"return_code" json:"return_code"` ReturnMsg string `xml:"return_msg,omitempty" json:"return_msg,omitempty"` }
协议错误, return_code 不为 SUCCESS 时有返回.
type ErrorHandler ¶
type ErrorHandler interface { // ServeError 处理回调的错误, 比如 xml 解码出错, return_code != "SUCCESS", result_code != "SUCCESS", ... ServeError(http.ResponseWriter, *http.Request, error) }
var DefaultErrorHandler ErrorHandler = ErrorHandlerFunc(defaultErrorHandlerFunc)
type ErrorHandlerFunc ¶
type ErrorHandlerFunc func(http.ResponseWriter, *http.Request, error)
func (ErrorHandlerFunc) ServeError ¶
func (fn ErrorHandlerFunc) ServeError(w http.ResponseWriter, r *http.Request, err error)
type HandlerChain ¶
type HandlerChain []Handler
func (*HandlerChain) AppendHandler ¶
func (chain *HandlerChain) AppendHandler(handlers ...Handler)
func (*HandlerChain) AppendHandlerFunc ¶
func (chain *HandlerChain) AppendHandlerFunc(handlers ...func(*Context))
func (HandlerChain) ServeMsg ¶
func (chain HandlerChain) ServeMsg(ctx *Context)
ServeMsg 实现 Handler 接口
type HandlerFunc ¶
type HandlerFunc func(*Context)
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(appId, mchId, apiKey string, handler Handler, errorHandler ErrorHandler) *Server
NewServer 创建一个新的 Server.
appId: 可选; 公众号的 appid, 如果设置了值则该 Server 只能处理 appid 为该值的消息(事件) mchId: 可选; 商户号 mch_id, 如果设置了值则该 Server 只能处理 mch_id 为该值的消息(事件) apiKey: 必选; 商户的签名 key handler: 必选; 处理微信服务器推送过来的消息(事件)的 Handler errorHandler: 可选; 用于处理 Server 在处理消息(事件)过程中产生的错误, 如果没有设置则默认使用 DefaultErrorHandler
func NewSubMchServer ¶
func NewSubMchServer(appId, mchId, apiKey string, subAppId, subMchId string, handler Handler, errorHandler ErrorHandler) *Server
NewSubMchServer 创建一个新的 Server.
appId: 可选; 公众号的 appid, 如果设置了值则该 Server 只能处理 appid 为该值的消息(事件) mchId: 可选; 商户号 mch_id, 如果设置了值则该 Server 只能处理 mch_id 为该值的消息(事件) apiKey: 必选; 商户的签名 key subAppId: 可选; 公众号的 sub_appid, 如果设置了值则该 Server 只能处理 sub_appid 为该值的消息(事件) subMchId: 可选; 商户号 sub_mch_id, 如果设置了值则该 Server 只能处理 sub_mch_id 为该值的消息(事件) handler: 必选; 处理微信服务器推送过来的消息(事件)的 Handler errorHandler: 可选; 用于处理 Server 在处理消息(事件)过程中产生的错误, 如果没有设置则默认使用 DefaultErrorHandler
Click to show internal directories.
Click to hide internal directories.