架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 366773|回复: 202

[资料] .net做微信开发获取用户资料和扫一扫功能[附源码]

  [复制链接]
发表于 2016-8-22 09:31:50 | 显示全部楼层 |阅读模式
QQ图片20160822092214.png QQ图片20160822092222.png QQ图片20160822092225.png QQ图片20160822092219.png QQ截图20160822092320.jpg QQ截图20160822091847.jpg


实现的功能:

1:获取用户的基本信息,

2:获取用户的详细资料

3:实现了微信扫描二维码的功能

大体就做了上面3个功能,其余的没有怎么做。

web.config可以配置微星的appid和secret,还有刷新token时间,默认为1小时刷新一次。

  1. <!--微信开发-->
  2.     <add key="weixin_appid" value="xxx" />
  3.     <add key="weixin_secret" value="xxx" />
  4.     <add key="weixin_sleep" value="3600000" />
  5.     <!--结束-->
复制代码


下面是获取token的代码:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using CsharpHttpHelper;
  6. using System.Net;
  7. using Newtonsoft.Json;
  8. using System.Threading;


  9. namespace WeChat.BLL
  10. {
  11.     /// <summary>
  12.     /// 微信token
  13.     /// </summary>
  14.     public class WeChatToken
  15.     {
  16.         #region 获取token
  17.         /// <summary>
  18.         /// 获取token
  19.         /// </summary>
  20.         /// <returns></returns>
  21.         public static string GetToken()
  22.         {
  23.             HttpHelper http = new HttpHelper();
  24.             HttpItem item = new HttpItem
  25.             {
  26.                 URL = string.Format(Config.URL_GET_TOKEN, Config.APPID, Config.SECRET),
  27.                 Method = "get",
  28.                 Encoding = Encoding.UTF8
  29.             };
  30.             HttpResult result = http.GetHtml(item);
  31.             if (result.StatusCode == HttpStatusCode.OK)
  32.             {
  33.                 string html = result.Html;
  34.                 Models.success success = JsonConvert.DeserializeObject<Models.success>(html);
  35.                 return success.access_token;
  36.             }
  37.             return null;
  38.         }

  39.         /// <summary>
  40.         /// 获取token
  41.         /// </summary>
  42.         /// <param name="appid"></param>
  43.         /// <param name="secret"></param>
  44.         /// <returns></returns>
  45.         public static string GetToken(string appid, string secret)
  46.         {
  47.             Config.APPID = appid;
  48.             Config.SECRET = secret;
  49.             return GetToken();
  50.         }
  51.         #endregion
  52.         #region 获取js token
  53.         /// <summary>
  54.         /// js sdk token
  55.         /// </summary>
  56.         /// <returns></returns>
  57.         public static string JsToken()
  58.         {
  59.             HttpHelper http = new HttpHelper();
  60.             HttpItem item = new HttpItem
  61.             {
  62.                 URL = string.Format(Config.URL_JS_TOKEN, Config.TOKEN),
  63.                 Method = "get",
  64.                 Encoding = Encoding.UTF8
  65.             };
  66.             HttpResult result = http.GetHtml(item);
  67.             if (result.StatusCode == HttpStatusCode.OK)
  68.             {
  69.                 string html = result.Html;
  70.                 Models.JsToken jstoken = JsonConvert.DeserializeObject<Models.JsToken>(html);
  71.                 return jstoken.ticket;
  72.             }
  73.             return null;
  74.         }
  75.         #endregion
  76.         #region 获取token任务
  77.         /// <summary>
  78.         /// 获取token任务
  79.         /// </summary>
  80.         /// <param name="token"></param>
  81.         public static void TaskToken(task_token token)
  82.         {
  83.             Config.APPID = token.appid;
  84.             Config.SECRET = token.secret;
  85.             while (true)
  86.             {
  87.                 //token带重试机制
  88.                 for (int i = 0; i < 3; i++)
  89.                 {
  90.                     string get_token = GetToken();
  91.                     if (!string.IsNullOrEmpty(get_token))
  92.                     {
  93.                         Config.TOKEN = get_token;
  94.                         break;
  95.                     }
  96.                 }
  97.                 //js token带重试机制
  98.                 for (int i = 0; i < 3; i++)
  99.                 {
  100.                     string js_token = JsToken();
  101.                     if (!string.IsNullOrEmpty(js_token))
  102.                     {
  103.                         Config.JSAPI_TICKET = js_token;
  104.                         break;
  105.                     }
  106.                 }
  107.                 Thread.Sleep(token.time);
  108.             }
  109.         }

  110.         /// <summary>
  111.         /// 获取token任务
  112.         /// </summary>
  113.         /// <param name="appid"></param>
  114.         /// <param name="secret"></param>
  115.         /// <param name="time"></param>
  116.         public static void TaskToken(string appid, string secret, int time = 3600000)
  117.         {
  118.             Config.APPID = appid;
  119.             Config.SECRET = secret;
  120.             while (true)
  121.             {
  122.                 Config.TOKEN = GetToken();
  123.                 Thread.Sleep(time);
  124.             }
  125.         }
  126.         #endregion  
  127.     }
  128. }
复制代码


其实,一些基本的功能都很简单,在做微信扫一扫功能的时候,花了一小时才完成。

如果源码缺少HttpHelper.dll,请下载:
HttpHelper.dll (28.5 KB, 下载次数: 95)

源码下载:

https://down.itsvse.com/item/9.html
游客,如果您要查看本帖隐藏内容请回复








上一篇:webapi接收中文乱码的问题
下一篇:.net IQueryable与IList差别之处
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-12-20 09:09:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-3-7 09:22:20 | 显示全部楼层
caoqichen 发表于 2017-8-8 14:44
说实在的,你给人家下载就下载不下载就拉倒,我最讨厌回复了

哥  说实在的  白拿别人的东西就白拿  不回复就拉倒 我最讨厌 在那叽叽歪歪的了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-2-21 16:00:32 | 显示全部楼层

微信公众号在联通网络下jssdk签名错误的解决办法
http://www.itsvse.com/thread-3245-1-1.html
(出处: 架构师)

      注意这个帖子
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2016-8-30 17:06:33 | 显示全部楼层
看看,,我要OpenID 方法
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2016-8-30 17:44:09 | 显示全部楼层
看看  啦      
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2016-9-22 10:49:58 | 显示全部楼层
已iiiiiiiiiiiiiiiiiiii

评分

参与人数 1MB -20 贡献 -20 收起 理由
小渣渣 -20 -20 请勿灌水,提高回帖资料是每位会员应尽的义.

查看全部评分

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-1-17 15:16:52 | 显示全部楼层
好东西,先收藏
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-2-14 10:03:57 | 显示全部楼层
kjdflljlafdsfafd

评分

参与人数 1MB -1 贡献 -1 收起 理由
QWERTYU -1 -1 请勿灌水,提高回帖质量是每位会员应尽的义.

查看全部评分

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2017-2-14 10:11:39 | 显示全部楼层

你这是恶意灌水  你知道不?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-2-21 11:56:06 | 显示全部楼层
谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2017-2-21 17:38:43 | 显示全部楼层
来学习。感谢源代码
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-12-22 00:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表