博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信自定义分享
阅读量:5174 次
发布时间:2019-06-13

本文共 2355 字,大约阅读时间需要 7 分钟。

1、设置JS安全域名

进入公众,点击右侧功能设置,点击JS安全域名设置

2、引入js文件

<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

3、通过config接口注入权限验证配置

wx.config({

    debug: false,
    appId: "@ViewBag.AppId",
    timestamp: getObject(@ViewBag.Time),
    nonceStr: "@ViewBag.Nonce",
    signature: "@ViewBag.Sign",
    jsApiList: [
       "onMenuShareTimeline",
       "onMenuShareAppMessage",
       "onMenuShareQQ",
       "onMenuShareWeibo",
       "hideOptionMenu",
       "showOptionMenu",
       "hideMenuItems",
       "showMenuItems"
    ]
});

appId:公众号appId,timestamp:时间戳,nonceStr:生成签名的随机串,

signature:签名

public JsApiSignInfo GetJsApiSignInfo(string url)

{
JsApiSignInfo result = new JsApiSignInfo();
if (!this.Valid)
{
result.ErrorCode = -1;
result.ErrorMessage = "无微信信息";
return result;
}
result.Nonce = Guid.NewGuid().ToString("N").ToLower();
result.AppId = this.AppId;
result.Sign = string.Empty;
result.Timestamp = Helper.ConvertDateTimeToUnix(DateTime.Now);
SortedDictionary<string, string> sortParam = new SortedDictionary<string, string>();
sortParam.Add("noncestr", result.Nonce);
sortParam.Add("url", url.IndexOf("#") > 0 ? url.Substring(0, url.IndexOf("#")) : url);
sortParam.Add("timestamp", result.Timestamp.ToString());
sortParam.Add("jsapi_ticket", this.JsApiTicket);
List<string> signPrev = new List<string>();
foreach (KeyValuePair<string, string> itm in sortParam)
{
signPrev.Add(string.Format("{0}={1}", itm.Key, itm.Value));
}
string signStr = string.Join("&", signPrev);
result.Sign = Helper.Sha1(signStr).ToLower();
result.ErrorCode = 0;
result.ErrorMessage = "获取成功";
return result;
}

 

4、通过ready处理验证

wx.ready(function () {

tit = pytit = "投票--首页";
img = "http://m.ganjiuhui.com/Content/images/share_sstx1.jpg";
if ('@activityInfoView.Name' == "最美志愿者,由你决定")
{
img = "http://m.ganjiuhui.com/Content/images/share.png";
}

link = "@Html.Raw(ViewBag.shareLink)";

var shareSuccess = function (type) {
return function () {
}
}
var shareCancel = function () { }

wx.onMenuShareTimeline({

title: tit,
link: link,
imgUrl: img,
success: shareSuccess(2),
cancel: shareCancel("timeline")
});
wx.onMenuShareAppMessage({
title: tit,
desc: con,
link: link,
imgUrl: img,
success: shareSuccess(4),
cancel: shareCancel("shareappmessage")
});
wx.onMenuShareQQ({
title: tit,
desc: con,
link: link,
imgUrl: img,
success: shareSuccess(8),
cancel: shareCancel("shareqq")
});
});

转载于:https://www.cnblogs.com/l36i90u/p/5358698.html

你可能感兴趣的文章
Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划
查看>>
HDU - 4472 Count
查看>>
搭建测试环境
查看>>
调用链监控 CAT 之 入门
查看>>
flexbox属性速览及常见布局实现
查看>>
zlib在Linux和windows中的使用
查看>>
rabbitMq实战使用
查看>>
JQuery Easyui/TopJUI表格基本的删除功能(删除当前行和多选删除)
查看>>
javascript 倒计时
查看>>
web前端工程师入门须知
查看>>
linux--->linux 各个文件夹及含义
查看>>
欢迎使用CSD横竖屏切换问题占位
查看>>
2016集训测试赛(二十)Problem B: 字典树
查看>>
中文保存在properties乱码的解决
查看>>
poj题目分类
查看>>
idea 配置mybatis Generator 不显示的解决方案 和 配置MBG
查看>>
英语生疏了,每日至少一句吧
查看>>
创建打不开文件夹
查看>>
12 for循环
查看>>
redis(hash篇)
查看>>