Files
jx-callback/globals/api/api.go
苏尹岚 70db40b68d ejy
2020-12-02 14:12:55 +08:00

261 lines
12 KiB
Go

package api
import (
"io/ioutil"
"time"
"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"
"github.com/astaxie/beego"
"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
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
)
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("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"))
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"), beego.AppConfig.String("wxpayAppID"))
}
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"))
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/")
}