public async Task should_verify_wechat_account() { var verifyResult = await _normalChatyApiService.VerifyWeChatAccount("839425"); Assert.Equal(1, _httpClient.RequestsSent.Count); Assert.Contains(_httpClient.RequestsSent, req => req.Method == HttpMethod.Post && req.RequestUri.PathAndQuery == "/bot/pair"); Assert.NotNull(verifyResult); Assert.Equal("wx_l09d", verifyResult.Id); }
public async Task <ApiResponse> VerifyWeChatAccountByCode([FromForm] string code) { var verifyResult = await _chatyApiService.VerifyWeChatAccount(code); if (verifyResult == null) { return(ApiResponse.NoContent(HttpStatusCode.InternalServerError)); } var user = HttpContext.DiscussionUser(); if (verifyResult.Id == null) { _logger.LogWarning("验证微信账号失败:{@WeChatAccountVerification}", new { user.UserName, UserId = user.Id, Code = code, Result = "验证码不正确或已过期" }); return(ApiResponse.Error("验证失败")); } _logger.LogInformation("验证微信账号成功:{@WeChatAccountVerification}", new { user.UserName, UserId = user.Id, Code = code }); var weChatAccount = _wechatAccountRepo.All().FirstOrDefault(wxa => wxa.WxId == verifyResult.Id && wxa.UserId == 0); if (weChatAccount == null) { weChatAccount = new WeChatAccount() { WxId = verifyResult.Id, UserId = user.Id, WxAccount = verifyResult.Weixin }; _wechatAccountRepo.Save(weChatAccount); } else { weChatAccount.UserId = user.Id; weChatAccount.WxAccount = verifyResult.Weixin; _wechatAccountRepo.Save(weChatAccount); } return(ApiResponse.NoContent()); }