修复微信绑定手机号API:正确使用access_token和code参数

This commit is contained in:
gpu 2026-01-22 00:18:14 +08:00
parent 439860d83d
commit 2136c81e14

View File

@ -178,11 +178,29 @@ public class WechatService : IWechatService
try
{
var url = $"{WechatGetPhoneNumberUrl}?access_token={code}";
// 1. 先获取 access_token
var accessToken = await GetAccessTokenAsync();
if (string.IsNullOrEmpty(accessToken))
{
_logger.LogError("Failed to get access_token for phone number API");
return new WechatMobileResult
{
Success = false,
ErrorMessage = "获取access_token失败"
};
}
// 2. 使用 access_token 作为 URL 参数code 放在请求体中
var url = $"{WechatGetPhoneNumberUrl}?access_token={accessToken}";
var requestBody = new { code = code };
var jsonContent = new StringContent(
JsonSerializer.Serialize(requestBody),
System.Text.Encoding.UTF8,
"application/json");
_logger.LogInformation("Calling WeChat API to get phone number");
_logger.LogInformation("Calling WeChat API to get phone number with access_token");
var response = await _httpClient.PostAsync(url, null);
var response = await _httpClient.PostAsync(url, jsonContent);
var content = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)