900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 微信通过JSSDK分享朋友圈

微信通过JSSDK分享朋友圈

时间:2021-11-09 09:55:59

相关推荐

微信通过JSSDK分享朋友圈

先在微信公众号里面配置js接口安全域名

HTML代码部分

<script src="http://res./open/js/jweixin-1.0.0.js"></script>

<script type="text/javascript">

//if(!(/MicroMessenger/i.test(navigator.userAgent)))

//{

// document.body.innerHTML="请在微信打开此链接";

//}

// 注意:所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

// 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。

// 完整 JS-SDK 文档地址:http://mp./wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

wx.config({

debug: false,

appId: 'xxxxx',

timestamp: '<%=wx.timestamp%>',

nonceStr: '<%=wx.noncestr%>',

signature: '<%=wx.signature%>',

jsApiList: [

'checkJsApi',

'onMenuShareTimeline',

'onMenuShareAppMessage'

]

});

wx.ready(function () {

// 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口

wx.onMenuShareTimeline({

title: '好帮人平台-',

link: 'xxxxxx',

desc: "分享给您的好友吧",

imgUrl: 'xxxx',

trigger: function (res) {

// alert("分享到朋友圈按钮点击");

},

success: function (res) {

alert("分享成功");

},

cancel: function (res) {

// alert('已取消');

},

fail: function (res) {

alert(JSON.stringify(res));

}

});

wx.error(function (res) {

// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

alert("errorMSG:" + res);

});

});

</script>

<script type="text/javascript">

#endregion

/// <summary>

/// 微信的js_api票

/// </summary>

public WeiXinJsapi_ticketJs wx { get; set; }

protected void Page_Load(object sender, EventArgs e)

{

WeiXinOAuth au = new WeiXinOAuth();

// WeiXinAccessTokenResult result = null;

string AppID = "xxxx";

string AppSecret = "xxxx";

if (HttpContext.Current.Session["jsapi"] == null)

{

string actoken = "";

if (HttpContext.Current.Session["token"] != null)

{

actoken = HttpContext.Current.Session["token"] as string;

}

else

{

Access_token ac = au.GetAcess_token(AppID, AppSecret);

if (ac != null)

{

HttpContext.Current.Session["token"] = ac.access_token;

actoken = ac.access_token;

// HttpContext.Current.Session.Timeout = 72000;

}

}

WeiXinJsapi_ticket jsapi = au.GetTickect(actoken);

string ms = JsonSerializeUtils.JsSerializer(jsapi);

WeiXinJsapi_ticketJs jsapis = new WeiXinJsapi_ticketJs();

jsapis.errcode = jsapi.errcode;

jsapis.errmsg = jsapi.errmsg;

jsapis.expires_in = jsapi.expires_in;

jsapis.ticket = jsapi.ticket;

long time = au.GetTimeStamp();

string noncestr = au.GetNoncestr();

jsapis.noncestr = noncestr;

string signature = au.GetSignature(jsapis.ticket, noncestr, time, HttpContext.Current.Request.Url.ToString(), "");//必须动态获取

jsapis.timestamp = time.ToString();

jsapis.signature = signature;

HttpContext.Current.Session["jsapi"] = jsapis;

HttpContext.Current.Session.Timeout = 72000;

string mss = JsonSerializeUtils.JsSerializer(jsapis);

wx = jsapis;

}

else

{

wx = HttpContext.Current.Session["jsapi"] as WeiXinJsapi_ticketJs;

string mss = JsonSerializeUtils.JsSerializer(wx);

long time = au.GetTimeStamp();

string noncestr = au.GetNoncestr();

wx.noncestr = noncestr;

string signature = au.GetSignature(wx.ticket, noncestr, time, HttpContext.Current.Request.Url.ToString(), "");//必须动态获取

wx.timestamp = time.ToString();

wx.signature = signature;

}

}

}

}

注:获取的Access_Token必须是全局Access_Token不是网页的Access—_Token,全局Access_token缓存72000秒,也就是两个小时,微信端不宜频繁访问。 signature 签名每次访问都要更新,切勿保存到session里面

MOdel实体类

/// <summary>

/// 这是获取基础的access_token 每天最多获取2000次

/// </summary>

public class Access_token

{

public string access_token { get; set; }

public string expires_in { get; set; }

}

/// <summary>

/// 微信Js-jdk的票据信息

/// </summary>

public class WeiXinJsapi_ticket

{

public string errcode { get; set; }

public string errmsg { get; set; }

public string ticket { get; set; }

public string expires_in { get; set; }

}

public class WeiXinJsapi_ticketJs : WeiXinJsapi_ticket

{

/// <summary>

/// 随机数

///

/// </summary>

public string noncestr { get; set; }

/// <summary>

/// 时间戳

/// </summary>

public string timestamp { get; set; }

/// <summary>

/// 签名

/// </summary>

public string signature { get; set; }

}

访问微信端类在上一篇文章。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。