Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
WeComApi
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
changjin.pan
WeComApi
Commits
279b3b21
Commit
279b3b21
authored
May 17, 2022
by
changjin.pan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
企业微信 获取访客身份接口
parent
7d365da0
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
212 additions
and
51 deletions
+212
-51
SigerWeComThirdService.cs
src/Siger.WeComApi.Biz/service/SigerWeComThirdService.cs
+28
-46
CacheUtility.cs
src/Siger.WeComApi.Common/Cache/CacheUtility.cs
+44
-0
WeComThirdHelper.cs
src/Siger.WeComApi.Common/Helpers/WeComThirdHelper.cs
+134
-2
ISigerWeComThirdService.cs
src/Siger.WeComApi.Core/Biz/ISigerWeComThirdService.cs
+1
-1
ISigerWeComCompanyRepository.cs
....WeComApi.Core/Repository/ISigerWeComCompanyRepository.cs
+1
-0
UserController.cs
src/Siger.WeComApi.WebApi/Controllers/UserController.cs
+3
-1
Program.cs
src/Siger.WeComApi.WebApi/Program.cs
+1
-1
No files found.
src/Siger.WeComApi.Biz/service/SigerWeComThirdService.cs
View file @
279b3b21
...
@@ -14,6 +14,7 @@ using Newtonsoft.Json.Linq;
...
@@ -14,6 +14,7 @@ using Newtonsoft.Json.Linq;
using
Newtonsoft.Json
;
using
Newtonsoft.Json
;
using
Siger.WeComApi.Core.Domain.Entity
;
using
Siger.WeComApi.Core.Domain.Entity
;
using
Siger.WeComApi.Core.Repository
;
using
Siger.WeComApi.Core.Repository
;
using
Siger.WeComApi.Core.Dto.Response
;
namespace
Siger.WeComApi.Biz.service
namespace
Siger.WeComApi.Biz.service
{
{
...
@@ -170,7 +171,6 @@ namespace Siger.WeComApi.Biz.service
...
@@ -170,7 +171,6 @@ namespace Siger.WeComApi.Biz.service
}
}
}
}
//响应应答处理
//响应应答处理
return
ReceiveResponse
(
decryptionParame
,
timestamp
,
signature
,
Token
,
EncodingAESKey
,
CorpID
);
return
ReceiveResponse
(
decryptionParame
,
timestamp
,
signature
,
Token
,
EncodingAESKey
,
CorpID
);
}
}
...
@@ -180,43 +180,16 @@ namespace Siger.WeComApi.Biz.service
...
@@ -180,43 +180,16 @@ namespace Siger.WeComApi.Biz.service
public
void
GetPermentCode
(
string
authCode
)
public
void
GetPermentCode
(
string
authCode
)
{
{
//通过auth code获取公司信息及永久授权码
//通过auth code获取公司信息及永久授权码
WeComThirdHelper
weComThirdHelper
=
new
WeComThirdHelper
();
JObject
postJson
=
new
JObject
();
JObject
postJson
=
new
JObject
();
postJson
[
"auth_code"
]
=
authCode
;
postJson
[
"auth_code"
]
=
authCode
;
string
suitAccessToken
=
GetSuiteToken
();
var
suitAccessToken
=
weComThirdHelper
.
GetSuiteAccessToken
();
WeComThirdHelper
weComThirdHelper
=
new
WeComThirdHelper
();
string
pUrl
=
weComThirdHelper
.
GetPermanentCodeUrl
()
+
suitAccessToken
;
string
pUrl
=
weComThirdHelper
.
GetPermanentCodeUrl
()
+
suitAccessToken
;
string
corpInfo
=
weComThirdHelper
.
post
(
pUrl
+
""
,
postJson
);
string
corpInfo
=
weComThirdHelper
.
post
(
pUrl
+
""
,
postJson
);
//将授权的客户企业存入数据库 补充报错的判断!!!
//将授权的客户企业存入数据库 补充报错的判断!!!
InsertWeComCompany
(
corpInfo
);
InsertWeComCompany
(
corpInfo
);
}
}
private
string
GetSuiteToken
()
{
WeComThirdHelper
weComThirdHelper
=
new
WeComThirdHelper
();
JObject
postJson
=
new
JObject
();
postJson
[
"suite_id"
]
=
SuiteID
;
postJson
[
"suite_secret"
]
=
SuiteSecret
;
postJson
[
"suite_ticket"
]
=
weComThirdHelper
.
GetTicket
();
if
(
string
.
IsNullOrEmpty
(
postJson
[
"suite_ticket"
].
ToString
()))
{
string
errorMsg
=
"获取suite_ticket失败,请手动推送ticket,或等待10分钟系统自动推送"
;
_logger
.
Info
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
}
var
posdata
=
JsonConvert
.
SerializeObject
(
postJson
);
string
response
=
weComThirdHelper
.
post
(
weComThirdHelper
.
GetSuiteTokenUrl
(),
postJson
);
JObject
suiteJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
suiteJson
[
"errcode"
]
!=
null
)
{
string
errorMsg
=
string
.
Format
(
"获取suite_access_token失败:errcode{0},errmsg{1}"
,
suiteJson
[
"errcode"
],
suiteJson
[
"errmsg"
]);
_logger
.
Info
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
}
string
suite_access_token
=
suiteJson
[
"suite_access_token"
].
ToString
();
weComThirdHelper
.
SetSuiteToken
(
suite_access_token
);
return
suite_access_token
;
}
#
region
响应应答处理
#
region
响应应答处理
/// <summary>
/// <summary>
/// 响应应答处理
/// 响应应答处理
...
@@ -374,14 +347,12 @@ namespace Siger.WeComApi.Biz.service
...
@@ -374,14 +347,12 @@ namespace Siger.WeComApi.Biz.service
return
replyMsg
;
return
replyMsg
;
}
}
private
string
InsertWeComCompany
(
string
corpInfo
)
private
string
InsertWeComCompany
(
string
corpInfo
)
{
{
JObject
corpJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
corpInfo
);
JObject
corpJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
corpInfo
);
if
(
corpJson
[
"errcode"
]
!=
null
)
if
(
corpJson
[
"errcode"
]
!=
null
)
{
{
string
errorMsg
=
string
.
Format
(
"获取企业信息及永久授权码失败:errcode{0},errmsg{1}"
,
corpJson
[
"errcode"
],
corpJson
[
"errmsg"
]);
string
errorMsg
=
string
.
Format
(
"获取企业信息及永久授权码失败:errcode{0},errmsg{1}"
,
corpJson
[
"errcode"
],
corpJson
[
"errmsg"
]);
_logger
.
Info
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
}
}
var
authCorpInfo
=
corpJson
[
"auth_corp_info"
].
ToString
();
var
authCorpInfo
=
corpJson
[
"auth_corp_info"
].
ToString
();
...
@@ -393,29 +364,40 @@ namespace Siger.WeComApi.Biz.service
...
@@ -393,29 +364,40 @@ namespace Siger.WeComApi.Biz.service
}
}
public
string
GetUserInfo
(
string
code
)
public
ResponseWeComUser
GetUserInfo
(
string
code
)
{
{
//获取访客身份
WeComThirdHelper
weComThirdHelper
=
new
WeComThirdHelper
();
WeComThirdHelper
weComThirdHelper
=
new
WeComThirdHelper
();
JObject
postJson
=
new
JObject
();
JObject
postJson
=
new
JObject
();
postJson
[
"suite_access_token"
]
=
GetSuiteToken
();
var
suite_access_token
=
weComThirdHelper
.
GetSuiteAccessToken
();
postJson
[
"code"
]
=
code
;
var
userinfo3rdUrl
=
weComThirdHelper
.
GetUserinfo3rdUrl
()
+
"?suite_access_token="
+
suite_access_token
+
"&js_code="
+
code
+
"&grant_type="
+
"authorization_code"
;
if
(
string
.
IsNullOrEmpty
(
postJson
[
"suite_access_token"
].
ToString
()))
string
response
=
weComThirdHelper
.
post
(
userinfo3rdUrl
,
null
);
JObject
userInfoJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
userInfoJson
[
"errcode"
].
ToString
()
!=
"0"
)
{
{
string
errorMsg
=
"获取suite_access_token失败"
;
string
errorMsg
=
string
.
Format
(
"获取访客身份失败,errcode: {0},errmsg: {1}"
,
userInfoJson
[
"errcode"
],
userInfoJson
[
"errmsg"
]);
_logger
.
Info
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
}
}
var
posdata
=
JsonConvert
.
SerializeObject
(
postJson
);
var
userinfo3rdUrl
=
weComThirdHelper
.
GetUserinfo3rdUrl
()
+
"?suite_access_token="
+
GetSuiteToken
()
+
"&code="
+
code
;
//获取当前用户所属公司的永久授权码
string
response
=
weComThirdHelper
.
post
(
userinfo3rdUrl
,
null
);
siger_wecom_company
curCompany
=
_sigerWeComCompanyRepository
.
GetSigerWeComCompany
(
""
,
userInfoJson
[
"corpid"
].
ToString
());
JObject
userInfoJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
curCompany
==
null
)
if
(
userInfoJson
[
"errcode"
]
!=
null
)
{
{
string
errorMsg
=
string
.
Format
(
"获取访客身份失败:errcode{0},errmsg{1}"
,
userInfoJson
[
"errcode"
],
userInfoJson
[
"errmsg"
]);
string
errorMsg
=
string
.
Format
(
"获取访客身份失败,errcode: {0},errmsg: {1}"
,
""
,
"数据库中未找到当前授权公司"
);
_logger
.
Info
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
throw
new
Exception
(
errorMsg
);
}
}
return
JsonConvert
.
SerializeObject
(
userInfoJson
);
//获取客户企业凭证
string
accessToken
=
weComThirdHelper
.
GetCorpAccessToken
(
curCompany
.
corpid
,
curCompany
.
permanent_code
);
//获取访客敏感信息
var
userAllInfo
=
weComThirdHelper
.
GetUserAllInfo
(
accessToken
,
userInfoJson
[
"userid"
].
ToString
());
JObject
userAllInfoJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
userAllInfo
);
ResponseWeComUser
company
=
JsonConvert
.
DeserializeObject
<
ResponseWeComUser
>(
userAllInfoJson
.
ToString
());
company
.
corpid
=
curCompany
.
corpid
;
company
.
corpname
=
curCompany
.
corp_name
;
return
company
;
}
}
}
}
...
...
src/Siger.WeComApi.Common/Cache/CacheUtility.cs
View file @
279b3b21
...
@@ -221,6 +221,32 @@ namespace Siger.WeComApi.Common.cache
...
@@ -221,6 +221,32 @@ namespace Siger.WeComApi.Common.cache
/// <param name="value"></param>
/// <param name="value"></param>
/// <param name="overtime">单位-秒</param>
/// <param name="overtime">单位-秒</param>
/// <returns></returns>
/// <returns></returns>
public
bool
Set
(
string
key
,
string
value
,
int
overtime
=
-
1
)
{
if
(
Client
==
null
)
{
return
false
;
}
try
{
byte
[]
temparr
=
SerializeObject
(
value
);
return
Client
.
Set
(
key
,
temparr
,
overtime
);
}
catch
(
Exception
ex
)
{
logger
.
Error
(
ex
,
new
{
key
,
value
,
overtime
},
key
);
}
return
false
;
}
/// <summary>
/// 设置缓存
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="value"></param>
/// <param name="overtime">单位-秒</param>
/// <returns></returns>
public
async
Task
<
bool
>
SetAsync
<
T
>(
string
key
,
T
value
,
int
overtime
=
-
1
)
public
async
Task
<
bool
>
SetAsync
<
T
>(
string
key
,
T
value
,
int
overtime
=
-
1
)
{
{
if
(
Client
==
null
)
if
(
Client
==
null
)
...
@@ -313,6 +339,24 @@ namespace Siger.WeComApi.Common.cache
...
@@ -313,6 +339,24 @@ namespace Siger.WeComApi.Common.cache
return
false
;
return
false
;
}
}
public
long
Del
(
params
string
[]
key
)
{
if
(
Client
==
null
)
{
return
0
;
}
try
{
return
Client
.
Del
(
key
);
}
catch
(
Exception
ex
)
{
logger
.
Error
(
ex
,
new
{
key
});
}
return
0
;
}
public
long
DeleteHost
(
string
HostHash
,
string
key
)
public
long
DeleteHost
(
string
HostHash
,
string
key
)
{
{
if
(
Client
==
null
)
if
(
Client
==
null
)
...
...
src/Siger.WeComApi.Common/Helpers/WeComThirdHelper.cs
View file @
279b3b21
...
@@ -3,9 +3,11 @@ using System.Collections.Generic;
...
@@ -3,9 +3,11 @@ using System.Collections.Generic;
using
System.IO
;
using
System.IO
;
using
System.Net
;
using
System.Net
;
using
System.Text
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Timers
;
using
System.Timers
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
using
Newtonsoft.Json.Linq
;
using
Siger.WeComApi.Common.cache
;
namespace
Siger.ApiTPM.Utilities
namespace
Siger.ApiTPM.Utilities
{
{
...
@@ -18,6 +20,7 @@ namespace Siger.ApiTPM.Utilities
...
@@ -18,6 +20,7 @@ namespace Siger.ApiTPM.Utilities
private
readonly
string
Token
=
"VA7Ua2huaUKmjhaxakxCO2iYQYKCa6"
;
private
readonly
string
Token
=
"VA7Ua2huaUKmjhaxakxCO2iYQYKCa6"
;
private
readonly
string
CorpID
=
"ww99ade71da501313d"
;
private
readonly
string
CorpID
=
"ww99ade71da501313d"
;
private
readonly
string
EncodingAESKey
=
"M1s6eo7BEBmxNw2Tj8TeQPKKT6zqKOyYRWkpuN8kmnn"
;
private
readonly
string
EncodingAESKey
=
"M1s6eo7BEBmxNw2Tj8TeQPKKT6zqKOyYRWkpuN8kmnn"
;
private
readonly
string
ProviderSecret
=
"YfzQU3nKNSLAPM9-c4kHtP5hCTFG2p3xbJlFtsIlsxCPgs15079tYNL94Xb5Rf0s"
;
//企微应用关联的小程序信息
//企微应用关联的小程序信息
private
readonly
string
SuiteID
=
"wwb172cebe81bae0af"
;
private
readonly
string
SuiteID
=
"wwb172cebe81bae0af"
;
private
readonly
string
SuiteSecret
=
"aHB2yPhKX8AsRp-c_8UBrhOju7ahxu8Rq3LLuRVrRo8"
;
private
readonly
string
SuiteSecret
=
"aHB2yPhKX8AsRp-c_8UBrhOju7ahxu8Rq3LLuRVrRo8"
;
...
@@ -39,13 +42,18 @@ namespace Siger.ApiTPM.Utilities
...
@@ -39,13 +42,18 @@ namespace Siger.ApiTPM.Utilities
private
string
ssoAuthUrl
=
"https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=%s&redirect_uri=%s&state=%s&usertype=%s"
;
private
string
ssoAuthUrl
=
"https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=%s&redirect_uri=%s&state=%s&usertype=%s"
;
private
string
loginInfoUrl
=
serviceUrl
+
"get_login_info?access_token=%s"
;
private
string
loginInfoUrl
=
serviceUrl
+
"get_login_info?access_token=%s"
;
//第三方应用身份验证
//第三方应用身份验证
private
string
getuserinfo3rdUrl
=
serviceUrl
+
"getuserinfo3rd"
;
private
string
getuserinfo3rdUrl
=
serviceUrl
+
"miniprogram/jscode2session"
;
private
static
string
userUrl
=
baseUrl
+
"user/"
;
private
string
getUserAllInfo
=
userUrl
+
"get"
;
//加密coprid
private
string
corpIDToOpenCorpIDUrl
=
serviceUrl
+
"corpid_to_opencorpid"
;
//通讯录转译
//通讯录转译
private
string
contactUploadUrl
=
serviceUrl
+
"media/upload?provider_access_token=%s&type=%s"
;
private
string
contactUploadUrl
=
serviceUrl
+
"media/upload?provider_access_token=%s&type=%s"
;
private
string
contactTransUrl
=
serviceUrl
+
"contact/id_translate?provider_access_token=%s"
;
private
string
contactTransUrl
=
serviceUrl
+
"contact/id_translate?provider_access_token=%s"
;
private
string
transResultUrl
=
serviceUrl
+
"batch/getresult?provider_access_token=%s&jobid=%s"
;
private
string
transResultUrl
=
serviceUrl
+
"batch/getresult?provider_access_token=%s&jobid=%s"
;
//公司相关
//公司相关
private
string
corpTokenUrl
=
serviceUrl
+
"get_corp_token?suite_access_token=
%s
"
;
private
string
corpTokenUrl
=
serviceUrl
+
"get_corp_token?suite_access_token="
;
private
string
departmentUrl
=
baseUrl
+
"department/list?access_token=%s"
;
private
string
departmentUrl
=
baseUrl
+
"department/list?access_token=%s"
;
private
string
userSimplelistUrl
=
baseUrl
+
"user/simplelist?access_token=%s&department_id=%s&fetch_child=%s"
;
private
string
userSimplelistUrl
=
baseUrl
+
"user/simplelist?access_token=%s&department_id=%s&fetch_child=%s"
;
private
string
userDetailUrl
=
baseUrl
+
"user/get?access_token={access_token}&userid={user_id}"
;
private
string
userDetailUrl
=
baseUrl
+
"user/get?access_token={access_token}&userid={user_id}"
;
...
@@ -133,11 +141,135 @@ namespace Siger.ApiTPM.Utilities
...
@@ -133,11 +141,135 @@ namespace Siger.ApiTPM.Utilities
return
suiteTokenUrl
;
return
suiteTokenUrl
;
}
}
/// <summary>
/// 获取客户企业凭证
/// </summary>
/// <returns></returns>
public
string
GetCorpAccessToken
(
string
corpid
,
string
permanentCode
)
{
string
preAccessToken
=
corpid
+
"AccessToken"
;
string
accessToken
=
CacheUtility
.
Instance
.
GetString
(
preAccessToken
);
if
(
string
.
IsNullOrEmpty
(
accessToken
))
{
JObject
postJson
=
new
JObject
();
postJson
[
"auth_corpid"
]
=
corpid
;
postJson
[
"permanent_code"
]
=
permanentCode
;
string
url
=
corpTokenUrl
+
GetSuiteAccessToken
();
string
response
=
post
(
url
,
postJson
);
JObject
accessTokenJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
accessTokenJson
[
"errcode"
]
!=
null
)
{
string
errorMsg
=
string
.
Format
(
"获取企业{0}应用凭证失败,errcode: {1},errmsg: {2}"
,
corpid
,
accessTokenJson
[
"errcode"
],
accessTokenJson
[
"errmsg"
]);
throw
new
Exception
(
errorMsg
);
}
accessToken
=
accessTokenJson
[
"access_token"
].
ToString
();
CacheUtility
.
Instance
.
Set
(
preAccessToken
,
accessToken
,
7150
);
//2小时过期的token,此处提前50秒清空
}
return
accessToken
;
}
/// <summary>
/// 第三方应用 获取访客身份url(简单信息)
/// </summary>
/// <returns></returns>
public
string
GetUserinfo3rdUrl
()
public
string
GetUserinfo3rdUrl
()
{
{
return
getuserinfo3rdUrl
;
return
getuserinfo3rdUrl
;
}
}
/// <summary>
/// 第三方应用 获取访客身份(敏感信息)
/// </summary>
/// <returns></returns>
public
string
GetUserAllInfo
(
string
accessToken
,
string
userid
)
{
JObject
postJson
=
new
JObject
();
var
url
=
getUserAllInfo
+
"?access_token="
+
accessToken
+
"&userid="
+
userid
;
string
response
=
post
(
url
,
null
);
return
response
;
}
/// <summary>
/// 获取第三方应用凭证
/// </summary>
/// <returns></returns>
public
string
GetSuiteAccessToken
()
{
var
suiteAccessToken
=
CacheUtility
.
Instance
.
GetString
(
"SuiteAccessToken"
);
if
(
string
.
IsNullOrEmpty
(
suiteAccessToken
))
{
JObject
postJson
=
new
JObject
();
postJson
[
"suite_id"
]
=
SuiteID
;
postJson
[
"suite_secret"
]
=
SuiteSecret
;
postJson
[
"suite_ticket"
]
=
GetTicket
();
if
(
string
.
IsNullOrEmpty
(
postJson
[
"suite_ticket"
].
ToString
()))
{
string
errorMsg
=
"获取suite_ticket失败,请手动推送ticket,或等待10分钟系统自动推送"
;
throw
new
Exception
(
errorMsg
);
}
string
response
=
post
(
suiteTokenUrl
,
postJson
);
JObject
suiteAccessTokenJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
suiteAccessTokenJson
[
"errcode"
]
!=
null
)
{
string
errorMsg
=
string
.
Format
(
"获取第三方应用凭证失败,errcode: {0},errmsg: {1}"
,
suiteAccessTokenJson
[
"errcode"
],
suiteAccessTokenJson
[
"errmsg"
]);
throw
new
Exception
(
errorMsg
);
}
suiteAccessToken
=
suiteAccessTokenJson
[
"suite_access_token"
].
ToString
();
CacheUtility
.
Instance
.
Set
(
"SuiteAccessToken"
,
suiteAccessToken
,
7150
);
//2小时过期的token,此处提前50秒清零
}
return
suiteAccessToken
;
}
/// <summary>
/// 获取供应商token(西格的AccessToken)
/// </summary>
/// <returns></returns>
public
string
GetProviderAccessToken
()
{
var
providerToken
=
CacheUtility
.
Instance
.
GetString
(
"ProvideAccessToken"
);
if
(
string
.
IsNullOrEmpty
(
providerToken
))
{
JObject
postJson
=
new
JObject
();
postJson
[
"corpid"
]
=
CorpID
;
postJson
[
"provider_secret"
]
=
ProviderSecret
;
var
response
=
post
(
providerTokenUlr
,
postJson
);
JObject
providerTokenJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
providerTokenJson
[
"errcode"
]
!=
null
)
{
string
errorMsg
=
string
.
Format
(
"获取服务商凭证失败,errcode: {0},errmsg: {1}"
,
providerTokenJson
[
"errcode"
],
providerTokenJson
[
"errmsg"
]);
throw
new
Exception
(
errorMsg
);
}
providerToken
=
providerTokenJson
[
"provider_access_token"
].
ToString
();
CacheUtility
.
Instance
.
Set
(
"ProvideAccessToken"
,
providerToken
,
7150
);
//2小时过期的token,此处提前50秒清零
}
return
providerToken
;
}
/// <summary>
/// 转化为加密后的corpid
/// </summary>
/// <returns></returns>
public
string
ToOpenCorpid
(
string
corpID
)
{
string
provideAccessToken
=
GetProviderAccessToken
();
string
url
=
corpIDToOpenCorpIDUrl
+
"?provider_access_token="
+
provideAccessToken
;
JObject
postJson
=
new
JObject
();
postJson
[
"corpid"
]
=
corpID
;
string
response
=
post
(
url
,
postJson
);
JObject
openCorpIDJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
response
);
if
(
openCorpIDJson
[
"errcode"
]
!=
null
)
{
string
errorMsg
=
string
.
Format
(
"openCorpID,errcode: {0},errmsg: {1}"
,
openCorpIDJson
[
"errcode"
],
openCorpIDJson
[
"errmsg"
]);
throw
new
Exception
(
errorMsg
);
}
return
openCorpIDJson
.
ToString
();
}
/// <summary>
/// post请求方法
/// </summary>
/// <returns></returns>
public
string
post
(
string
posturl
,
JObject
json
)
public
string
post
(
string
posturl
,
JObject
json
)
{
{
var
posdata
=
JsonConvert
.
SerializeObject
(
json
);
var
posdata
=
JsonConvert
.
SerializeObject
(
json
);
...
...
src/Siger.WeComApi.Core/Biz/ISigerWeComThirdService.cs
View file @
279b3b21
...
@@ -13,7 +13,7 @@ namespace Siger.WeComApi.Core.Biz
...
@@ -13,7 +13,7 @@ namespace Siger.WeComApi.Core.Biz
string
InstructCallback
(
HttpRequest
request
);
string
InstructCallback
(
HttpRequest
request
);
string
GetUserInfo
(
string
code
);
ResponseWeComUser
GetUserInfo
(
string
code
);
}
}
}
}
src/Siger.WeComApi.Core/Repository/ISigerWeComCompanyRepository.cs
View file @
279b3b21
...
@@ -5,6 +5,7 @@ namespace Siger.WeComApi.Core.Repository
...
@@ -5,6 +5,7 @@ namespace Siger.WeComApi.Core.Repository
{
{
public
interface
ISigerWeComCompanyRepository
:
IRepositoryBase
<
siger_wecom_company
>
public
interface
ISigerWeComCompanyRepository
:
IRepositoryBase
<
siger_wecom_company
>
{
{
siger_wecom_company
GetSigerWeComCompany
(
string
id
,
string
corpid
);
string
AddSigerWeComCompany
(
siger_wecom_company
siger_wecom_company
);
string
AddSigerWeComCompany
(
siger_wecom_company
siger_wecom_company
);
}
}
...
...
src/Siger.WeComApi.WebApi/Controllers/UserController.cs
View file @
279b3b21
...
@@ -8,6 +8,7 @@ using Siger.WeComApi.Core.Biz;
...
@@ -8,6 +8,7 @@ using Siger.WeComApi.Core.Biz;
using
Siger.WeComApi.Common.Filter
;
using
Siger.WeComApi.Common.Filter
;
using
Siger.WeComApi.Common.CommonModels
;
using
Siger.WeComApi.Common.CommonModels
;
using
Siger.WeComApi.Common.Enums
;
using
Siger.WeComApi.Common.Enums
;
using
Siger.WeComApi.Core.Dto.Response
;
namespace
Siger.ApiTPM.Controllers
namespace
Siger.ApiTPM.Controllers
{
{
...
@@ -32,12 +33,13 @@ namespace Siger.ApiTPM.Controllers
...
@@ -32,12 +33,13 @@ namespace Siger.ApiTPM.Controllers
string
result
=
"success"
;
string
result
=
"success"
;
try
try
{
{
string
userInfo
=
_sigerWeComThirdService
.
GetUserInfo
(
code
);
ResponseWeComUser
userInfo
=
_sigerWeComThirdService
.
GetUserInfo
(
code
);
return
new
ResponseBase
(
1
,
1
,
userInfo
);
return
new
ResponseBase
(
1
,
1
,
userInfo
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
result
=
"企微回调异常:"
+
ex
.
Message
;
result
=
"企微回调异常:"
+
ex
.
Message
;
_logger
.
Info
(
result
);
return
new
ResponseBase
(
1
,
1
,
result
);
return
new
ResponseBase
(
1
,
1
,
result
);
}
}
}
}
...
...
src/Siger.WeComApi.WebApi/Program.cs
View file @
279b3b21
...
@@ -20,7 +20,7 @@ namespace Siger.WeComApi.WebApi
...
@@ -20,7 +20,7 @@ namespace Siger.WeComApi.WebApi
.
ConfigureWebHostDefaults
(
webBuilder
=>
.
ConfigureWebHostDefaults
(
webBuilder
=>
{
{
webBuilder
.
UseStartup
<
Startup
>();
webBuilder
.
UseStartup
<
Startup
>();
webBuilder
.
UseUrls
(
args
.
Length
>
1
?
$"http://*:
{
args
[
1
]}
"
:
"http://*:
7008
"
);
webBuilder
.
UseUrls
(
args
.
Length
>
1
?
$"http://*:
{
args
[
1
]}
"
:
"http://*:
8105
"
);
}).
ConfigureAppConfiguration
((
hostingContext
,
config
)
=>
}).
ConfigureAppConfiguration
((
hostingContext
,
config
)
=>
{
{
var
env
=
hostingContext
.
HostingEnvironment
;
var
env
=
hostingContext
.
HostingEnvironment
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment