修复微信绑定手机号API:正确使用access_token和code参数
This commit is contained in:
parent
439860d83d
commit
2136c81e14
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user