C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计934个文字,预计阅读时间需要4分钟。
调用微信接口前需准备以下内容:
1.微信公众号平台的appid
2.微信公众号平台的secret
3.获取tokenid
4.获取ticket
5.生成签名的随机串
6.生成签名的时间戳
7.生成签名
整体内容:1.微信公众号平台“的appid
调用微信接口前需要准备的内容。
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("api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret); //向上面的地址发起api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", token); string content = HttpHelper.HttpGet(getticketurl); JsApiTicket obj = JsonConvert.DeserializeObject<JsApiTicket>(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)); /// <summary> /// SDK生成签名 /// 注意:需要引用System.Security.dll /// </summary> /// <param name="str"></param> /// <returns>str签名</returns> 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(); }
最后可以将这些步骤封装在一个方法中
/// <summary> /// 获取调用微信接口用的SDKConfig /// </summary> /// <param name="url"></param> /// <returns>SDKConfig整个对象</returns> 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()); } }
至于需要的接口就去微信公众平台开发者文档中去查看啦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计934个文字,预计阅读时间需要4分钟。
调用微信接口前需准备以下内容:
1.微信公众号平台的appid
2.微信公众号平台的secret
3.获取tokenid
4.获取ticket
5.生成签名的随机串
6.生成签名的时间戳
7.生成签名
整体内容:1.微信公众号平台“的appid
调用微信接口前需要准备的内容。
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("api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", appid, secret); //向上面的地址发起api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", token); string content = HttpHelper.HttpGet(getticketurl); JsApiTicket obj = JsonConvert.DeserializeObject<JsApiTicket>(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)); /// <summary> /// SDK生成签名 /// 注意:需要引用System.Security.dll /// </summary> /// <param name="str"></param> /// <returns>str签名</returns> 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(); }
最后可以将这些步骤封装在一个方法中
/// <summary> /// 获取调用微信接口用的SDKConfig /// </summary> /// <param name="url"></param> /// <returns>SDKConfig整个对象</returns> 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()); } }
至于需要的接口就去微信公众平台开发者文档中去查看啦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

