first commit

This commit is contained in:
Yangtao
2025-11-18 17:48:20 +08:00
commit 6e56cab848
196 changed files with 65809 additions and 0 deletions

View File

@ -0,0 +1,76 @@
package client
import (
"encoding/json"
"fmt"
"strings"
"time"
)
type WeGetTokenRes struct {
AccessToken string `json:"access_token"`
ExpiresIn int `json:"expires_in"`
}
func WeGetToken() (token string, e error) {
gotRes, err := Get(GetAccessTokenURL, nil, WeChatGetAccessTokenReq(1))
if err != nil {
return "", err
}
var body WeGetTokenRes
if e = json.Unmarshal(gotRes, &body); e != nil {
return
}
token = body.AccessToken
return
}
type WeSendMessageReq map[string]WeSendMessageItemReq
type WeSendMessageItemReq struct {
Value string `json:"value"`
}
func WeSendMessage(openID, templateID string, message WeSendMessageReq, token string) (e error) {
if len(token) == 0 {
if token, e = WeGetToken(); e != nil {
return
}
}
gotRes, err := Post(strings.ReplaceAll(SendMessageURL, "ACCESS_TOKEN", token), nil, map[string]interface{}{
"template_id": templateID,
"touser": openID,
"data": message,
"miniprogram_state": "formal", // developer为开发版trial为体验版formal为正式版默认为正式版
"lang": "zh_CN", // 进入小程序查看”的语言类型支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为 zh_CN
})
if err != nil {
return err
}
fmt.Printf("%s\n", string(gotRes))
return
}
func WeSendNoticeTakeOrder(openID, company, driver, vehicel string, date time.Time) error {
const tid = "Ff5tDsIlBy-t51Usxh_oBvge9WbMbBFVKI020hIpWcA"
return WeSendMessage(openID, tid, messageNoticeTakeOrder(company, driver, vehicel, date), "")
}
// messageBookReminder 预约提醒消息
func messageNoticeTakeOrder(company, driver, vehicel string, date time.Time) WeSendMessageReq {
return WeSendMessageReq{
"thing1": WeSendMessageItemReq{Value: company}, // 公司名称
"thing2": WeSendMessageItemReq{Value: driver}, // 接单司机
"car_number3": WeSendMessageItemReq{Value: vehicel}, // 车牌号
"time4": WeSendMessageItemReq{Value: StrFromTime(date)}, // 接单时间
}
}
const (
TimeFormat = "2006-01-02 15:04:05"
DateFormat = "2006-01-02"
)
func StrFromTime(t time.Time) string {
return t.Format(TimeFormat)
}