package api import ( "io/ioutil" "time" "git.rosy.net.cn/baseapi/platformapi/mtunionapi" "git.rosy.net.cn/baseapi/platformapi/txcloudapi" "git.rosy.net.cn/baseapi/platformapi/ejyapi" "git.rosy.net.cn/baseapi/platformapi/mtmemberapi" "git.rosy.net.cn/baseapi/platformapi/unipushapi" "git.rosy.net.cn/baseapi/platformapi/jdshopapi" "git.rosy.net.cn/baseapi/platformapi/aliupcapi" "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" 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" beego "github.com/astaxie/beego/adapter" "github.com/qiniu/api.v7/auth/qbox" ) var ( JdAPI *jdapi.API JdPageAPI *jdapi.API Jd2API *jdapi.API Jd3API *jdapi.API FakeJdAPI *jdapi.API JdEclpAPI *jdeclpapi.API JdShopAPI *jdshopapi.API ElmAPI *elmapi.API EbaiAPI *ebaiapi.API Ebai2API *ebaiapi.API MtwmAPI *mtwmapi.API MtpsAPI *mtpsapi.API DadaAPI *dadaapi.API WeixinAPI *weixinapi.API // 微信公众号 WeixinMiniAPI *weixinapi.API // 小程序 WeixinApp *weixinapi.API // app微信登录 WxpayAPI *wxpayapi.API // 微信支付AppAPI WxpayAPI2 *wxpayapi.API // 微信支付小程序API TLpayAPI *tonglianpayapi.API //通联收银宝api MtMemberAPI *mtmemberapi.API YinBaoAPI *yinbaoapi.API //银豹平台api WeixinPageAPI *weixinapi.API // 用户微信扫码登录 AliPayAPI *alipayapi.API TxAPI *txcloudapi.API AutonaviAPI *autonavi.API BaiDuNaviAPI *baidunavi.API QiniuAPI *qbox.Mac ShowAPI *showapi.API WeimobAPI *weimobapi.API DingDingAPI *dingdingapi.API DingDingQRCodeAPI *dingdingapi.API AliUpcAPI *aliupcapi.API //阿里商品条码查询api EjyAPI *ejyapi.API //易加油 FeieAPI *feieapi.API XiaoWMAPI *xiaowmapi.API YilianyunAPI *yilianyunapi.API YilianyunAPI2 *yilianyunapi.API ZhongwuAPI *zhongwuapi.API PushAPI *unipushapi.API Cacher cache.ICacher SMSClient *aliyunsmsclient.SmsClient MtUnionAPI *mtunionapi.API ) 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("", 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", "")) } if globals.Jd3OrgCode != "" { Jd3API = jdapi.New(beego.AppConfig.String("jd3Token"), beego.AppConfig.String("jd3AppKey"), beego.AppConfig.String("jd3Secret")) } fakeJdToken := beego.AppConfig.DefaultString("fakeJdToken", "") if fakeJdToken != "" { FakeJdAPI = jdapi.NewFakeJD(fakeJdToken, beego.AppConfig.String("fakeJdBaseURL")) } } else { JdAPI = nil } if !beego.AppConfig.DefaultBool("disableJdEclp", false) { JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret")) } else { JdEclpAPI = nil } if !beego.AppConfig.DefaultBool("disableJdShop", false) { JdShopAPI = jdshopapi.New(beego.AppConfig.String("jdShopAccessToken"), beego.AppConfig.String("jdShopAppKey"), beego.AppConfig.String("jdShopAppSecret")) // if jdsCookie := beego.AppConfig.DefaultString("jdsCookie", ""); jdsCookie != "" { // JdShopAPI.SetCookieWithStr(jdsCookie) // } } else { JdShopAPI = 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", "") // ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "") // if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" && ebaiStorePageCookieExdTOKEN != "" { // EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) // EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) // EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) // } Ebai2API = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) // ebaiStorePageCookieWMUSS2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS2", "") // ebaiStorePageCookieWMSTOKEN2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN2", "") // if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" && ebaiStorePageCookieExdTOKEN != "" { // Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) // Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) // Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) // } } else { EbaiAPI = nil Ebai2API = nil } if !beego.AppConfig.DefaultBool("disableYb", false) { YinBaoAPI = yinbaoapi.New(beego.AppConfig.String("yinbaoAppKey"), beego.AppConfig.String("yinbaoAppID")) } else { YinBaoAPI = 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("weixinID"), 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")) WeixinApp = weixinapi.New(beego.AppConfig.String("weixinAppID"), beego.AppConfig.String("weixinAppSecret")) certPEMBlock, _ := ioutil.ReadFile("conf/apiclient_cert.pem") keyPEMBlock, _ := ioutil.ReadFile("conf/apiclient_key.pem") WxpayAPI = wxpayapi.NewWithCertificate(beego.AppConfig.String("wxpayAppID1"), beego.AppConfig.String("wxpayAppKey"), beego.AppConfig.String("wxpayAppMchID"), certPEMBlock, keyPEMBlock) WxpayAPI2 = wxpayapi.NewWithCertificate(beego.AppConfig.String("wxpayAppID2"), beego.AppConfig.String("wxpayAppKey"), beego.AppConfig.String("wxpayAppMchID"), certPEMBlock, keyPEMBlock) if globals.TLPayNotifyURL != "" { TLpayAPI = tonglianpayapi.New(beego.AppConfig.String("tonglianPayAppID"), beego.AppConfig.String("tonglianPayKey"), beego.AppConfig.String("tonglianPayCusID")) } 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", "")) AliUpcAPI = aliupcapi.New(beego.AppConfig.String("aliUpcAppCode")) TxAPI = txcloudapi.New(beego.AppConfig.String("txCloudSecretID"), beego.AppConfig.String("txCloudSecretKey")) 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"))) } EjyAPI = ejyapi.New(beego.AppConfig.DefaultString("ejyPlatName", ""), beego.AppConfig.DefaultString("ejyBeforeKey", ""), beego.AppConfig.DefaultString("ejyAfterKey", "")) 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", "")) PushAPI = unipushapi.New(beego.AppConfig.DefaultString("pushAppID", ""), beego.AppConfig.DefaultString("pushAppKey", ""), beego.AppConfig.DefaultString("pushAppSecret", ""), beego.AppConfig.DefaultString("pushMasterSecret", "")) MtMemberAPI = mtmemberapi.New() SMSClient = aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/") MtUnionAPI = mtunionapi.New(beego.AppConfig.DefaultString("mtUnionAppKey", ""), beego.AppConfig.DefaultString("mtUnionAppSecret", "")) }