范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

C关于调用微信接口的代码

  之前公司下达了开发微信只一块的任务,然后我就去网上取了一番经,可是感觉对于我这种微信开发的新手来说,所需要的东西太多,太凌乱了,然后整个人就懵逼了。
  费了很长时间才将微信接口调用完成。所以呢,我整理了一下,调用微信接口前需要准备的内容。
  1.微信公众平台的appid
  2.微信公众平台的secret
  3..获取tokenid
  4.获取ticket
  5.生成签名的随机串
  6.生成签名的时间戳
  7.生成签名
  ================================================================================
  1.微信公众平台的appid
  2.微信公众平台的secret
  这两者需要登录到申请的微信公众平台中去获取,建议写在配置文件中
  ================================================================================
  3.获取tokenid
  public static string GetWxTokenId()         {             string token = "";             string url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret);             //向上面的地址发起httpget请求             //这里是封装的一个http请求的类             string content = HttpHelper.HttpGet(url);             if (!string.IsNullOrEmpty(content))             {                 var obj = JsonConvert.DeserializeObject(content);                 if (!obj.errcode.HasValue)                 {                     token = obj.access_token;                 }             }             return token;         }
  这里是获取微信tokenid的返回对象
  private class TokenResult         {             public string access_token { get; set; }             public string expires_in { get; set; }             public int? errcode { get; set; }             public string errmsg { get; set; }         }
  注意:在每个微信公众号中获取tokenid的次数是有限的,所以应该将获取到的tokenid储存起来,以便后续使用。我使用的方法是将tokenid存储在数据库中,所以在每次使用之前都要做判断处理
  /*tokenid保存方式说明:
  *可在数据库中创建表:SysConfig(用户存储项目中的配置数据)
  * 字段:
  * ConfigKey:用于查询该条数据的key,做为主键
  * ConfigValue:存储数据的值
  * TypeName:该条配置数据的名称
  * Description:说明
  * CreateTime:创建时间
  * LastModifyTime:上次修改的时间
  * AllowEdit:是否可编辑
  * LastValue:上一次的值
  * tokenid的有效时间是两个小时=7200秒,每重新获取一次就更新一次LastModifyTime的值,将LastModifyTime和当前时间进行比对,如果小于7200秒则可以不用再次获取,反之则需要再次从微信获取。
  */
  ===================================================================================================
  4.获取ticket。需要上一步中获取到的tokenid。
  ///   /// 获取ticket  ///   /// 获取到的tokenid  /// strticket  public static string GetTicket(string token)   {             string getticketurl = string.Format("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", token);             string content = HttpHelper.HttpGet(getticketurl);             JsApiTicket obj = JsonConvert.DeserializeObject(content);             return obj.ticket;   }
  =====================================================================================================
  5.生成签名的随机串
  //生成签名的随机串 string noncestr = Guid.NewGuid().ToString().Replace("-", "");
  ====================================================================================================
  6.生成签名的时间戳
  TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); string timestamp = Convert.ToInt64(ts.TotalSeconds).ToString();
  ====================================================================================================
  7.生成签名
  string signature = MakeSha1Sign(string.Format("jsapi_ticket={0}&noncestr={1} tamp={2}&url={3}", jsapi_ticket, noncestr, timestamp, url)); ///          /// SDK生成签名         /// 注意:需要引用System.Security.dll         ///          ///          /// str签名         public static string MakeSha1Sign(string str)         {             byte[] StrRes = Encoding.Default.GetBytes(str);             HashAlgorithm iSHA = new SHA1CryptoServiceProvider();             StrRes = iSHA.ComputeHash(StrRes);             StringBuilder EnText = new StringBuilder();             foreach (byte iByte in StrRes)             {                 EnText.AppendFormat("{0:x2}", iByte);             }             return EnText.ToString();         }
  ====================================================================================================
  最后可以将这些步骤封装在一个方法中
  ///          /// 获取调用微信接口用的SDKConfig         ///          ///          /// SDKConfig整个对象         public static JsApiConfig GetJsSdkConfig(string url)         {             //获取tokenid             string access_token = GetWxTokenId();             //获取ticket             string jsapi_ticket = GetTicket(access_token);             //生成签名的随机串             string noncestr = Guid.NewGuid().ToString().Replace("-", "");             //生成签名的时间戳             TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);             string timestamp = Convert.ToInt64(ts.TotalSeconds).ToString();             //签名             string signature = MakeSha1Sign(string.Format("jsapi_ticket={0}&noncestr={1} tamp={2}&url={3}", jsapi_ticket, noncestr, timestamp, url));              JsApiConfig config = new JsApiConfig()             {                 appId = appid,                 debug = false,                 nonceStr = noncestr,                 timestamp = timestamp,                 signature = signature,                 ticket = jsapi_ticket,                 //需要使用的JS接口列表                 jsApiList = new string[] { "chooseImage", "previewImage", "uploadImage", "downloadImage" }              };             return config;           }
  ===================================================================================================
  页面上面调用我们上面配置好的内容
  $.post("/WapCardInfo/GetSDKConfig", { url: location.href.split("#")[0] }, function (data) {     var configObj = data;              wx.config({                 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。                 appId: configObj.appId, // 必填,公众号的唯一标识                 timestamp: configObj.timestamp, // 必填,生成签名的时间戳                 nonceStr: configObj.nonceStr, // 必填,生成签名的随机串                 signature: configObj.signature, // 必填,签名,见附录1                 jsApiList: [                                 "checkJsApi",                                 "onMenuShareTimeline",                                 "onMenuShareAppMessage",                                 "onMenuShareQQ",                                 "onMenuShareWeibo",                                 "onMenuShareQZone"                 ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2             }); });
  ===================================================================================================
  请求的后台代码
  [HttpPost]         public JsonResult GetSDKConfig(string url)         {             try             {     //这里就是调用上面封装的方法                 JsSdkApi.jsapiConfig model = JsSdkApi.GetJsSdkConfig(url);                 return Json(model);             }             catch (Exception ex)             {                 LogHelper.Error("获取wxconfig出现异常:" + ex.Message.Replace(""", """));                 return Json(new JsSdkApi.jsapiConfig());             }         }
  至于需要的接口就去微信公众平台开发者文档中去查看啦。

超高投入造国潮,坦克300城市版上市就爆火什么是潮流?潮流不止体现为外在表现,还体现为内在态度。从某种意义上说,年轻人群体所具备的随性自由热血就是潮流。而对他们而已,拥抱潮流的工具可以是一件衣服一件配饰也可以说一款车,一款研发投入持续加码,三七互娱自研的多元化成果和全球化视野8月30日,三七互娱发布2021年半年度业绩报告。报告显示,上半年公司实现营业收入75。39亿元,归母净利润为8。54亿元,第二季度归母净利润环比增幅超500,前期投入正逐步回收。荣耀Magic3系列多主摄技术开宗立派手机多摄技术积累多年荣耀Magic3系列开宗立派,在双摄时代,荣耀2015年推出的荣耀6Plus有着划时代的意义,与当时的竖排双摄手机不同,它不仅首创了平行双摄镜头,而且两个镜头会埃万特推出新的生物填充聚丙烯和可持续解决方案组合Avient宣布在Fakuma2021国际塑料加工贸易展上推出新的生物填充聚合物。这一新产品加强了其可持续解决方案组合。新的reSoundNF生物填充等级以聚丙烯(PP)等聚合物为豪格防伪防伪标签赛道上的技术进阶防伪工艺的不断进化升级,对防伪标签企业提出更高要求,豪格防伪选择主动进阶,迎新而上。作者巧星小小一张防伪标签可叠加使用十几种工艺胶印丝印纳米颗粒荧光可变编码,甚至还能搭载声音信息这助力聚合物材料开发!住友化学旭化成开发了通用AI技术10月26日,住友化学表示,国家材料科学研究所(NIMS)旭化成株式会社三菱化学株式会社三井化学株式会社住友化学株式会社在由化学材料开放平台(化学MOP)组成的横向协作中,在通过机帝豪热销中购车优惠高达7000元福田深圳深意店帝豪现车限时优惠,可试乘试驾帝豪现车在店,购车可享多重优惠方案零息方案首付20,2年0息首付30,享3年0息超长期限超低月供方案首付50,月供652元起附加贷0首付低星瑞欢迎莅临赏鉴价格直降1000元深圳深意星瑞现车限时优惠,可试乘试驾星瑞现车在店,购车可享多重优惠方案超级充值礼遇8月31日前购车可享4年12万公里免费保养超级保值礼遇8月31日前购车的新车主首任车主可获得2年7远景限时优惠高达8000元欢迎垂询福田深圳深意店远景现车限时优惠,可试乘试驾远景现车在店,购车可享多重优惠方案零息方案首付20,2年0息50享3年0息超长期限超低月供方案首付50,每天18元远景带回家附加贷0首付低帝豪GL限时优惠目前优惠高达6000元福田深圳深意店帝豪GL现车限时优惠,可试乘试驾帝豪GL现车在店,购车可享多重优惠方案零息方案首付20起2年0息首付35起享3年0息超长期限超低月供方案首付50,月供719元起附加贷博越全系热销中限时优惠高达1万元福田深圳深意店博越PRO现车限时优惠,可试乘试驾博越PRO现车在店,购车可享多重优惠方案零息方案首付30起2年0息首付45起享3年0息超长期限超低月供方案每天一杯奶茶钱博越PRO贷
2021Q2智能手机芯片市场份额公布,联发科居首,海思下滑严重近年来,联发科芯片一直被网友称之为咸鱼翻身,尤其在中端及入门级市场,凭借更高的性价比狙击高通。而在近日,调研机构Counterpoint正式发布了2021Q2智能手机芯片市场份额,澜起科技已完成DDR5第一子代内存接口及模组配套芯片量产版的研发速度最快在10月份,Intel便会正式的发布12代酷睿处理器AlderLake系类,除去CPU更新8大8小组成的大小核架构设计以外,也会先发适用DDR5,内存也需要从DDR4更新到10万多预算买续航超400km纯电小车,海豚和欧拉好猫谁更香?2021年成都车展正在如火如荼的举办当中,可以说在新能源的主旋律下,参展的纯电动车型是越来越多了,今天咖哥就给大家梳理出在本次车展中关注很高的一款纯电小型车,那就是比亚迪海豚。新车怎么看待爆料称iPhone13系列支持低轨道卫星通讯,能有什么变化?有爆料大V透露,iphone13将搭载高通X60基带芯片,或支持低轨道卫星通讯,虽然这一技术光听名字就是很牛,但相信不少用户不知道它到底有多牛iPhone13卫星通讯的实现得益于定ASML新设备正式落地,全球芯片格局或重新洗牌,美国目的达到了?EUV光刻机是芯片产线上最复杂的核心设备,全球能生产的只有荷兰ASML,不过它的产能却十分有限,台积电作为ASML的股东之一,仅它自己就包揽了大约70的EUV产能,这是台积电之所以芯片荒给了国产芯片机会,月产308亿颗,订单上涨11倍近年来,老美一直在重要领域方面对我们实行封锁政策,不仅将中国的多个科技企业列入失业清单,而且还禁止所有使用美技术的公司将设备卖给我们。不过祸兮福所倚,老美的制裁不仅没有将我们打下,V1芯片将与X70系列一同登场,vivo的手机影像实力会有多大提升?近日,vivo已经正式宣布将于9月9日1930发布新一代专业影像旗舰vivoX70系列,并且还明确表示vivoX70系列将配备蔡司光学镜头以及更好的微云台,能够为用户带来极为纯净的微软新品发布会官宣,Surface三大新品齐发9月1日晚间,微软官方宣布,将于北京时间9月23日晚上11点,举办新品发布会,分享有关硬件设备Windows11的相关信息。不出意外的话,这次微软会同时发布SurfacePro8S什么样的手机才是真旗舰?高通骁龙888系列5G芯片可以给你答案现在都在谈旗舰,手机领域的旗舰机型自然是不少的,但是什么样的手机才能称之为真旗舰呢?从今年的情况来看,我们应该能从搭载骁龙888和骁龙888Plus的智能手机上,找到答案。骁龙88最高50万打造一套苹果桌面组合到底值不值?毫无疑问,无论从办公还是娱乐体验的角度上来评判,台式电脑都有着不可比拟的优势。在当前这个开学季,笔者收到很多用户发来的私信,其中一个用户的私信非常有意思,问题的大概主旨是想打造一套乐视手机王者归来?新品外观公布智能手机行业一直以来都竞争非常的激烈,尤其是最近这一两年的时间,国内智能手机市场基本都被头部的几大巨头所垄断,华为小米OPPOvivo和苹果。而随着华为逐渐没有办法生产新手机,华为