|
|
@ -22,16 +22,24 @@ type SnsComponentJsCode2sessionResult struct {
|
|
|
|
Result SnsComponentJsCode2sessionResponse // 结果
|
|
|
|
Result SnsComponentJsCode2sessionResponse // 结果
|
|
|
|
Body []byte // 内容
|
|
|
|
Body []byte // 内容
|
|
|
|
Http gorequest.Response // 请求
|
|
|
|
Http gorequest.Response // 请求
|
|
|
|
Err error // 错误
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionResponse, body []byte, http gorequest.Response, err error) *SnsComponentJsCode2sessionResult {
|
|
|
|
func newSnsComponentJsCode2sessionResult(result SnsComponentJsCode2sessionResponse, body []byte, http gorequest.Response) *SnsComponentJsCode2sessionResult {
|
|
|
|
return &SnsComponentJsCode2sessionResult{Result: result, Body: body, Http: http, Err: err}
|
|
|
|
return &SnsComponentJsCode2sessionResult{Result: result, Body: body, Http: http}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// SnsComponentJsCode2session 小程序登录
|
|
|
|
// SnsComponentJsCode2session 小程序登录
|
|
|
|
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/others/WeChat_login.html
|
|
|
|
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/others/WeChat_login.html
|
|
|
|
func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string) *SnsComponentJsCode2sessionResult {
|
|
|
|
func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string) (*SnsComponentJsCode2sessionResult, error) {
|
|
|
|
|
|
|
|
// 检查
|
|
|
|
|
|
|
|
err := c.checkComponentIsConfig()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
err = c.checkAuthorizerIsConfig()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
// 参数
|
|
|
|
// 参数
|
|
|
|
params := gorequest.NewParams()
|
|
|
|
params := gorequest.NewParams()
|
|
|
|
params["appid"] = c.GetAuthorizerAppid() // 小程序的 appId
|
|
|
|
params["appid"] = c.GetAuthorizerAppid() // 小程序的 appId
|
|
|
@ -41,10 +49,16 @@ func (c *Client) SnsComponentJsCode2session(ctx context.Context, jsCode string)
|
|
|
|
params["component_access_token"] = c.GetComponentAccessToken(ctx) // 第三方平台的component_access_token
|
|
|
|
params["component_access_token"] = c.GetComponentAccessToken(ctx) // 第三方平台的component_access_token
|
|
|
|
// 请求
|
|
|
|
// 请求
|
|
|
|
request, err := c.request(ctx, apiUrl+"/sns/component/jscode2session", params, http.MethodGet)
|
|
|
|
request, err := c.request(ctx, apiUrl+"/sns/component/jscode2session", params, http.MethodGet)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
// 定义
|
|
|
|
// 定义
|
|
|
|
var response SnsComponentJsCode2sessionResponse
|
|
|
|
var response SnsComponentJsCode2sessionResponse
|
|
|
|
err = json.Unmarshal(request.ResponseBody, &response)
|
|
|
|
err = json.Unmarshal(request.ResponseBody, &response)
|
|
|
|
return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request, err)
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return newSnsComponentJsCode2sessionResult(response, request.ResponseBody, request), nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type UserInfo struct {
|
|
|
|
type UserInfo struct {
|
|
|
@ -73,7 +87,7 @@ type UserInfoResult struct {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func newUserInfoResult(result UserInfoResponse, err error) *UserInfoResult {
|
|
|
|
func newUserInfoResult(result UserInfoResponse, err error) *UserInfoResult {
|
|
|
|
return &UserInfoResult{Result: result, Err: err}
|
|
|
|
return &UserInfoResult{Result: result}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// UserInfo 解密用户信息
|
|
|
|
// UserInfo 解密用户信息
|
|
|
|