- update wechatminiprogram

master
李光春 2 years ago
parent 0946817c78
commit 344a515fba

@ -18,7 +18,7 @@ type GetCallBackIpResult struct {
Err error // 错误
}
func NewGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gorequest.Response, err error) *GetCallBackIpResult {
func newGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gorequest.Response, err error) *GetCallBackIpResult {
return &GetCallBackIpResult{Result: result, Body: body, Http: http, Err: err}
}
@ -27,9 +27,9 @@ func NewGetCallBackIpResult(result GetCallBackIpResponse, body []byte, http gore
// https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_the_WeChat_server_IP_address.html#2.%20%E8%8E%B7%E5%8F%96%E5%BE%AE%E4%BF%A1callback%20IP%E5%9C%B0%E5%9D%80
func (c *Client) GetCallBackIp() *GetCallBackIpResult {
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=%s", c.getAccessToken()), map[string]interface{}{}, http.MethodGet)
request, err := c.request(fmt.Sprintf(apiUrl+"/cgi-bin/getcallbackip?access_token=%s", c.getAccessToken()), map[string]interface{}{}, http.MethodGet)
// 定义
var response GetCallBackIpResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewGetCallBackIpResult(response, request.ResponseBody, request, err)
return newGetCallBackIpResult(response, request.ResponseBody, request, err)
}

@ -19,19 +19,19 @@ type SubscribeMessageSendResult struct {
Err error // 错误
}
func NewSubscribeMessageSendResult(result SubscribeMessageSendResponse, body []byte, http gorequest.Response, err error) *SubscribeMessageSendResult {
func newSubscribeMessageSendResult(result SubscribeMessageSendResponse, body []byte, http gorequest.Response, err error) *SubscribeMessageSendResult {
return &SubscribeMessageSendResult{Result: result, Body: body, Http: http, Err: err}
}
// SubscribeMessageSend 发送订阅消息
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
func (c *Client) SubscribeMessageSend(notMustParams ...Params) *SubscribeMessageSendResult {
func (c *Client) SubscribeMessageSend(notMustParams ...gorequest.Params) *SubscribeMessageSendResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/cgi-bin/message/subscribe/send?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response SubscribeMessageSendResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewSubscribeMessageSendResult(response, request.ResponseBody, request, err)
return newSubscribeMessageSendResult(response, request.ResponseBody, request, err)
}

@ -21,7 +21,7 @@ type CgiBinTokenResult struct {
Err error // 错误
}
func NewCgiBinTokenResult(result CgiBinTokenResponse, body []byte, http gorequest.Response, err error) *CgiBinTokenResult {
func newCgiBinTokenResult(result CgiBinTokenResponse, body []byte, http gorequest.Response, err error) *CgiBinTokenResult {
return &CgiBinTokenResult{Result: result, Body: body, Http: http, Err: err}
}
@ -30,9 +30,9 @@ func NewCgiBinTokenResult(result CgiBinTokenResponse, body []byte, http goreques
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html
func (c *Client) CgiBinToken() *CgiBinTokenResult {
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", c.getAppId(), c.getAppSecret()), map[string]interface{}{}, http.MethodGet)
request, err := c.request(fmt.Sprintf(apiUrl+"/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", c.getAppId(), c.getAppSecret()), map[string]interface{}{}, http.MethodGet)
// 定义
var response CgiBinTokenResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewCgiBinTokenResult(response, request.ResponseBody, request, err)
return newCgiBinTokenResult(response, request.ResponseBody, request, err)
}

@ -21,19 +21,19 @@ type CgiBinWxaAppCreateWxaQrCodeResult struct {
Err error // 错误
}
func NewCgiBinWxaAppCreateWxaQrCodeResult(result CgiBinWxaAppCreateWxaQrCodeResponse, body []byte, http gorequest.Response, err error) *CgiBinWxaAppCreateWxaQrCodeResult {
func newCgiBinWxaAppCreateWxaQrCodeResult(result CgiBinWxaAppCreateWxaQrCodeResponse, body []byte, http gorequest.Response, err error) *CgiBinWxaAppCreateWxaQrCodeResult {
return &CgiBinWxaAppCreateWxaQrCodeResult{Result: result, Body: body, Http: http, Err: err}
}
// CgiBinWxaAppCreateWxaQrCode 获取小程序二维码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html
func (c *Client) CgiBinWxaAppCreateWxaQrCode(notMustParams ...Params) *CgiBinWxaAppCreateWxaQrCodeResult {
func (c *Client) CgiBinWxaAppCreateWxaQrCode(notMustParams ...gorequest.Params) *CgiBinWxaAppCreateWxaQrCodeResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/cgi-bin/wxaapp/createwxaqrcode?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response CgiBinWxaAppCreateWxaQrCodeResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewCgiBinWxaAppCreateWxaQrCodeResult(response, request.ResponseBody, request, err)
return newCgiBinWxaAppCreateWxaQrCodeResult(response, request.ResponseBody, request, err)
}

@ -7,13 +7,6 @@ import (
"gorm.io/gorm"
)
const (
WECHAT_API_URL = "https://api.weixin.qq.com"
WECHAT_MP_URL = "https://mp.weixin.qq.com"
CGIUrl = WECHAT_API_URL + "/cgi-bin"
UnionUrl = WECHAT_API_URL + "/union"
)
type ConfigClient struct {
AppId string // 小程序唯一凭证,即 appId
AppSecret string // 小程序唯一凭证密钥,即 appSecret
@ -27,28 +20,30 @@ type ConfigClient struct {
// Client 微信小程序服务
type Client struct {
client *gorequest.App // 请求客户端
log *golog.Api // 日志服务
logTableName string // 日志表名
logStatus bool // 日志状态
config *ConfigClient // 配置
client *gorequest.App // 请求客户端
log *golog.ApiClient // 日志服务
logStatus bool // 日志状态
config *ConfigClient // 配置
}
func NewClient(config *ConfigClient) *Client {
func NewClient(config *ConfigClient) (*Client, error) {
var err error
c := &Client{config: config}
c.client = gorequest.NewHttp()
if c.config.PgsqlDb != nil {
c.logStatus = true
c.logTableName = "wechatminiprogram"
c.log = golog.NewApi(&golog.ApiConfig{
c.log, err = golog.NewApiClient(&golog.ConfigApiClient{
Db: c.config.PgsqlDb,
TableName: c.logTableName,
TableName: logTable,
})
if err != nil {
return nil, err
}
}
return c
return c, nil
}
// ConfigApp 配置
@ -57,39 +52,3 @@ func (c *Client) ConfigApp(appId, appSecret string) *Client {
c.config.AppSecret = appSecret
return c
}
// 请求接口
func (c *Client) request(url string, params map[string]interface{}, method string) (resp gorequest.Response, err error) {
// 创建请求
client := c.client
// 设置请求地址
client.SetUri(url)
// 设置方式
client.SetMethod(method)
// 设置格式
client.SetContentTypeJson()
// 设置参数
client.SetParams(params)
// 发起请求
request, err := client.Request()
if err != nil {
return gorequest.Response{}, err
}
// 日志
if c.logStatus == true {
go c.postgresqlLog(request)
}
return request, err
}
func (c *Client) GetAppId() string {
return c.config.AppId
}

@ -0,0 +1,9 @@
package wechatminiprogram
const (
apiUrl = "https://api.weixin.qq.com"
)
const (
logTable = "wechatminiprogram"
)

@ -12,3 +12,7 @@ func (c *Client) getAccessToken() string {
c.config.AccessToken = c.GetAccessToken()
return c.config.AccessToken
}
func (c *Client) GetAppId() string {
return c.config.AppId
}

@ -1,27 +0,0 @@
package wechatminiprogram
// Params 请求参数
type Params map[string]interface{}
func NewParams() Params {
p := make(Params)
return p
}
func (c *Client) NewParamsWith(params ...Params) Params {
p := make(Params)
for _, v := range params {
p.SetParams(v)
}
return p
}
func (p Params) Set(key string, value interface{}) {
p[key] = value
}
func (p Params) SetParams(params Params) {
for key, value := range params {
p[key] = value
}
}

@ -0,0 +1,35 @@
package wechatminiprogram
import "go.dtapp.net/library/utils/gorequest"
// 请求接口
func (c *Client) request(url string, params map[string]interface{}, method string) (gorequest.Response, error) {
// 创建请求
client := c.client
// 设置请求地址
client.SetUri(url)
// 设置方式
client.SetMethod(method)
// 设置格式
client.SetContentTypeJson()
// 设置参数
client.SetParams(params)
// 发起请求
request, err := client.Request()
if err != nil {
return gorequest.Response{}, err
}
// 日志
if c.logStatus == true {
go c.postgresqlLog(request)
}
return request, err
}

@ -22,7 +22,7 @@ type SnsJsCode2sessionResult struct {
Err error // 错误
}
func NewSnsJsCode2sessionResult(result SnsJsCode2sessionResponse, body []byte, http gorequest.Response, err error) *SnsJsCode2sessionResult {
func newSnsJsCode2sessionResult(result SnsJsCode2sessionResponse, body []byte, http gorequest.Response, err error) *SnsJsCode2sessionResult {
return &SnsJsCode2sessionResult{Result: result, Body: body, Http: http, Err: err}
}
@ -30,9 +30,9 @@ func NewSnsJsCode2sessionResult(result SnsJsCode2sessionResponse, body []byte, h
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html
func (c *Client) SnsJsCode2session(jsCode string) *SnsJsCode2sessionResult {
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", c.getAppId(), c.getAppSecret(), jsCode), map[string]interface{}{}, http.MethodGet)
request, err := c.request(fmt.Sprintf(apiUrl+"/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", c.getAppId(), c.getAppSecret(), jsCode), map[string]interface{}{}, http.MethodGet)
// 定义
var response SnsJsCode2sessionResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewSnsJsCode2sessionResult(response, request.ResponseBody, request, err)
return newSnsJsCode2sessionResult(response, request.ResponseBody, request, err)
}

@ -35,7 +35,7 @@ type UserInfoResult struct {
Err error // 错误
}
func NewUserInfoResult(result UserInfoResponse, err error) *UserInfoResult {
func newUserInfoResult(result UserInfoResponse, err error) *UserInfoResult {
return &UserInfoResult{Result: result, Err: err}
}
@ -44,34 +44,34 @@ func (c *Client) UserInfo(param UserInfo) *UserInfoResult {
var response UserInfoResponse
aesKey, err := base64.StdEncoding.DecodeString(param.SessionKey)
if err != nil {
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
cipherText, err := base64.StdEncoding.DecodeString(param.EncryptedData)
if err != nil {
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
ivBytes, err := base64.StdEncoding.DecodeString(param.Iv)
if err != nil {
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
block, err := aes.NewCipher(aesKey)
if err != nil {
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
mode := cipher.NewCBCDecrypter(block, ivBytes)
mode.CryptBlocks(cipherText, cipherText)
cipherText, err = c.pkcs7Unpaid(cipherText, block.BlockSize())
if err != nil {
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
err = json.Unmarshal(cipherText, &response)
if err != nil {
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
if response.Watermark.AppID != c.getAppId() {
return NewUserInfoResult(response, errors.New("c id not match"))
return newUserInfoResult(response, errors.New("c id not match"))
}
return NewUserInfoResult(response, err)
return newUserInfoResult(response, err)
}
func (u *UserInfoResponse) UserInfoAvatarUrlReal() string {

@ -29,7 +29,7 @@ type UserPhoneResult struct {
Err error // 错误
}
func NewUserPhoneResult(result UserPhoneResponse, err error) *UserPhoneResult {
func newUserPhoneResult(result UserPhoneResponse, err error) *UserPhoneResult {
return &UserPhoneResult{Result: result, Err: err}
}
@ -38,32 +38,32 @@ func (c *Client) UserPhone(param UserPhone) *UserPhoneResult {
var response UserPhoneResponse
aesKey, err := base64.StdEncoding.DecodeString(param.SessionKey)
if err != nil {
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}
cipherText, err := base64.StdEncoding.DecodeString(param.EncryptedData)
if err != nil {
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}
ivBytes, err := base64.StdEncoding.DecodeString(param.Iv)
if err != nil {
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}
block, err := aes.NewCipher(aesKey)
if err != nil {
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}
mode := cipher.NewCBCDecrypter(block, ivBytes)
mode.CryptBlocks(cipherText, cipherText)
cipherText, err = c.pkcs7Unpaid(cipherText, block.BlockSize())
if err != nil {
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}
err = json.Unmarshal(cipherText, &response)
if err != nil {
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}
if response.Watermark.AppID != c.getAppId() {
return NewUserPhoneResult(response, errors.New("c id not match"))
return newUserPhoneResult(response, errors.New("c id not match"))
}
return NewUserPhoneResult(response, err)
return newUserPhoneResult(response, err)
}

@ -49,20 +49,20 @@ type BusinessGetLiveInfoResult struct {
Err error // 错误
}
func NewBusinessGetLiveInfoResult(result BusinessGetLiveInfoResponse, body []byte, http gorequest.Response, err error) *BusinessGetLiveInfoResult {
func newBusinessGetLiveInfoResult(result BusinessGetLiveInfoResponse, body []byte, http gorequest.Response, err error) *BusinessGetLiveInfoResult {
return &BusinessGetLiveInfoResult{Result: result, Body: body, Http: http, Err: err}
}
// BusinessGetLiveInfo 获取直播间列表
// 调用此接口获取直播间列表及直播间信息
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/liveplayer/studio-api.html
func (c *Client) BusinessGetLiveInfo(notMustParams ...Params) *BusinessGetLiveInfoResult {
func (c *Client) BusinessGetLiveInfo(notMustParams ...gorequest.Params) *BusinessGetLiveInfoResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/business/getliveinfo?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/business/getliveinfo?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response BusinessGetLiveInfoResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewBusinessGetLiveInfoResult(response, request.ResponseBody, request, err)
return newBusinessGetLiveInfoResult(response, request.ResponseBody, request, err)
}

@ -28,7 +28,7 @@ type WxaBusinessGetUserPhoneNumberResult struct {
Err error // 错误
}
func NewWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumberResponse, body []byte, http gorequest.Response, err error) *WxaBusinessGetUserPhoneNumberResult {
func newWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumberResponse, body []byte, http gorequest.Response, err error) *WxaBusinessGetUserPhoneNumberResult {
return &WxaBusinessGetUserPhoneNumberResult{Result: result, Body: body, Http: http, Err: err}
}
@ -36,13 +36,13 @@ func NewWxaBusinessGetUserPhoneNumberResult(result WxaBusinessGetUserPhoneNumber
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html
func (c *Client) WxaBusinessGetUserPhoneNumber(code string) *WxaBusinessGetUserPhoneNumberResult {
// 参数
param := NewParams()
param := gorequest.NewParams()
param.Set("code", code)
params := c.NewParamsWith(param)
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/business/getuserphonenumber?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaBusinessGetUserPhoneNumberResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request, err)
return newWxaBusinessGetUserPhoneNumberResult(response, request.ResponseBody, request, err)
}

@ -20,19 +20,19 @@ type WxaGenerateUrlLinkResult struct {
Err error // 错误
}
func NewWxaGenerateUrlLinkResult(result WxaGenerateUrlLinkResponse, body []byte, http gorequest.Response, err error) *WxaGenerateUrlLinkResult {
func newWxaGenerateUrlLinkResult(result WxaGenerateUrlLinkResponse, body []byte, http gorequest.Response, err error) *WxaGenerateUrlLinkResult {
return &WxaGenerateUrlLinkResult{Result: result, Body: body, Http: http, Err: err}
}
// WxaGenerateUrlLink 获取小程序 URL Link适用于短信、邮件、网页、微信内等拉起小程序的业务场景。通过该接口可以选择生成到期失效和永久有效的小程序链接有数量限制目前仅针对国内非个人主体的小程序开放
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.generate.html
func (c *Client) WxaGenerateUrlLink(notMustParams ...Params) *WxaGenerateUrlLinkResult {
func (c *Client) WxaGenerateUrlLink(notMustParams ...gorequest.Params) *WxaGenerateUrlLinkResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/generate_urllink?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/generate_urllink?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaGenerateUrlLinkResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaGenerateUrlLinkResult(response, request.ResponseBody, request, err)
return newWxaGenerateUrlLinkResult(response, request.ResponseBody, request, err)
}

@ -20,19 +20,19 @@ type WxaGenerateSchemeResult struct {
Err error // 错误
}
func NewWxaGenerateSchemeResult(result WxaGenerateSchemeResponse, body []byte, http gorequest.Response, err error) *WxaGenerateSchemeResult {
func newWxaGenerateSchemeResult(result WxaGenerateSchemeResponse, body []byte, http gorequest.Response, err error) *WxaGenerateSchemeResult {
return &WxaGenerateSchemeResult{Result: result, Body: body, Http: http, Err: err}
}
// WxaGenerateScheme 获取小程序 scheme 码,适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序码,有数量限制,目前仅针对国内非个人主体的小程序开放
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.generate.html
func (c *Client) WxaGenerateScheme(notMustParams ...Params) *WxaGenerateSchemeResult {
func (c *Client) WxaGenerateScheme(notMustParams ...gorequest.Params) *WxaGenerateSchemeResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/generatescheme?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/generatescheme?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaGenerateSchemeResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaGenerateSchemeResult(response, request.ResponseBody, request, err)
return newWxaGenerateSchemeResult(response, request.ResponseBody, request, err)
}

@ -24,21 +24,21 @@ type WxaGetWxaCodeResult struct {
Err error // 错误
}
func NewWxaGetWxaCodeResult(result WxaGetWxaCodeResponse, body []byte, http gorequest.Response, err error) *WxaGetWxaCodeResult {
func newWxaGetWxaCodeResult(result WxaGetWxaCodeResponse, body []byte, http gorequest.Response, err error) *WxaGetWxaCodeResult {
return &WxaGetWxaCodeResult{Result: result, Body: body, Http: http, Err: err}
}
// WxaGetWxaCode 获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html
func (c *Client) WxaGetWxaCode(notMustParams ...Params) *WxaGetWxaCodeResult {
func (c *Client) WxaGetWxaCode(notMustParams ...gorequest.Params) *WxaGetWxaCodeResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/getwxacode?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/getwxacode?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaGetWxaCodeResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaGetWxaCodeResult(response, request.ResponseBody, request, err)
return newWxaGetWxaCodeResult(response, request.ResponseBody, request, err)
}
// ErrcodeInfo 错误描述

@ -24,21 +24,21 @@ type WxaGetWxaCodeUnLimitResult struct {
Err error // 错误
}
func NewWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []byte, http gorequest.Response, err error) *WxaGetWxaCodeUnLimitResult {
func newWxaGetWxaCodeUnLimitResult(result WxaGetWxaCodeUnLimitResponse, body []byte, http gorequest.Response, err error) *WxaGetWxaCodeUnLimitResult {
return &WxaGetWxaCodeUnLimitResult{Result: result, Body: body, Http: http, Err: err}
}
// WxaGetWxaCodeUnLimit 获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
func (c *Client) WxaGetWxaCodeUnLimit(notMustParams ...Params) *WxaGetWxaCodeUnLimitResult {
func (c *Client) WxaGetWxaCodeUnLimit(notMustParams ...gorequest.Params) *WxaGetWxaCodeUnLimitResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/getwxacodeunlimit?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaGetWxaCodeUnLimitResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request, err)
return newWxaGetWxaCodeUnLimitResult(response, request.ResponseBody, request, err)
}
// ErrcodeInfo 错误描述

@ -38,7 +38,7 @@ type WxaQueryUrlLinkResult struct {
Err error // 错误
}
func NewWxaQueryUrlLinkResult(result WxaQueryUrlLinkResponse, body []byte, http gorequest.Response, err error) *WxaQueryUrlLinkResult {
func newWxaQueryUrlLinkResult(result WxaQueryUrlLinkResponse, body []byte, http gorequest.Response, err error) *WxaQueryUrlLinkResult {
return &WxaQueryUrlLinkResult{Result: result, Body: body, Http: http, Err: err}
}
@ -46,13 +46,13 @@ func NewWxaQueryUrlLinkResult(result WxaQueryUrlLinkResponse, body []byte, http
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-link/urllink.query.html
func (c *Client) WxaQueryUrlLink(urlLink string) *WxaQueryUrlLinkResult {
// 参数
param := NewParams()
param := gorequest.NewParams()
param.Set("url_link", urlLink)
params := c.NewParamsWith(param)
params := gorequest.NewParamsWith(param)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/query_urllink?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/query_urllink?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaQueryUrlLinkResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaQueryUrlLinkResult(response, request.ResponseBody, request, err)
return newWxaQueryUrlLinkResult(response, request.ResponseBody, request, err)
}

@ -31,19 +31,19 @@ type WxaQuerySchemeResult struct {
Err error // 错误
}
func NewWxaQuerySchemeResult(result WxaQuerySchemeResponse, body []byte, http gorequest.Response, err error) *WxaQuerySchemeResult {
func newWxaQuerySchemeResult(result WxaQuerySchemeResponse, body []byte, http gorequest.Response, err error) *WxaQuerySchemeResult {
return &WxaQuerySchemeResult{Result: result, Body: body, Http: http, Err: err}
}
// WxaQueryScheme 查询小程序 scheme 码,及长期有效 quota
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.query.html
func (c *Client) WxaQueryScheme(notMustParams ...Params) *WxaQuerySchemeResult {
func (c *Client) WxaQueryScheme(notMustParams ...gorequest.Params) *WxaQuerySchemeResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
// 请求
request, err := c.request(fmt.Sprintf("https://api.weixin.qq.com/wxa/queryscheme?access_token=%s", c.getAccessToken()), params, http.MethodPost)
request, err := c.request(fmt.Sprintf(apiUrl+"/wxa/queryscheme?access_token=%s", c.getAccessToken()), params, http.MethodPost)
// 定义
var response WxaQuerySchemeResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaQuerySchemeResult(response, request.ResponseBody, request, err)
return newWxaQuerySchemeResult(response, request.ResponseBody, request, err)
}

@ -30,20 +30,20 @@ type WxaApiFeedbackListResult struct {
Err error // 错误
}
func NewWxaApiFeedbackListResult(result WxaApiFeedbackListResponse, body []byte, http gorequest.Response, err error) *WxaApiFeedbackListResult {
func newWxaApiFeedbackListResult(result WxaApiFeedbackListResponse, body []byte, http gorequest.Response, err error) *WxaApiFeedbackListResult {
return &WxaApiFeedbackListResult{Result: result, Body: body, Http: http, Err: err}
}
// WxaApiFeedbackList 获取用户反馈列表
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/operation/operation.getFeedback.html
func (c *Client) WxaApiFeedbackList(notMustParams ...Params) *WxaApiFeedbackListResult {
func (c *Client) WxaApiFeedbackList(notMustParams ...gorequest.Params) *WxaApiFeedbackListResult {
// 参数
params := c.NewParamsWith(notMustParams...)
params := gorequest.NewParamsWith(notMustParams...)
params.Set("access_token", c.getAccessToken())
// 请求
request, err := c.request("https://api.weixin.qq.com/wxaapi/feedback/list", params, http.MethodGet)
request, err := c.request(apiUrl+"/wxaapi/feedback/list", params, http.MethodGet)
// 定义
var response WxaApiFeedbackListResponse
err = json.Unmarshal(request.ResponseBody, &response)
return NewWxaApiFeedbackListResult(response, request.ResponseBody, request, err)
return newWxaApiFeedbackListResult(response, request.ResponseBody, request, err)
}

Loading…
Cancel
Save