发布:2022/3/26 17:02:03作者:管理员 来源:本站 浏览次数:1141
public static void CreateQRCode()
{
string token = GetAccessToken();
CreatewxaQRCodeModel qrcodeModel = new CreatewxaQRCodeModel
{
path = "pages/home-page/main?scene=29f60878c7dc5061"
};
//微信请求小程序码的url
string url = "http://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + token;
string json = JsonConvert.SerializeObject(qrcodeModel);
DownFile(url, "C:\\1.png", json);
}
private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
//为了通过证书验证,总是返回true
return true;
}
/// <summary>
///
/// </summary>
/// <param name="url">地址</param>
/// <returns></returns>
public static string Get(string url)
{
string data = string.Empty;
using (var client = new HttpClient())
{
HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Get, url);
ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
var result = client.SendAsync(msg).Result;
var content = result.Content.ReadAsStringAsync();
data = content.Result;
}
return data;
}
/// <summary>
/// 下载文件
/// </summary>
/// <param name="url">地址</param>
/// <param name="localFileName">保存地址</param>
/// <param name="json">参数</param>
/// <returns></returns>
public static void DownFile(string url, string localFileName, string json)
{
ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
// 发起请求并异步等待结果
using (var httpClient = new HttpClient())
{
HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Post, url);
msg.Content = new StringContent(json, Encoding.GetEncoding("UTF-8"), "application/json");
ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
var responseMessage = httpClient.SendAsync(msg).Result;
if (responseMessage.IsSuccessStatusCode)
{
using (var fs = File.Create(localFileName))
{
// 获取结果,并转成 stream 保存到本地。
var streamFromService = responseMessage.Content.ReadAsStreamAsync().Result;
streamFromService.CopyTo(fs);
}
}
}
}
/// <summary>
/// 获取access_token
/// </summary>
/// <returns></returns>
public static string GetAccessToken()
{
string token = string.Empty;
string appid = "*";
string secret = "*";
try
{
var result = Get("http://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" +
secret);
if (!string.IsNullOrWhiteSpace(result))
{
var jObject = JObject.Parse(result);
token = jObject["access_token"].ToString();
}
return token;
}
catch (Exception ex)
{
return "";
}
}
public class CreatewxaQRCodeModel
{
public string path { get; set; }
}