package kashangwl import ( "encoding/json" "fmt" "github.com/dtapps/go-library/utils/gohttp" "github.com/go-redis/redis/v8" "go.mongodb.org/mongo-driver/mongo" "go.uber.org/zap" "gorm.io/gorm" "time" ) // App 卡商网服务 type App struct { CustomerId int // 商家编号 CustomerKey string // 商家密钥 ZapLog *zap.Logger // 日志服务 Db *gorm.DB // 关系数据库服务 RDb *redis.Client // 缓存数据库服务 MDb *mongo.Client // 非关系数据库服务 } func (app *App) request(url string, params map[string]interface{}) ([]byte, error) { // 公共参数 params["timestamp"] = time.Now().UnixNano() / 1e6 params["customer_id"] = app.CustomerId // 签名参数 params["sign"] = app.getSign(app.CustomerKey, params) // 请求参数 paramsStr, err := json.Marshal(params) // 请求 postJson, err := gohttp.PostJson(url, paramsStr) // 日志 if app.ZapLog != nil { app.ZapLog.Sugar().Info(fmt.Sprintf("%s %s %s", url, postJson.Header, postJson.Body)) } return postJson.Body, err }