代码拉取完成,页面将自动刷新
/*
* @Author: i@rysa.cn
* @Date: 2022-05-14 16:54:10
* @LastEditTime: 2022-05-14 16:55:52
* @LastEditors: i@rysa.cn
* @Description:
* @FilePath: \go-utils\wechat\mp\openapi\openapi.go
*/
package openapi
import (
"encoding/json"
"gitee.com/rysa/go-utils/request"
"gitee.com/rysa/go-utils/wechat/mp/accesstoken"
"gitee.com/rysa/go-utils/wechat/mp/mpconfig"
"gitee.com/rysa/go-utils/wechat/mp/params"
)
const (
clear_quota = "https://api.weixin.qq.com/cgi-bin/clear_quota?access_token="
check_quota = "https://api.weixin.qq.com/cgi-bin/openapi/quota/get?access_token="
check_rid = "https://api.weixin.qq.com/cgi-bin/openapi/rid/get?access_token="
)
type openApi struct {
*mpconfig.MpConfig
}
func NewOpenApi(cfg *mpconfig.MpConfig) *openApi {
return &openApi{cfg}
}
/**
* @name: 清空api的调用quota
* @description:
* 1、如果要清空公众号的接口的quota,则需要用公众号的access_token;如果要清空小程序的接口的quota,则需要用小程序的access_token;如果要清空第三方平台的接口的quota,则需要用第三方平台的component_access_token
* 2、如果是第三方服务商代公众号或者小程序清除quota,则需要用authorizer_access_token
* 3、每个帐号每月共10次清零操作机会,清零生效一次即用掉一次机会;第三方帮助公众号/小程序调用时,实际上是在消耗公众号/小程序自身的quota
* 4、由于指标计算方法或统计时间差异,实时调用量数据可能会出现误差,一般在1%以内
* @param {*}
* @return {*}
*/
func (mp *openApi) ClearQuita() params.Err {
token, err := accesstoken.GetAccessToken(mp.MpConfig)
if err != nil {
return params.Err{
Errcode: -1,
Errmsg: err.Error(),
}
}
url := clear_quota + token
req := request.NewRequest()
req.SetFormData(map[string]string{
"appid": mp.Appid,
})
res, err := req.Post(url)
if err != nil {
return params.Err{
Errcode: -1,
Errmsg: err.Error(),
}
}
var result params.Err
json.Unmarshal(res.Body(), &result)
return result
}
/**
* @name:查询openAPI调用quota
* @description:
* 1、如果查询的api属于公众号的接口,则需要用公众号的access_token;如果查询的api属于小程序的接口,则需要用小程序的access_token;如果查询的接口属于第三方平台的接口,则需要用第三方平台的component_access_token;否则会出现76022报错。
* 2、如果是第三方服务商代公众号或者小程序查询公众号或者小程序的api,则需要用authorizer_access_token
* 3、每个接口都有调用次数限制,请开发者合理调用接口
* 4、/xxx/sns/xxx这类接口不支持使用该接口,会出现76022报错。
* @param {string} path api的请求地址,例如"/cgi-bin/message/custom/send";不要前缀https://api.weixin.qq.com ,也不要漏了"/",否则都会76003的报错
* @return {*}
*/
func (mp *openApi) CheckQuota(path string) params.CheckQuota {
token, err := accesstoken.GetAccessToken(mp.MpConfig)
if err != nil {
return params.CheckQuota{
Errcode: -1,
Errmsg: err.Error(),
}
}
url := check_quota + token
req := request.NewRequest()
req.SetFormData(map[string]string{
"cgi_path": path,
})
res, err := req.Post(url)
if err != nil {
return params.CheckQuota{
Errcode: -1,
Errmsg: err.Error(),
}
}
var result params.CheckQuota
json.Unmarshal(res.Body(), &result)
return result
}
func (mp *openApi) CheckRid(rid string) params.CheckRid {
token, err := accesstoken.GetAccessToken(mp.MpConfig)
if err != nil {
return params.CheckRid{
Errcode: -1,
Errmsg: err.Error(),
}
}
url := check_rid + token
req := request.NewRequest()
req.SetFormData(map[string]string{
"rid": rid,
})
res, err := req.Post(url)
if err != nil {
return params.CheckRid{
Errcode: -1,
Errmsg: err.Error(),
}
}
var result params.CheckRid
json.Unmarshal(res.Body(), &result)
return result
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。