/// <summary> /// 创建二维码ticket /// </summary> /// <param name="scene_id"></param> /// <param name="action_name"></param> /// <param name="expire_seconds"></param> /// <returns></returns> public static QRCodeTicket CreateQRCode(int scene_id, QRCode_ActionName action_name, TimeSpan expire_seconds) { string access_token = Wx.GetAccessToken(); string url = $"https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={access_token}"; var data = CreateData(action_name, expire_seconds, scene_id); string responeStr = HttpRequsetHelper.Post(url, data); QRCodeTicket res = Newtonsoft.Json.JsonConvert.DeserializeObject <QRCodeTicket>(responeStr); return(res); }
private static object CreateData(QRCode_ActionName action_name, TimeSpan expire_seconds, int?scene_id, string scene_str = null) { switch (action_name) { //临时 id类型 case QRCode_ActionName.QR_SCENE: return(new { expire_seconds = expire_seconds.Seconds, action_name = action_name.ToString(), action_info = new { scene = new { scene_id = scene_id } } }); //临时 str类型 case QRCode_ActionName.QR_STR_SCENE: return(new { expire_seconds = expire_seconds.Seconds, action_name = action_name.ToString(), action_info = new { scene = new { scene_str = scene_str } } }); //永久 id类型 case QRCode_ActionName.QR_LIMIT_SCENE: return(new { action_name = action_name.ToString(), action_info = new { scene = new { scene_id = scene_id } } }); //永久 str类型 case QRCode_ActionName.QR_LIMIT_STR_SCENE: return(new { action_name = action_name.ToString(), action_info = new { scene = new { scene_str = scene_str } } }); default: return(null); } }