- add service_http.gin

master v1.0.25
李光春 2 years ago
parent 11cb134490
commit 2401d39ae2

@ -3,5 +3,5 @@ package wechatopen
const (
apiUrl = "https://api.weixin.qq.com"
logTable = "wechatopen"
Version = "1.0.24"
Version = "1.0.25"
)

@ -3,6 +3,7 @@ module go.dtapp.net/wechatopen
go 1.19
require (
github.com/gin-gonic/gin v1.8.1
github.com/mitchellh/mapstructure v1.5.0
go.dtapp.net/dorm v1.0.30
go.dtapp.net/golog v1.0.51
@ -15,7 +16,6 @@ require (
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/gin-gonic/gin v1.8.1 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/go-playground/validator/v10 v10.11.0 // indirect

@ -0,0 +1,41 @@
package wechatopen
import (
"context"
"github.com/gin-gonic/gin"
)
// ResponseServeHttpGin 推送信息
type ResponseServeHttpGin struct {
MsgSignature string `form:"msg_signature" json:"msg_signature" xml:"msg_signature" uri:"msg_signature" binding:"omitempty"` // 签名串,对应 URL 参数的msg_signature
Timestamp string `form:"timestamp" json:"timestamp" xml:"timestamp" uri:"timestamp" binding:"omitempty"` // 时间戳,对应 URL 参数的timestamp
Nonce string `form:"nonce" json:"nonce" xml:"nonce" uri:"nonce" binding:"omitempty"` // 随机串,对应 URL 参数的nonce
Signature string `form:"signature" json:"signature" xml:"signature" uri:"signature" binding:"omitempty"`
EncryptType string `form:"encrypt_type" json:"encrypt_type" xml:"encrypt_type" uri:"encrypt_type" binding:"omitempty"` // 加密类型
AppId string `form:"AppId" json:"AppId" xml:"AppId" uri:"AppId" binding:"omitempty"` // 第三方平台 appid
Encrypt string `form:"Encrypt" json:"Encrypt" xml:"Encrypt" uri:"Encrypt" binding:"omitempty"` // 加密内容
}
// ServeHttpGin 验证票据推送
func (c *Client) ServeHttpGin(ctx context.Context, ginCtx *gin.Context) (ResponseServeHttpGin, error) {
query := ginCtx.Request.URL.Query()
// 声明接收的变量
var validateJson struct {
AppId string `form:"AppId" json:"AppId" xml:"AppId" uri:"AppId" binding:"omitempty"` // 第三方平台 appid
Encrypt string `form:"Encrypt" json:"Encrypt" xml:"Encrypt" uri:"Encrypt" binding:"omitempty"` // 加密内容
}
err := ginCtx.ShouldBind(&validateJson)
return ResponseServeHttpGin{
MsgSignature: query.Get("msg_signature"),
Timestamp: query.Get("timestamp"),
Nonce: query.Get("nonce"),
Signature: query.Get("signature"),
EncryptType: query.Get("encrypt_type"),
AppId: validateJson.AppId,
Encrypt: validateJson.Encrypt,
}, err
}
Loading…
Cancel
Save