This commit is contained in:
xxj
2021-09-01 13:43:15 +08:00
parent 893e9ff8ba
commit e2946e6827
5 changed files with 69 additions and 2 deletions

View File

@@ -29,7 +29,7 @@ const ( //消息id定义
HasActvError ErrCode = 1010 // 已被激活
ActvFailure ErrCode = 1011 // 激活码被禁止使用
UserExisted ErrCode = 1012 // 用户已存在
VerifyTimeError ErrCode = 1013 // 验证码请求过于平凡
VerifyTimeError ErrCode = 1013 // 验证码请求过于频繁
MailSendFaild ErrCode = 1014 // 邮箱发送失败
SMSSendFaild ErrCode = 1015 // 手机发送失败
PhoneParameterError ErrCode = 1016 // 手机号格式有问题

View File

@@ -112,7 +112,7 @@ const (
_ErrCode_name_1 = "未知错误token失效"
_ErrCode_name_2 = "成功"
_ErrCode_name_3 = "禁止访问"
_ErrCode_name_4 = "参数无效appid参数无效密文校验失败,aa用户名不存在或密码错误键值对重复未找到无效操作授权码错误已被使用已被激活激活码被禁止使用用户已存在验证码请求过于平凡邮箱发送失败手机发送失败手机号格式有问题验证码错误用户不存在topic已经存在topic不存在bundle_id不存在topic开启处理失败topic处理类型不存在topic不能为空设备不存在"
_ErrCode_name_4 = "参数无效appid参数无效密文校验失败,aa用户名不存在或密码错误键值对重复未找到无效操作授权码错误已被使用已被激活激活码被禁止使用用户已存在验证码请求过于频繁邮箱发送失败手机发送失败手机号格式有问题验证码错误用户不存在topic已经存在topic不存在bundle_id不存在topic开启处理失败topic处理类型不存在topic不能为空设备不存在"
_ErrCode_name_5 = "状态已存在上级菜单不存在菜单不存在用户权限不存在设备ID不存在商品处理类型不存在商品不存在商品正在打折商品可支付类型不存在商品已存在"
_ErrCode_name_6 = "订单不存在商品未打折会话不匹配商品已恢复原价邀请用户不存在邀请用户级数已满用户未授权申请人已存在申请人不存在订单无效微信零钱重复提现提现金额错误微信提现失败重复提交bundle已存在权限已存在权限不存在房型不存在房型已存在房间不存在房间已存在房价代码或房价名称已存在房价代码不存在文件不存在房间未启用班次已存在班次不存在系统时间与营业时间不匹配当前班次已交班支付金额错误存量不足数据存储错误数据添加错误数据更新错误数据删除错误时间错误预定信息错误不允许已过期超过最大值低于最小值已存在未绑定绑定失败计算错误token校验失败应用id未找到已经处理解析文件错误缓存异常模板执行错误请不要平凡操作"
_ErrCode_name_7 = "新消息心跳"

View File

@@ -72,3 +72,23 @@ type wxQrcodedata struct {
Path string `json:"path"` //路径
Width int `json:"width"` //二维码宽度
}
type AccessToken struct {
AccessToken string `json:"access_token"` // 网页授权接口调用凭证,注意此access_token与基础支持的access_token不同
ExpiresIn string `json:"expires_in"` // access_token接口调用凭证超时时间单位
RefreshToken string `json:"refresh_token"` // 用户刷新access_token
Openid string `json:"openid"` // 用户唯一标识请注意在未关注公众号时用户访问公众号的网页也会产生一个用户和公众号唯一的OpenID
Scope string `json:"scope"` // 用户授权的作用域,使用逗号(,)分隔
}
// WxUserinfo 微信用户信息
type WxUserinfo struct {
Openid string `json:"openid"` // 微信用户唯一标识符,,微信用户唯一标识符
NickName string `json:"nickname"` // 用户昵称
Sex int `json:"sex"` // 用户的性别
City string `json:"city"` // 用户所在城市
Province string `json:"province"` // 用户所在省份
Country string `json:"country"` // 用户所在国家
Headimgurl string `json:"headimgurl"` // 头像地址
Privilege []string `json:"privilege"` // 户特权信息json 数组如微信沃卡用户为chinaunicom
}

View File

@@ -33,6 +33,11 @@ type WxTools interface {
WxEnterprisePay(openID, tradeNO, desc, ipAddr string, amount int) bool // 企业付款
GetShareQrcode(path string, scene, page string) (ret QrcodeRet) // 获取小程序码
GetWxQrcode(path, page string, width int) (ret QrcodeRet) // 获取小程序二维码 (有限个)
// --------------------h5------------------------------
GetWebOauth(code string) (*AccessToken, error) // 授权
GetWebUserinfo(openid, accessToken string) (*WxUserinfo, error) // 获取用户信息
// ----------------------------------------------------
}
// New 新建及 初始化配置信息

View File

@@ -1,6 +1,7 @@
package weixin
import (
"encoding/json"
"io/ioutil"
"net/http"
@@ -26,3 +27,44 @@ func (_wx *wxTools) SmallAppOauth(jscode string) string {
}
return string(body)
}
// GetWebOauth 网页授权
func (_wx *wxTools) GetWebOauth(code string) (*AccessToken, error) {
var url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + _wx.wxInfo.AppID + "&secret=" +
_wx.wxInfo.AppSecret + "&code=" + code + "&grant_type=authorization_code"
resp, e := http.Get(url)
if e != nil {
return nil, e
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, e
}
var res AccessToken
json.Unmarshal(body, &res)
return &res, nil
}
// GetWebUserinfo 获取用户信息
func (_wx *wxTools) GetWebUserinfo(openid, accessToken string) (*WxUserinfo, error) {
var url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken + "&openid=" + openid + "&lang=zh_CN"
resp, e := http.Get(url)
if e != nil {
return nil, e
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, e
}
var res WxUserinfo
json.Unmarshal(body, &res)
return &res, nil
}