公众号第三方平台开发 教程六 代公众号使用JS SDK说明
发布时间:2017/2/21 15:23:54 来源:搜数网络 浏览:71

公众号第三方平台开发 教程一 创建公众号第三方平台

公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取

公众号第三方平台开发 教程三 微信公众号授权第三方平台

公众号第三方平台开发 教程四 代公众号发起网页授权说明

公众号第三方平台开发 教程五 代公众号处理消息和事件

公众号第三方平台开发 教程六 代公众号使用JS SDK说明



3.通过config接口注入权限验证配置,但在获取jsapi_ticket时,不通过公众号的access_token来获取,而是通过第三方平台的授权公众号token(公众号授权给第三方平台后,第三方平台通过“接口说明”中的api_authorizer_token接口得到的token),来获取jsapi_ticket,然后使用这个jsapi_ticket来得到signature,进行JS SDK的配置和开发。注意JS SDK的其他配置中,其他信息均为正常的公众号的资料(而非第三方平台的)。

获取jsapi_ticket的函数


    /// <summary> /// 获取jsapi_ticket /// </summary> /// <returns></returns>  private string GetTicket()
    { string ticket = string.Empty;

        Member_Model memberInfo = Member_BLL.GetModelByKeyFiled(memberID);
 string token = memberInfo.authorizerAccessToken;
        appID = memberInfo.authorizerAppid; //这里用的是服务方的PPID,不是公众号的APPID   string result = Post("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" +
 token + "&type=jsapi", "");

        JObject objResult = (JObject)JsonConvert.DeserializeObject(result);

        ticket = objResult.Value<string>("ticket"); return ticket;
    }
复制代码
signature的生成

    private void Bind()
    {
        WeiXinInterface.RefreshAndUpdateToken(memberID); //刷新服务方的token  timestamp = ConvertDateTimeInt(DateTime.Now).ToString(); //时间戳  
noncestr = GenerateNoncestr(16); //随机生成的字符串 ticket = GetTicket();
 string url = "http://****/jspage.aspx?memberID=" + memberID;  //*号部分各位替换成自己的域名
 string tempStr = string.Format("jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}",
 ticket, noncestr, timestamp, url);

        LogTool.LogToDirDest(filePath, LogType.Debug, pageUrl + " 获取到的明文:" + tempStr);

        signature = System.Web.Security.FormsAuthentication.
         HashPasswordForStoringInConfigFile(tempStr, "sha1").ToLower();

        LogTool.LogToDirDest(filePath, LogType.Debug, pageUrl + " 获取到的signature:" + signature); //Response.Write(testStr); }

前台JS页面配置







返回