zoukankan      html  css  js  c++  java
  • H5分享踩过的坑

    我们在做H5页面的分享功能时,需要通过接口获取

    appId: ‘’, // 必填,公众号的唯一标识

    timestamp: , // 必填,生成签名的时间戳
    nonceStr: ‘’, // 必填,生成签名的随机串
    signature: ‘’,// 必填,签名
    jsApiList: [] // 必填,需要使用的JS接口列表

    获取调用微信JS接口的临时票据    在测试的时候需要在微信平台添加自己的ip白名单

    #region 获取调用微信JS接口的临时票据
            /// <summary>
            /// 获取调用微信JS接口的临时票据
            /// </summary>
            /// <param name="accessToken"></param>
            /// <returns></returns>
            /// <summary>
            /// 获取JsApiTicket
            /// </summary>
            /// <param name="accessToken"></param>
            /// <returns></returns>
            public static string GetJsApiTicket(string accessTokens)
            {
                if (string.IsNullOrWhiteSpace(accessTokens))
                {
                    return null;
                }
                string url = $"https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token={accessTokens}";
                string getJsApiTicketUrl = HttpGetstr(url);
                var response = Newtonsoft.Json.JsonConvert.DeserializeObject<AccessTicketResponse>(getJsApiTicketUrl);
    
                return response.ticket;
            }
            #endregion

    获取签名

    /// <summary>
            /// 获取签名
            /// </summary>
            /// <param name="nonceStr">随机字符串</param>
            /// <param name="jsapi_ticket">jsapi_ticket,可通过GetJsApiTicket()方法获取</param>
            /// <param name="timeStamp">时间戳,当前时间减去1970-1-1,转换为秒</param>
            /// <param name="url">申请验证的地址全称(例如:http://abc.companycn.net/login.aspx</param>
            /// <returns></returns>
            public static string GetSignature(string nonceStr, string jsapi_ticket, string timeStamp, string url)
            {
                string oriString = string.Format("jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}", jsapi_ticket, nonceStr, timeStamp, url);
                return WeChatSha1(oriString);
            }

    在前端方面  自己封装了一个js插件快速实现分享功能

    在每次分享的时候  微信会拼接类似于from=XXX的url字符串,但我们在用这个新的url获取签名的时候不会成功,在这儿,需要做一下字符串的过滤

    function getQueryString(name) {//根据字段看网址是否拼接&字符串
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
            var r = window.location.search.substr(1).match(reg);
            if (r != null)
                return unescape(r[2]);
            return null;
        }
        var from = getQueryString('from');
        var appinstall = getQueryString('appinstall');
        var sec = getQueryString('sec');
        var timekey = getQueryString('timekey');
    
        if (from || appinstall || sec || timekey) {//假如拼接上了
            window.location.href = "http://dulux.companycn.net/duluxFour/";
        }

    如果需要js插件  联系邮箱dujian@inexten.com

  • 相关阅读:
    十一周
    第五次作业
    第十周
    测试作业
    2016.06.24-2016.06.30这周工作时间和内容
    2016.06.10-2016.06.16这周工作时间和内容
    2016.06.03-2016.06.09这周工作时间和内容
    2016.05.26-2016.06.02这周工作时间和内容
    2016.05.20-2016.05.26这周工作时间和内容
    分答
  • 原文地址:https://www.cnblogs.com/dujian123/p/12560664.html
Copyright © 2011-2022 走看看