JS-SDK接口是什么?

为了方便开发者实现微信内的网页(基于微信浏览器访问的网页)功能,比如拍照、选图、语音、位置等手机系统的能力,并方便开发者直接使用微信分享、扫一扫等微信特有的能力,微信推出了JS-SDK的整体开发包,供开发者方便使用。
分享功能
官方文档里提供了php、java、node.js以及python的示例代码,唯独没有c#版的,为了弥补广大.net用户的需求,我把php版本的示例代码逻辑照搬成了.net版,并在网页前端中加入了分享功能,希望对大家有用。
程序实现
流程图
程序里关键的类是JSSDK,里面包含服务端请求认证的所有逻辑过程,下面是过程的流程图:
关键代码分析
为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,所以.net里引用了比较高版本(.Net 4.5+)的网络包进行http请求。
private string httpGet(string url)
{
if (url.StartsWith("https"))
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = httpClient.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
return result;
}
return null;
}
获取access_token,先从本地的access_token.aspx里找,如果没有或者过期(7000秒),则重新到微信服务器获取。
private string getAccessToken()
{
string accessToken = string.Empty;
var data = JObject.Parse(getAspxFile("access_token.aspx", ASPX_HEAD[1]));
if (data != null && long.Parse(data["expire_time"].ToString()) < Utils.ConvertTimeStamp(DateTime.Now))
{
string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+ this.appId + "&secret=" + this.appSecret;
var jRes = JObject.Parse(httpGet(url));
accessToken = jRes["access_token"].ToString();
if (!string.IsNullOrEmpty(accessToken))
{
data["expire_time"] = Utils.ConvertTimeStamp(new DateTime()) + 7000;
data["access_token"] = accessToken;
setAspxFile("access_token.aspx", data.ToString(), ASPX_HEAD[1]);
}
}
else
accessToken = data["access_token"].ToString();
return accessToken;
}
获取jsapi_ticket,原理与access_token一样。
private string getJsApiTicket()
{
string ticket = string.Empty;
var data = JObject.Parse(getAspxFile("jsapi_ticket.aspx", ASPX_HEAD[0]));
if (data != null && long.Parse(data["expire_time"].ToString()) < Utils.ConvertTimeStamp(DateTime.Now))
{
string accessToken = getAccessToken();
string url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token="
+ accessToken;
var jRes = JObject.Parse(httpGet(url));
ticket = jRes["ticket"].ToString();
if (!string.IsNullOrEmpty(ticket))
{
data["expire_time"] = Utils.ConvertTimeStamp(new DateTime()) + 7000;
data["jsapi_ticket"] = ticket;
setAspxFile("jsapi_ticket.aspx", data.ToString(), ASPX_HEAD[0]);
}
}
else
ticket = data["jsapi_ticket"].ToString();
return ticket;
}
完整代码
https://github.com/stozen/jssdk-wxshare
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# .Net
# 微信JS-SDK分享
# 微信JS-SDK
# JS-SDK
# 解析微信JS-SDK配置授权
# 实现分享接口
# 微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
# 关于微信jssdk实现多图片上传的一点心得分享
# 微信js-sdk+JAVA实现“分享到朋友圈”和“发送给朋友”功能详解
# 微信分享调用jssdk实例
# 浅谈微信JS-SDK 微信分享接口开发(介绍版)
# 微信js-sdk分享功能接口常用逻辑封装示例
# thinkPHP微信分享接口JSSDK用法实例
# 微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
# 微信JSSDK分享功能图文实例详解
# 成了
# 并在
# 较高
# 我把
# 如果没有
# 特有的
# 第三方
# 一扫
# 服务端
# 大家多多
# 新到
# 推出了
# 开发包
# 文档
# 为保证
# application
# httpGet
# StartsWith
# url
# private
相关文章:
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何选购建站域名与空间?自助平台全解析
如何正确下载安装西数主机建站助手?
建站主机如何选?性能与价格怎样平衡?
公司门户网站制作流程,华为官网怎么做?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
浅析上传头像示例及其注意事项
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何快速选择适合个人网站的云服务器配置?
建站之星安装步骤有哪些常见问题?
建站之家VIP精选网站模板与SEO优化教程整合指南
,巨量百应是干嘛的?
建站之星3.0如何解决常见操作问题?
如何将凡科建站内容保存为本地文件?
如何有效防御Web建站篡改攻击?
建站之星官网登录失败?如何快速解决?
如何用搬瓦工VPS快速搭建个人网站?
如何快速重置建站主机并恢复默认配置?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
建设网站制作价格,怎样建立自己的公司网站?
建站之星好吗?新手能否轻松上手建站?
建站之星导航菜单设置与功能模块配置全攻略
如何通过老薛主机一键快速建站?
建站之星安装提示数据库无法连接如何解决?
如何选择可靠的免备案建站服务器?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
javascript中对象的定义、使用以及对象和原型链操作小结
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
如何快速辨别茅台真假?关键步骤解析
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
定制建站如何定义?其核心优势是什么?
如何配置支付宝与微信支付功能?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
网站好制作吗知乎,网站开发好学吗?有什么技巧?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
南京网站制作费用,南京远驱官方网站?
微信小程序 input输入框控件详解及实例(多种示例)
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何快速搭建FTP站点实现文件共享?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
设计网站制作公司有哪些,制作网页教程?
*请认真填写需求信息,我们会在24小时内与您取得联系。