c# 调取微信扫一扫接口

这里所有的内容都是从微信接口页面里面参考过来的,加上自己的实践,我在此总结一下步骤和过程,如果下面的内容,有问题,请联系 邮箱: wh_djj@163.com

1.微信接口网址:http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3#.E6.AD.A5.E9.AA.A4.E4.B8.80.EF.BC.9A.E5.BC.95.E5.85.A5JS.E6.96.87.E4.BB.B6

2.引入JS文件 http://res.wx.qq.com/open/js/jweixin-1.1.0.js

3.` 这里是微信开发给的接口代码,代码后面,我会具体讲解每一个属性是什么,怎么得到

   wx.config({debug: false,   //是否调试,true,会弹窗appId: '<%=appId%>', //得到这个东西,首先必须有一个公众号,或者企业号,如果已经拥有了,你可以就知道AppId在哪里了。timestamp: 1414587457,//生成签名的时间戳,随机数,之后会用这个生成一个签名nonceStr: 'Wm3WZYTPz0wzccnW',//生成签名的随机串,随机串,之后会用这个生成一个签名signature: '<%=signature%>',//这个就是签名了,在步骤4,我会详细讲解jsApiList: ['scanQRCode' //开启扫一扫功能,这里还可以添加更多的功能,比如微信支付]});wx.ready(function () {//点击按钮,出现扫描界面document.querySelector('#sm').onclick = function () {wx.scanQRCode({desc: 'scanQRCode desc',needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有success: function (res) {var url = res.resultStr;var tempArray = url.split(',');var tempNum = tempArray[1];//这个就是扫描后返回值扫描值}});};});`

4.这里我会专门讲解,怎么拿到签名。

4.1,先找到自己的corpid和secret, corpid,必须有自己的公众号或者企业号,secret,这个需要在公众号里面,点击设置,在点击第二个选项,权限管理然后添加一个管理员(微信号),就会生成一个secret

4.2 、这里需要提前写几个帮助类

4.2.1、使用get请求得到信息

public static string GetHtml(string tUrl)
{string strResult;try{HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(tUrl);hwr.Timeout = 19600;HttpWebResponse hwrs = (HttpWebResponse)hwr.GetResponse();Stream myStream = hwrs.GetResponseStream();StreamReader sr = new StreamReader(myStream, Encoding.UTF8);StringBuilder sb = new StringBuilder();while (-1 != sr.Peek()){sb.Append(sr.ReadLine() + "\r\n");}strResult = sb.ToString();hwrs.Close();}catch (Exception ee){strResult = ee.Message;}return strResult;
}

4.2.2、这个帮助类是为了得到微信那边返回的Json数据,然后解析出来

public class JsonHelper
{public static T DeserializeObject(string json){return JsonConvert.DeserializeObject(json);}}

4.2.3、这个是 token类 ,命名为:AccessToken.cs

 public class AccessToken{public string access_token { get; set; }public string expires_in { get; set; }}

4.2.4、这个是ticket 类,命名为:Access_ticket.cs

public class Access_ticket
{public string errcode { get; set; }public string errmsg { get; set; }public string ticket { get; set; }public string expires_in { get; set; }
}

4.2.5、这个是sha1加密

public class SHA1Helper
{  /// /// 32位小写/// /// public static string SHA1(string s){s = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s, "SHA1").ToString();return s.ToLower();}}
public class WxApi
{private static string corpid = "这个填写公众号的corpId";//在公众号里面点击设置private static string corpsecret = "这个填写公众号的secret";//这个是用corpId和secret,得到tokenprivate static string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}";
//通过得到的token,得到ticketprivate static string url2 = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token={0}";//这个是得到token,使用get请求public static AccessToken accessToken(){string json = HttpHelper.GetHtml(string.Format(url, corpid, corpsecret));return JsonHelper.DeserializeObject(json);}//这个得到Ticket,使用get请求public static Access_ticket accessTicket(){AccessToken AccessToken = accessToken();string json = HttpHelper.GetHtml(string.Format(url2, AccessToken.access_token));return JsonHelper.DeserializeObject(json);}//获取签名public static string sha1(string url){Access_ticket Access_ticket = accessTicket();//这个是所有得到的东西拼接成一个字符串,1.jsapi_ticket:上面得到的ticket 2.noncestr:这个是随机的字符串,必须和上面(3)的那个一样 3.timestamp:这个是随机的字符串,必须和上面(3)的那个一样,//4.url:地址一定要详细,比如:http://baidu.com/1.html  哪个页面需要调用 扫一扫,就使用哪个页面的地址string string1 = "jsapi_ticket=" + Access_ticket.ticket+ "&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url="+url+"";//使用sha1加密这个字符串return Helper.MD5Helper.SHA1(string1);}
}

总结:这是所有的调用微信接口扫一扫功能,在网上看到别人说的,都没说明白,今天我把详细代码发出来,供大家参考,如有什么地方不懂,可以联系我

源码地址:http://download.csdn.net/download/u014479921/10175596


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部