1234567891011121314151617181920212223242526272829303132333435363738 |
- package wechat
- import (
- "net/url"
- )
- func keyMini(appid string) string {
- return "wechat:mini:" + appid
- }
- // NewMiniClient new mini client
- func NewMiniClient(appID, appSecret string) *MiniClient {
- key := keyMini(appID)
- if v, ok := cache.Load(key); ok {
- return v.(*MiniClient)
- }
- c := &MiniClient{AppID: appID, AppSecret: appSecret}
- cache.Store(key, c)
- return c
- }
- // GetMiniOpenID get openid by code
- func (wc *MiniClient) GetMiniOpenID(frm FormCode) (openid string, err error) {
- uri := BaseURL + "/sns/jscode2session?"
- args := url.Values{}
- args.Add("grant_type", "authorization_code")
- args.Add("appid", wc.AppID)
- args.Add("secret", wc.AppSecret)
- args.Add("js_code", frm.Code)
- uri += args.Encode()
- var res Response
- if res, err = getJSON(uri); err == nil {
- openid = res.OpenID
- }
- return
- }
|