如何在asp.net mvc 项目里, 调用微信jssdk接口,现实功能: 分享到微信朋友(圈)| 分享到qq空间

1 创建一个Action,准备一些数据,初始化数据(签名):

 /// <summary>/// 分享的内容/// 必须写在html的head里面才可以生效/// </summary>/// <param name="fxUrl"></param>/// <returns></returns>public ActionResult SharePartial(string fxUrl=""){BLL.SiteConfigBLL SiteBLL = new BLL.SiteConfigBLL();Model.siteconfig siteConfig = SiteBLL.getConfig();ShareModel fxModel = new ShareModel();fxModel.appid = siteConfig.appid;fxModel.timestamp = JSSDKHelper.GetTimestamp();fxModel.nonce = JSSDKHelper.GetNoncestr();fxModel.thisUrl = Request.Url.ToString();//MyCommFun.getTotalUrl();if (fxUrl == null || fxUrl.Trim() == ""){fxModel.fxUrl = fxModel.thisUrl;}else{fxModel.fxUrl = fxUrl;}string ticket = AccessTokenContainer.TryGetJsApiTicket(siteConfig.appid, siteConfig.appsecret);JSSDKHelper jsHelper = new JSSDKHelper();//最后一个参数url,必须为当前的网址var signature = JSSDKHelper.GetSignature(ticket, fxModel.nonce, fxModel.timestamp, fxModel.thisUrl);fxModel.signature = signature;return PartialView("SharePartial", fxModel);}

View Code

2 创建一个局部视图,对应上面的Action。

@model  Model.ShareModel  <!--分享-->
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript"></script>
<script type="text/javascript">//本活动被分享次数var dataForWeixin = {appId: "@Model.appid",MsgImg: "@Model.fxImg",TLImg: "@Model.fxImg",url: "@Model.thisUrl",fxUrl: "@Model.fxUrl",title: "@Model.fxTitle",desc: "@Model.fxContent",timestamp: "@Model.timestamp",nonceStr: "@Model.nonce",signature: "@Model.signature",jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareQZone', 'onMenuShareWeibo', 'showOptionMenu', 'closeWindow'],fakeid: "",callback: function () { }};wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: dataForWeixin.appId, // 必填,公众号的唯一标识
        timestamp: dataForWeixin.timestamp, // 必填,生成签名的时间戳
        nonceStr: dataForWeixin.nonceStr, // 必填,生成签名的随机串
        signature: dataForWeixin.signature,// 必填,签名,见附录1
        jsApiList: dataForWeixin.jsApiList  // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });wx.ready(function () {//在此输入各种API
        wx.showOptionMenu();//分享到朋友圈
        wx.onMenuShareTimeline({title: dataForWeixin.title, // 分享标题
            link: dataForWeixin.fxUrl, // 分享链接
            imgUrl: dataForWeixin.MsgImg, // 分享图标
            success: function () {// 用户确认分享后执行的回调函数
                fxJia();//分享+1
            },cancel: function () {// 用户取消分享后执行的回调函数
            }});//分享给朋友
        wx.onMenuShareAppMessage({title: dataForWeixin.title, // 分享标题
            desc: dataForWeixin.desc, // 分享描述
            link: dataForWeixin.fxUrl, // 分享链接
            imgUrl: dataForWeixin.TLImg, // 分享图标
            type: '', // 分享类型,music、video或link,不填默认为link
            dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
            success: function () {// 用户确认分享后执行的回调函数
                fxJia();//分享+1
            },cancel: function () {// 用户取消分享后执行的回调函数
            }});//QQ
        wx.onMenuShareQQ({title: dataForWeixin.title, // 分享标题
            desc: dataForWeixin.desc, // 分享描述
            link: dataForWeixin.fxUrl, // 分享链接
            imgUrl: dataForWeixin.MsgImg,// 分享图标
            success: function () {// 用户确认分享后执行的回调函数
            },cancel: function () {// 用户取消分享后执行的回调函数
            }});//QQ微博
        wx.onMenuShareWeibo({title: dataForWeixin.title, // 分享标题
            desc: dataForWeixin.desc, // 分享描述
            link: dataForWeixin.fxUrl, // 分享链接
            imgUrl: dataForWeixin.TLImg, // 分享图标
            success: function () {// 用户确认分享后执行的回调函数
            },cancel: function () {// 用户取消分享后执行的回调函数
            }});//QQ空间
        wx.onMenuShareQZone({title: dataForWeixin.title, // 分享标题
            desc: dataForWeixin.desc, // 分享描述
            link: dataForWeixin.fxUrl, // 分享链接
            imgUrl: dataForWeixin.TLImg, // 分享图标
            success: function () {// 用户确认分享后执行的回调函数
            },cancel: function () {// 用户取消分享后执行的回调函数
            }});// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,//所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    });wx.error(function (res) {//alert(res);// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
    });</script>
<!--end分享-->

View Code

之所以使用局部视图,是方便其他的页面(视图)调用,哪个页面(视图)需要,就直接调用局部视图;也就不需要在每个页面都写了。

在写项目之前,需要引用2个dll:

Senparc.Weixin.dll

Senparc.Weixin.MP.dll

注意事项:

1 签名时,传的参数,必须是当前页面的地址,必须一模一样;

2 js最好放在<head>内。

3 在微信公众号官方后台,公众号设置---功能设置---业务域名 和 JS接口安全域名,填写你网页的域名(需备案)。

asp.net mvc 如何调用微信jssdk接口:分享到微信朋友(圈)| 分享到qq空间相关推荐

  1. 微信小程序 点击生成朋友圈分享图

    A:wxml(一定要加上image标签,如果你没有加的话,那么即使图片生成了,在页面上也是不会显示的,问过大神之后我才知道我之前一直没弄出来是因为我没加image标签) 1 <view hidd ...

  2. 调用微信JS-SDK接口上传图片

    最近要在微信上做个问卷调查,有个上传图片功能,折腾找了半天资料,都不好弄,最终打算调用微信提供的上传图片接口,实现上传图片功能!此功能最大的好处是可以在微信服务器上暂存图片,减少本地服务器图片的缓存, ...

  3. 微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置

    微信JS接口 微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置 来源:http://www.cnblogs.com/txw1 ...

  4. 【微信JSSDK】PHP版微信录音文件下载

    微信的录音文件上传到微信服务器上,只能保存三天. 因此需要做一个转存到自己服务器,或者七牛云的操作. 转存到自己服务器 调用微信JSSDK API 录音, 录音结束,上传到微信服务器,获取录音文件的 ...

  5. 微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置

    微信JS-SDK 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置 一.JS部分 wx.ready(function () {// 1 判 ...

  6. 微信朋友圈分享接口使用总结

    微信朋友圈分享接口是非常细节的,而且不好调试,所以在此总结一下,以帮助大家 首先应该遵循微信开发者文档介绍,用接口调试工具将你需要的接口的权限确定一下(这里得去申请接口权限)?然后将这个网址用手机端微 ...

  7. java 朋友圈分享接口_Java实现微信公众平台朋友圈分享功能详细代码

    其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈. 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要 ...

  8. java给朋友发微信_微信api接口,给微信好友收发消息

    微信api接口,给微信好友收发消息 /** * 给微信好友发消息 * @author wechatno:tangjinjinwx * @blog http://www.wlkankan.cn */ @ ...

  9. 微信支付接口怎么申请 微信支付接口申请教程

     微信支付接口:点击进去 一直让大家翘首以盼的微信最核心的杀手锏--"微信支付"终于开放申请了!今天微信团队在官网发布消息,微信公众平台支付功能已正式开放申请,已开通公众号的 ...

  10. 企业微信朋友圈操作流程,发送获取数据,企业微信hook,企业微信群发接口,企业微信第三方接口。

    企业微信营销接口. 企业微信web端 通过dll扩展 实现发送朋友圈功能 请求说明: syncKey 是 string 同步key 发送朋友圈实例: {"type":110003, ...

最新文章

  1. Linux中用mkdir同时创建多个文件夹
  2. struts2之OGNL用法
  3. SDN第4次上机作业
  4. 如何查看ubuntu的版本信息和查看几位 32 or 64位
  5. 一般项目中是如何调bug的 ------- 手把手带你体验整个流程
  6. MariaDB 加密特性及使用方法
  7. 使用describe命令进行Kubernetes pod错误排查
  8. [mybatis]Getting Started
  9. P4036-[JSOI2008]火星人【Splay,二分,hash】
  10. 算法证明_CFR+算法证明过程
  11. Linux 命令之 whois 命令-用于查找并显示用户信息
  12. ns3中调试程序------命令行、gdb和logging系统
  13. robocopy的退出返回代码
  14. mysql ---- 多表查询
  15. 机器学习-西瓜书、南瓜书第三章
  16. python中流程图的基本元素_面试干货:成为Python程序员的终极指南!(内附回答)...
  17. layui中弹出层的两种表达方式
  18. ZStack 3.6.0发布:支持云主机从KVM云平台在线迁移至ZStack
  19. 《机器人学导论》Matlab计算坐标系变换矩阵
  20. [PHPCMS]精美大气自适应资源模板下载网站源码

热门文章

  1. 步步为营103-ZTree 二级联动
  2. 整理python笔记001(列表(深浅copy),元祖,字典,集合)
  3. 《精通Spring4.X企业应用开发实战》读后感第六章(国际化)
  4. 【ctags/cscope/project安装使用】给神编辑器vim添加新的翅膀
  5. freebsd安装ports
  6. Docker run centos 内部使用systemctl 启动服务的方法
  7. 什么是分布式系统,如何学习分布式系统
  8. Grunt自动化工具相关
  9. 面对对象三大特性之一继承性。
  10. MATLAB中if (0)