package api import ( "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/dadaapi" "git.rosy.net.cn/baseapi/platformapi/ebaiapi" "git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/platformapi/showapi" "git.rosy.net.cn/baseapi/platformapi/weixinapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/cache" "git.rosy.net.cn/jx-callback/business/jxutils/cache/redis" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" "github.com/qiniu/api.v7/auth/qbox" ) var ( JdAPI *jdapi.API ElmAPI *elmapi.API EbaiAPI *ebaiapi.API MtpsAPI *mtpsapi.API DadaAPI *dadaapi.API MtwmAPI *mtwmapi.API WeixinAPI *weixinapi.API WeixinMiniAPI *weixinapi.API AutonaviAPI *autonavi.API QiniuAPI *qbox.Mac ShowAPI *showapi.API Cacher cache.ICacher ) func Init() { if !beego.AppConfig.DefaultBool("disableJd", false) { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) } if !beego.AppConfig.DefaultBool("disableElm", false) { initElm() } if !beego.AppConfig.DefaultBool("disableMtps", false) { MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) } MtwmAPI = mtwmapi.New(beego.AppConfig.String("mtwmAppID"), beego.AppConfig.String("mtwmSecret"), beego.AppConfig.String("mtwmCallbackURL")) if !beego.AppConfig.DefaultBool("disableDada", false) { DadaAPI = dadaapi.New(beego.AppConfig.String("dadaAppKey"), beego.AppConfig.String("dadaAppSecret"), beego.AppConfig.String("dadaSourceID"), beego.AppConfig.String("dadaCallbackURL"), beego.AppConfig.DefaultBool("dadaIsProd", false)) } if !beego.AppConfig.DefaultBool("disableWeixin", false) { WeixinAPI = weixinapi.New(beego.AppConfig.String("weixinAppID"), beego.AppConfig.String("weixinSecret")) // 这个主要是用于调试阶段使用,生产环境中用的是自动刷新那套 if weixinToken := beego.AppConfig.DefaultString("weixinToken", ""); weixinToken != "" { WeixinAPI.SetToken(weixinToken) } } WeixinMiniAPI = weixinapi.New(beego.AppConfig.String("weixinMiniAppID"), beego.AppConfig.String("weixinMiniSecret")) AutonaviAPI = autonavi.New(beego.AppConfig.String("autonaviKey")) QiniuAPI = qbox.NewMac(beego.AppConfig.String("qiniuAK"), beego.AppConfig.String("qiniuSK")) if !beego.AppConfig.DefaultBool("disableEbai", false) { EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) } ShowAPI = showapi.New(beego.AppConfig.DefaultInt("showAppID", 0), beego.AppConfig.DefaultString("showAppSecret", "")) Cacher = redis.New(beego.AppConfig.DefaultString("redisHost", "localhost"), beego.AppConfig.DefaultInt("redisPort", 0), beego.AppConfig.DefaultString("redisPassword", "")) } func initElm() { token := beego.AppConfig.String("elmToken") if token == "" { db := orm.NewOrm() var tokenInfo []orm.Params num, err := db.Raw("SELECT * FROM config WHERE thirdparty='eleme'").Values(&tokenInfo) if err != nil || num != 1 { panic(err.Error()) } var tokenInfo2 map[string]interface{} if err := utils.UnmarshalUseNumber([]byte(tokenInfo[0]["token"].(string)), &tokenInfo2); err != nil { panic(err.Error()) } token = tokenInfo2["accessToken"].(string) } ElmAPI = elmapi.New(token, beego.AppConfig.String("elmAppKey"), beego.AppConfig.String("elmSecret"), beego.AppConfig.DefaultBool("elmIsProd", false)) }