/// <summary> /// 生成带参数的二维码 /// </summary> /// <param name="token"></param> /// <param name="type">二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久</param> /// <param name="scene_id">场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)</param> /// <returns>返回场景二维码的微信服务器地址</returns> public static string CreateParameterQrcode(string token, ParameterQrcodeType type, int scene_id) { var client = new HttpClient(); var content = new StringBuilder(); content.Append("{"); var action_name = "QR_LIMIT_SCENE"; if (type == ParameterQrcodeType.QR_SCENE) { action_name = "QR_SCENE"; content.Append('"' + "expire_seconds" + '"' + ":1800,"); } content .Append('"' + "action_name" + '"' + ": " + '"' + action_name + '"' + ",") .Append('"' + "action_info" + '"' + ": " + "{" + '"' + "scene" + '"' + ":{" + '"' + "scene_id" + '"' + ":" + scene_id.ToString() + "}}}"); var result = client.PostAsync( string.Format("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}", token), new StringContent(content.ToString())).Result; if (result.IsSuccessStatusCode) { var ticket = DynamicJson.Parse(result.Content.ReadAsStringAsync().Result).ticket; return(string.Format("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}", ticket)); } return(""); }
/// <summary> /// 生成带参数的二维码 /// </summary> /// <param name="token"></param> /// <param name="type">二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久</param> /// <param name="scene_id">场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)</param> /// <returns>返回场景二维码的微信服务器地址</returns> public static string CreateParameterQrcode(string token, ParameterQrcodeType type, int scene_id) { var client = new HttpClient(); var content = new StringBuilder(); content.Append("{"); var action_name = "QR_LIMIT_SCENE"; if (type == ParameterQrcodeType.QR_SCENE) { action_name = "QR_SCENE"; content.Append('"' + "expire_seconds" + '"' + ":1800,"); } content .Append('"' + "action_name" + '"' + ": " + '"' + action_name + '"' + ",") .Append('"' + "action_info" + '"' + ": " + "{" + '"' + "scene" + '"' + ":{" + '"' + "scene_id" + '"' + ":" + scene_id.ToString() + "}}}"); var result = client.PostAsync( string.Format("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}", token), new StringContent(content.ToString())).Result; if (result.IsSuccessStatusCode) { var ticket = DynamicJson.Parse(result.Content.ReadAsStringAsync().Result).ticket; return string.Format("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}", ticket); } return ""; }
/// <summary> /// 生成带参数的二维码 /// </summary> /// <param name="token"></param> /// <param name="type">二维码类型,QR_SCENE为临时,QR_LIMIT_SCENE为永久</param> /// <param name="scene_id">场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000)</param> /// <param name="days"></param> /// <returns></returns> public static string Create(string token, ParameterQrcodeType type, int scene_id, int days) { var content = new StringBuilder(); content.Append("{"); var action_name = "QR_LIMIT_SCENE"; if (type == ParameterQrcodeType.QR_SCENE) { action_name = "QR_SCENE"; content.Append('"' + "expire_seconds" + '"' + ":").Append(new TimeSpan(days, 0, 0, 0, 0).TotalSeconds).Append(","); } content .Append('"' + "action_name" + '"' + ": " + '"' + action_name + '"' + ",") .Append('"' + "action_info" + '"' + ": " + "{" + '"' + "scene" + '"' + ":{" + '"' + "scene_id" + '"' + ":" + scene_id.ToString() + "}}}"); var result = HttpTo.Post( string.Format("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}", token), content.ToString()); return(result); }