Files
jx-callback/globals/api/api.go
2020-05-19 09:20:35 +08:00

244 lines
15 KiB
Go

package api
import (
"time"
"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
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 // 小程序
WeixinMiniAPI2 *weixinapi.API // 小程序2
WeixinMiniAppID2 string
WxpayAPI *wxpayapi.API // 微信支付API
TLpayAPI *tonglianpayapi.API //通联收银宝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
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("", 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", ""))
}
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"))
JdShopAPI.SetCookieWithStr(`
shshshfpa=13b38d4a-8ba0-df12-0012-82d9a37fb835-1573795914; shshshfpb=abYp8Dq5JobRtp2pkZa7MbA%3D%3D; __jdu=1142616513; pinId=WMIzMhF5BfL6nJp9AcA2-A; pin=shop_jxcs; unick=shop_jxcs; _tp=7FBEvLyPe%2FKcgxsfY5lRgA%3D%3D; _pst=shop_jxcs; areaId=22; ipLoc-djd=22-1930-50948-57092; user-key=3ec204b4-f204-4320-98e3-b2569c757800; cn=0; shshshfp=5d23828ee6ea3a33e1a58588db1713f8; 3AB9D23F7A4B3C9B=AK36FFYF5J6WMPRH7YTXMEX4CATHR6NAA3IQEESU2I33FEJRQ3DRLU4SZJYD2XGFLCFW43DHYP5HQKOMR4EFQSLKLA; navigation=[%22shop_jxcs%22]; __jdv=122270672|baidu|-|organic|not set|1589514011252; language=zh_CN; ceshi3.com=000; csrf_token=b84d0a5c-6288-4db4-84e1-cadf66be3bf7; TrackID=1mf59oL8bhGmxKafDNKtK22JkkYDkXGMo1VABMtz44qA8oGW9UhAFb8h3DZBTnuIgp0dSg__LhVrqqJuX8KS5bbC586eTUzJWySwYub-KHFk; __jda=65775340.1142616513.1573036516.1589794225.1589847656.47; __jdc=65775340; _BELONG_CLIENT_=WPSC4XJXWK5USS4JNZY2X7VRLR5MCBKRSVHEXABGTHDGISIQK5YOLZUXYE7IOIM7MOKO74H6CRN6WHAAR4TMDV3XZWMXZRCRT5XRNE3V356BTOB2Y7LPK66VWQK6HPTGWVXIDXDCPVE3W5WMHAIO6AT2LX2XXVNUCXR34ZWFK6HY45CORGIKOSYDYZBF27WOKTUX6BS4FZMIJWNUX6CB4JAA25ZLF7ZEKYOO4QV5HTSBXGNRM3E242MBI6V5D4C5VJDQ3EOYCOW5BMTUJZACIBHXQFAVLRF76VQY5PNJGGJNBEZHSFYYJA3YORRT7FB5AHCOIFQKF3W5RWNUX6CB4JAA26JNMO7AYWNUPZF5HTSBXGNRM3E242MBI6V5D4C5VJDQ3EOYCOW5BWZDKMOJ5BS6II53ERY6ALV3ZWPF42L4CPUHEGPYIII35KDC4FCNVCORCXFD6IVNLBEDPB2GGP4UHWNRUDOQBDIW7RZJXBA2WV5ANZOTEGUCDWYRVQS2YUTIZNZ276PRYG4N56V6YTII7MBKBC7LYHO7C555HTSBXGNRM3E466AYN67DHWVM5HQFJ4NFDO5BTMQ4VCGRVBWMCZ2FUHOJJTIPPFA; _vender_new_=GI63BGTJFDBQ46CD7JXUX3HEPM4P5LEA3TJTFGW4ZGGIVOLTPK5T25EXTBLCENPUTR7E2I23YDFQ4ARO6JW3NHSWBDE73RTUKJTADIPFPLYFE3ARGJUBPHWUIONS72KRQOZC5P7PB4VPPLRHGEP7L3Z5K62L2E2MGTWHFJRQ3CAVBDYVW2Z4J6U73HW4BKKOCDAH5T6OJJKWKLBZFOTI7342QSL7YQ2E3I4T777RNZF23XGOTCP3D4INHNO5MNKT3XJZQBVHWUVZYQUXCK5QQTKWADKQUCYV3JRY6YAYOD7Z5IIKGNLREQTCPO7SYGSIS655JUGOUILFLXVZE6KCFG7ZTPRUD6VPE4KCIE5CLSIPNZNG2ZCS5DKGDVSHWBED4NA7VLZHCQSBHIS4SD3OLJWWIUGFXN4VE3UQCLW6QKUCCZAY7XTGOTMC53TFUYERGNIH2RBULZ7UTZH5GU3TC6RWFI2QL4QTAIARA6GNVXENEOYIPZEHN222YDAJX5OBBEECAMAPNKZ3XNF5CNGDJ3DSU2ZLOCAKLFPCYTIIWPPJMCQ636F5464HS4OVFPFNIDW4OCE23JRPYP5FAL6TKHPAC3H3ZRU7WA5GKJJKBZUGIX7NEO4LZB7FJ3RZZZH3UHPQMNILD5DT2V7HVCUOVNOFBFLC7GXULW4F4OAIXIIXDVKJSSHA; b-sec=S2JWP6CAFP7K4I6PXVBUVCO6YVXUX2JAPDHLX5RZUDE4YKCGOEXD5Y5KD57Q6DNB7R2CIG73OJGRG; thor=80FAF09E9A09B6E618A68057BDFCFCB81804416EE1F5B89ACA22BA8D15BE0209A9B2004C89BBF4D37E2794B8639C730A6C3DD2DABF70F335A315D213AB777D8A7CABA3E1E8E6B50EFEA4203B9412129FB78E3FE1A45ACE35917D1C51C10621921038267C820748715A922BDEE1C770DA7949098A5236B87921DDBBA824383A6E9A740F3E03BBB53F8E137495D70CCE77; __jdb=65775340.16.1142616513|47.1589847656; _base_=YKH2KDFHMOZBLCUV7NSRBWQUJPBI7JIMU5R3EFJ5UDHJ5LCU7R2NILKK5UJ6GLA2RGYT464UKXAI4Z6HPCTN4UQM3WHVQ4ENFP57OC2DC7JQLRXRUO5PW6B77O6UXAZ4TCNE6YVKRXISVLBYGYO44RCDDPWDA4AEL7ZLXI2SG4SOQWCP5WPWO6EFS7HEHMRWVKBRVHB33TFD4SMNBHRJCTDFHU6SZXCZD6RFXX2OORYGL5H2GYF2IIH2KKD4T72IR4F577G2E5II2OMMXYF2GDYNTS7WGAUXFEWRJ3CTKDBDWMHUKJQF4ZFOTNBBYBIZRXZYERXXIG6ASIMLUMHQBISMZEIJTQDQIXHES3PCBNYDPXFCM2ZMCS474KZ44S5F; _vender_=TNK3O6PALVQGGA33SGBIUTOKL4OOE6DP6OMNVIPMAMULGTRFWUMTVWGFRUTYP4L4EPN3KP73P33BOBN5SNJFBNQB5M56XV3YQRPKMGF4V3KOC6WK77MT6B3ZLP2DV4JCXDI5P3KOXJ3PHLIIRZ2YVS4JSSA3JRSBACNLJSC24ELO46GIMRW53XGW36EBPLZMZP2MQCAMJNO44FKT46B7VDVT7KQTELESOOF6E377AYC3NWKQF6ICIYBW4BA4JL5QG2NHGNOHOUJDNUW3N22UF32DLFLEIQGVO2W55J6AKPPBT227XA5NO4S3NFVIUUUADGOYH56T72MTNXCILWVMN4RMUNVFMGL4ISGXJS7YILE7A2ESPAU43MISAOZM2BR53MGRB5OZSQZPV5DBDCN2OVVT3XT5N2VMFELARQNTMAJCDBGXFURSN2Q7SYULLKZEZHTYWWOI65LS5OIHLUZQKWFGMNSQF2UBSYV7FG46CWJGMVHOGV3FY4RUEVJK6BQ223QK3H3VMTHXCZOZV4GKR5EWGIZZDVUAK4B36BPA5HPBO7PXKBOEXEBX77IYBNQLCGMK72J4VKNOUPYKNB5JE5D5UN3R2MMFGLJARTL2QTC5ZRZ4PJCJZWWOV37VWLWFLLGZJW2KICAT25RZ6SYLHTV5VSLZ3UAETQ2ROBEOKMBSQDORSYCY7TMNQN7X7NMZ; _lvtc_=XV4SC6RTJIDFE3LSNRB22LADHI
`)
} 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"))
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")
}
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")))
}
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/")
}