mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-09 15:12:26 +08:00
添加获取微信服务器IP接口
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
# WeChat SDK for Go
|
# WeChat SDK for Go
|
||||||
[](https://travis-ci.org/silenceper/wechat)
|

|
||||||
[](https://goreportcard.com/report/github.com/silenceper/wechat)
|
[](https://goreportcard.com/report/github.com/silenceper/wechat)
|
||||||
[](http://godoc.org/github.com/silenceper/wechat)
|
[](https://pkg.go.dev/github.com/silenceper/wechat/v2?tab=doc)
|
||||||
|
|
||||||
使用Golang开发的微信SDK,简单、易用。
|
使用Golang开发的微信SDK,简单、易用。
|
||||||
|
|
||||||
@@ -61,6 +61,8 @@ server.Send()
|
|||||||
- 提交issue,描述需要贡献的内容
|
- 提交issue,描述需要贡献的内容
|
||||||
- 完成更改后,提交PR
|
- 完成更改后,提交PR
|
||||||
|
|
||||||
|
## 公众号
|
||||||
|

|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
2
cache/redis.go
vendored
2
cache/redis.go
vendored
@@ -19,7 +19,7 @@ type RedisOpts struct {
|
|||||||
Database int `yml:"database" json:"database"`
|
Database int `yml:"database" json:"database"`
|
||||||
MaxIdle int `yml:"max_idle" json:"max_idle"`
|
MaxIdle int `yml:"max_idle" json:"max_idle"`
|
||||||
MaxActive int `yml:"max_active" json:"max_active"`
|
MaxActive int `yml:"max_active" json:"max_active"`
|
||||||
IdleTimeout int32 `yml:"idle_timeout" json:"idle_timeout"` //second
|
IdleTimeout int `yml:"idle_timeout" json:"idle_timeout"` //second
|
||||||
}
|
}
|
||||||
|
|
||||||
//NewRedis 实例化
|
//NewRedis 实例化
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
package basic
|
package basic
|
||||||
|
|
||||||
import "github.com/silenceper/wechat/v2/officialaccount/context"
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/silenceper/wechat/v2/officialaccount/context"
|
||||||
|
"github.com/silenceper/wechat/v2/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
//获取微信服务器IP地址
|
||||||
|
//文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_the_WeChat_server_IP_address.html
|
||||||
|
getCallbackIPURL = "https://api.weixin.qq.com/cgi-bin/getcallbackip"
|
||||||
|
getAPIDomainIPURL = "https://api.weixin.qq.com/cgi-bin/get_api_domain_ip"
|
||||||
|
)
|
||||||
|
|
||||||
//Basic struct
|
//Basic struct
|
||||||
type Basic struct {
|
type Basic struct {
|
||||||
@@ -13,3 +25,41 @@ func NewBasic(context *context.Context) *Basic {
|
|||||||
basic.Context = context
|
basic.Context = context
|
||||||
return basic
|
return basic
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//IPListRes 获取微信服务器IP地址 返回结果
|
||||||
|
type IPListRes struct {
|
||||||
|
util.CommonError
|
||||||
|
IPList []string `json:"ip_list"`
|
||||||
|
}
|
||||||
|
|
||||||
|
//GetCallbackIP 获取微信callback IP地址
|
||||||
|
func (basic *Basic) GetCallbackIP() ([]string, error) {
|
||||||
|
ak, err := basic.GetAccessToken()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
url := fmt.Sprintf("%s?access_token=%s", getCallbackIPURL, ak)
|
||||||
|
data, err := util.HTTPGet(url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
ipListRes := &IPListRes{}
|
||||||
|
err = util.DecodeWithError(data, ipListRes, "GetCallbackIP")
|
||||||
|
return ipListRes.IPList, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//GetAPIDomainIP 获取微信API接口 IP地址
|
||||||
|
func (basic *Basic) GetAPIDomainIP() ([]string, error) {
|
||||||
|
ak, err := basic.GetAccessToken()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
url := fmt.Sprintf("%s?access_token=%s", getAPIDomainIPURL, ak)
|
||||||
|
data, err := util.HTTPGet(url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
ipListRes := &IPListRes{}
|
||||||
|
err = util.DecodeWithError(data, ipListRes, "GetAPIDomainIP")
|
||||||
|
return ipListRes.IPList, err
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user