Commit 616c8e1e authored by 吴春's avatar 吴春

也没修过

parent 4d88c49a
......@@ -122,34 +122,34 @@ namespace Edu.Common.Plugin
/// 获取微信授权手机号码
/// </summary>
/// <param name="encryptedData"></param>
/// <param name="sessionKey"></param>
/// <param name="code"></param>
/// <param name="ivStr"></param>
/// <returns></returns>
public static string GetWechatMobile(string encryptedData, string sessionKey, string ivStr)
public static result GetWechatMobile(string encryptedData, string code, string iv)
{
try
string Appid = Common.Config.JiaXiaoHeAppId;
var Secret = Common.Config.JiaXiaoHeAppSecret;
string grant_type = "authorization_code";
//向微信服务端 使用登录凭证 code 获取 session_key 和 openid
string url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + Appid + "&secret=" + Secret + "&js_code=" + code + "&grant_type=" + grant_type;
string type = "utf-8";
GetUsersHelper GetUsersHelper = new GetUsersHelper();
result res = new Common.Plugin.result();
string j = GetUsersHelper.GetUrltoHtml(url, type);//获取微信服务器返回字符串
//将字符串转换为json格式
JObject jo = JObject.Parse(j);
//微信服务器验证成功
res.openid = jo.GetStringValue("openid");
res.session_key = jo.GetStringValue("session_key");
if (!string.IsNullOrWhiteSpace(res.openid))
{
//16进制数据转换成byte
var encryptedDataByte = Convert.FromBase64String(encryptedData); // strToToHexByte(text);
var rijndaelCipher = new RijndaelManaged
if (!string.IsNullOrEmpty(encryptedData) && !string.IsNullOrEmpty(iv))
{
Key = Convert.FromBase64String(sessionKey),
IV = Convert.FromBase64String(ivStr),
Mode = CipherMode.CBC,
Padding = PaddingMode.PKCS7
};
var transform = rijndaelCipher.CreateDecryptor();
var plainText = transform.TransformFinalBlock(encryptedDataByte, 0, encryptedDataByte.Length);
var result = Encoding.Default.GetString(plainText);
return result;
}
catch (Exception ex)
{
return null;
//解析手机号码
res.phoneNumber = Common.EncryptionHelper.AES_decrypt(encryptedData, res.session_key, iv);
}
}
return res;
}
}
......
......@@ -240,19 +240,19 @@ namespace Edu.WebApi.Controllers.APP
}
else
{
//if (!string.IsNullOrEmpty(model.UnionId))//UnionId是否为空,为空则绑定手机号与UnionId
//{
// if (UnionId != model.UnionId)
// {
// return ApiResult.Failed("手机号与绑定的微信账户不一致", new { Error = 0 });
// }
//}
//else
//{
// model.UnionId = UnionId;
// model.OpenId = OpenId;
// var flag = accountModule.UpdateAccountUnionId(model);
//}
if (!string.IsNullOrEmpty(model.OpenId))//UnionId是否为空,为空则绑定手机号与UnionId
{
if (OpenId != model.OpenId)
{
return ApiResult.Failed("手机号与绑定的微信账户不一致", new { Error = 0 });
}
}
else
{
model.UnionId = UnionId;
model.OpenId = OpenId;
var flag = accountModule.UpdateAccountUnionId(model);
}
if (model.Status == Common.Enum.DateStateEnum.Delete)
{
return ApiResult.Failed(message: $"此账号【{ account }】已禁用", new { Error = 2 });
......@@ -337,41 +337,21 @@ namespace Edu.WebApi.Controllers.APP
string code = parms.GetStringValue("code");
string encryptedData = parms.GetStringValue("encryptedData");
string iv = parms.GetStringValue("iv");
Common.Plugin.result res = new Common.Plugin.result();
result res = new result();
try
{
string Appid = Common.Config.JiaXiaoHeAppId;
var Secret = Common.Config.JiaXiaoHeAppSecret;
string grant_type = "authorization_code";
//向微信服务端 使用登录凭证 code 获取 session_key 和 openid
string url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + Appid + "&secret=" + Secret + "&js_code=" + code + "&grant_type=" + grant_type;
string type = "utf-8";
GetUsersHelper GetUsersHelper = new GetUsersHelper();
JObject jo = null;
string _telPhone = "";
string j = GetUsersHelper.GetUrltoHtml(url, type);//获取微信服务器返回字符串
//将字符串转换为json格式
jo = JObject.Parse(j);
//微信服务器验证成功
res.openid = jo.GetStringValue("openid");
res.session_key = jo.GetStringValue("session_key");
if (!string.IsNullOrWhiteSpace(res.openid))
{
if (!String.IsNullOrEmpty(encryptedData) && !string.IsNullOrEmpty(iv))
{
//解析手机号码
_telPhone = Common.EncryptionHelper.AES_decrypt(encryptedData, res.session_key, iv);
res.phoneNumber = _telPhone;
}
}
res = Common.Plugin.WeChatHelper.GetWechatMobile(encryptedData, code, iv);
}
catch (Exception ex)
catch
{
Common.Plugin.LogHelper.Write(ex, string.Format("GetGuestWeiXinMobile:msg:{0},request:{1},URL:{2}", Common.Plugin.JsonHelper.Serialize(jo), RequestParm.Msg.ToString(), url));
return ApiResult.Failed("获取失败");
try
{
res = Common.Plugin.WeChatHelper.GetWechatMobile(encryptedData, code, iv);
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetGuestWeiXinMobile");
}
}
return ApiResult.Success("", res);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment