package api import ( "time" aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate" "git.rosy.net.cn/baseapi/platformapi" "git.rosy.net.cn/baseapi/platformapi/alipayapi" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" "git.rosy.net.cn/baseapi/platformapi/dadaapi" "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/platformapi/ebaiapi" "git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/platformapi/feieapi" "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/weimobapi" "git.rosy.net.cn/baseapi/platformapi/weixinapi" "git.rosy.net.cn/baseapi/platformapi/wxpayapi" "git.rosy.net.cn/baseapi/platformapi/xiaowmapi" "git.rosy.net.cn/baseapi/platformapi/yilianyunapi" "git.rosy.net.cn/baseapi/platformapi/zhongwuapi" "git.rosy.net.cn/jx-callback/business/jxutils/cache" "git.rosy.net.cn/jx-callback/business/jxutils/cache/redis" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego" "github.com/qiniu/api.v7/auth/qbox" ) var ( JdAPI *jdapi.API JdPageAPI *jdapi.API Jd2API *jdapi.API ElmAPI *elmapi.API EbaiAPI *ebaiapi.API MtwmAPI *mtwmapi.API MtpsAPI *mtpsapi.API DadaAPI *dadaapi.API WeixinAPI *weixinapi.API // 微信公众号 WeixinMiniAPI *weixinapi.API // 小程序 WeixinMiniAPI2 *weixinapi.API // 小程序2 WeixinMiniAppID2 string WxpayAPI *wxpayapi.API // 微信支付API WeixinPageAPI *weixinapi.API // 用户微信扫码登录 AliPayAPI *alipayapi.API AutonaviAPI *autonavi.API BaiDuNaviAPI *baidunavi.API QiniuAPI *qbox.Mac ShowAPI *showapi.API WeimobAPI *weimobapi.API DingDingAPI *dingdingapi.API DingDingQRCodeAPI *dingdingapi.API FeieAPI *feieapi.API XiaoWMAPI *xiaowmapi.API YilianyunAPI *yilianyunapi.API YilianyunAPI2 *yilianyunapi.API ZhongwuAPI *zhongwuapi.API Cacher cache.ICacher SMSClient *aliyunsmsclient.SmsClient ) func init() { Init() // 这里必须要调用 } // 这样写的原因是在测试时,可以重新读取配置文件 func Init() { if !beego.AppConfig.DefaultBool("disableJd", false) { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") JdAPI.SetJdCookie(cookieValue) conf := platformapi.NewDefAPIConfig() conf.MaxSleepSecondWhenExceedLimit = 60 * 30 // 最大重试间隙30分钟 JdPageAPI = jdapi.NewPageOnly(cookieValue, conf) if globals.Jd2OrgCode != "" { Jd2API = jdapi.New(beego.AppConfig.String("jd2Token"), beego.AppConfig.String("jd2AppKey"), beego.AppConfig.String("jd2Secret")) Jd2API.SetJdCookie(beego.AppConfig.DefaultString("jd2StorePageCookie", "")) } } else { JdAPI = nil } if !beego.AppConfig.DefaultBool("disableElm", false) { ElmAPI = elmapi.New(beego.AppConfig.DefaultString("elmToken", ""), beego.AppConfig.String("elmAppKey"), beego.AppConfig.String("elmSecret"), beego.AppConfig.DefaultBool("elmIsProd", false)) } else { ElmAPI = nil } if !beego.AppConfig.DefaultBool("disableMtwm", false) { MtwmAPI = mtwmapi.New(beego.AppConfig.String("mtwmAppID"), beego.AppConfig.String("mtwmSecret"), beego.AppConfig.String("mtwmCallbackURL")) if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { MtwmAPI.SetCookieWithStr(mtwmCookieStr) } } else { MtwmAPI = nil } if !beego.AppConfig.DefaultBool("disableWeimob", false) { //微盟上传大图片耗时较长 weimobAPIConfig := platformapi.DefAPIConfig weimobAPIConfig.ClientTimeout = 120 * time.Second WeimobAPI = weimobapi.New(nil, beego.AppConfig.DefaultString("weimobAppID", ""), beego.AppConfig.DefaultString("weimobAppSecret", ""), &weimobAPIConfig) } else { WeimobAPI = nil } if !beego.AppConfig.DefaultBool("disableEbai", false) { EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "") ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "") if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" { EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) } } else { EbaiAPI = nil } if !beego.AppConfig.DefaultBool("disableMtps", false) { MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) if mtpsStoreToken := beego.AppConfig.DefaultString("mtpsStoreToken", ""); mtpsStoreToken != "" { MtpsAPI.SetCookie("token", mtpsStoreToken) } } else { MtpsAPI = nil } 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)) } else { DadaAPI = nil } 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.CBSetToken(weixinToken) } if weixinMsgToken := beego.AppConfig.DefaultString("weixinMsgToken", ""); weixinMsgToken != "" { WeixinAPI.SetMsgTokenAndKey(weixinMsgToken, beego.AppConfig.DefaultString("weixinMsgKey", "")) } } else { WeimobAPI = nil } WeixinMiniAPI = weixinapi.New(beego.AppConfig.String("weixinMiniAppID"), beego.AppConfig.String("weixinMiniSecret")) if WeixinMiniAppID2 = beego.AppConfig.String("weixinMiniAppID2"); WeixinMiniAppID2 != "" { WeixinMiniAPI2 = weixinapi.New(WeixinMiniAppID2, beego.AppConfig.String("weixinMiniSecret2")) } WeixinPageAPI = weixinapi.New(beego.AppConfig.String("weixinPageAppID"), beego.AppConfig.String("weixinPageSecret")) if globals.WxpayNotifyURL != "" { // WxpayAPI = wxpayapi.New(beego.AppConfig.String("wxpayAppID"), beego.AppConfig.String("wxpayAppKey"), beego.AppConfig.String("wxpayAppMchID")) WxpayAPI = wxpayapi.NewWithCertificate(beego.AppConfig.String("wxpayAppID"), beego.AppConfig.String("wxpayAppKey"), beego.AppConfig.String("wxpayAppMchID"), "conf/apiclient_cert.pem", "conf/apiclient_key.pem") } AutonaviAPI = autonavi.New(beego.AppConfig.String("autonaviKey")) BaiDuNaviAPI = baidunavi.New(beego.AppConfig.String("baidunaviAK"), beego.AppConfig.String("baidunaviSK")) QiniuAPI = qbox.NewMac(beego.AppConfig.String("qiniuAK"), beego.AppConfig.String("qiniuSK")) 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", "")) DingDingAPI = dingdingapi.NewWithAgentID(beego.AppConfig.DefaultInt64("dingdingAgentID", 0), beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingAppKey", ""), beego.AppConfig.DefaultString("dingdingSecret", "")) DingDingQRCodeAPI = dingdingapi.New(beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingQRCodeAppKey", ""), beego.AppConfig.DefaultString("dingdingQRCodeSecret", "")) if alipayAppID := beego.AppConfig.DefaultString("alipayAppID", ""); alipayAppID != "" { AliPayAPI = alipayapi.New(alipayAppID, []byte(beego.AppConfig.String("alipayPrivateKey"))) } FeieAPI = feieapi.New(beego.AppConfig.DefaultString("feieUser", ""), beego.AppConfig.DefaultString("feieKey", "")) XiaoWMAPI = xiaowmapi.New(beego.AppConfig.DefaultInt("xiaoWMAppID", 0), beego.AppConfig.DefaultString("xiaoWMAppKey", "")) YilianyunAPI = yilianyunapi.New(beego.AppConfig.DefaultString("yilianyunClientID", ""), beego.AppConfig.DefaultString("yilianyunClientSecret", "")) YilianyunAPI2 = yilianyunapi.New(beego.AppConfig.DefaultString("yilianyunClientID2", ""), beego.AppConfig.DefaultString("yilianyunClientSecret2", "")) ZhongwuAPI = zhongwuapi.New(beego.AppConfig.DefaultInt("zhongwuAppID", 0), beego.AppConfig.DefaultString("zhongwuAppSecret", "")) SMSClient = aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/") }