一种限制微信转发的方法技术

技术编号:23149428 阅读:118 留言:0更新日期:2020-01-18 13:36
本发明专利技术公开了一种限制微信转发的方法,包括:步骤一,构建一台用于存储用户需要分享的页面的WEB服务器及数据库,并且注册一个微信公众号;步骤二,生成跳转页面;步骤三,在数据库中创建一张表,字段至少需要包含“url”和”openid”;当用户成功分享跳转页面后,WEB服务器将页面的实际链接填入url字段中;步骤四,获取code,并跳转到实际的url地址;步骤五,获取openid;步骤六,比较、填入openid;步骤七,获取用于屏蔽掉页面的转发按钮的access_token,然后获取jsapi_ticket;步骤八,生成签名字符串;步骤九,将步骤八中的noncestr、timestamp、signature传给页面,进行微信右上角转发按钮的隐藏操作。本发明专利技术可以实现页面与第一个查看的人的微信号相绑定,打开之后禁止进行转发。

A method of restricting wechat forwarding

【技术实现步骤摘要】
一种限制微信转发的方法
本专利技术涉及一种限制微信转发的方法。
技术介绍
如今微信的使用已经越来越广泛,很多商务场合也经常用微信来交互文件、网页。比如发报价单、产品样例等。但是对方在收到这些资料后,往往会转发给第三方。现有的解决方案是将文件转为网页页面。然后经过一段时间之后将此页面删除。或者设定这个页面可以访问的次数。但是因为无法确定用户,所以可能存在,用户看完之后立即转发给其他人,或者用户还想在看的时候,经过页面已经删除了。无论是方便性还是实用性,都有很大的缺陷。用户更需要的是,禁止微信转发,如果万一真的转发,也要能够禁止打开。
技术实现思路
本专利技术的目的是提供一种限制微信转发的方法,实现页面与第一个查看的人的微信号相绑定,打开之后禁止进行转发。实现本专利技术目的的技术方案是:一种限制微信转发的方法,包括以下步骤:步骤一,构建一台用于存储用户需要分享的页面的WEB服务器及数据库,并且注册一个微信公众号;步骤二,当用户将WEB服务器中的一个页面分享给微信用户时,WEB服务器另外生成一个跳转页面,该跳转页面中写入如下脚本:<script>varauthUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri="+被分享页面的实际链接+"&response_type=code&scope=snsapi_userinfo&amp;state=#wechat_redirect";window.location.href=authUrl;</script>其中,appid为步骤一注册的微信公众号的ID;步骤三,在数据库中创建一张表,字段至少需要包含“url”和”openid”;当用户成功分享跳转页面后,WEB服务器将页面的实际链接填入url字段中;步骤四,当接收方通过微信打开收到的链接时,根据页面中的脚本,将首先跳出一个授权认证的页面;当接收方点击同意后,微信将会自动根据跳转页面脚本中的redirect_uri信息,发出一个访问请求到WEB服务器,并且在访问请求中的页面实际链接中增加一个code参数;步骤五,WEB服务器在微信发送的访问请求中得到code值,然后向微信请求获取接收方的openid;步骤六,将获取到的微信接收方的openid与数据库对应的记录中的字段openid进行比较;若数据库对应的记录中的字段openid没有值,表明这是第一次打开,则将获取到的微信接收方的openid填入此字段;若有值,则进行比较,若相同,则表明还是这个接收方在打开页面,否则是其他用户,则拒绝显示页面;步骤七,获取用于屏蔽掉页面的转发按钮的access_token,然后获取jsapi_ticket;步骤八,随机生成的noncestr字符串,然后将noncestr字符串、当前时间戳timestamp、当前页面url、步骤七获取到的jsapi_ticket拼接成字符串,最后将该字符串以SHA1算法加密得到signature签名字符串;步骤九,将步骤八中的noncestr、timestamp、signature传给页面,页面调用微信apiwx.config进行权限验证,验证成功后调用wx.hideMenuItemsapi进行微信右上角转发按钮的隐藏操作,实现对微信转发的限制。进一步地,所述步骤五中向微信请求获取微信接收方的openid的具体方法为:向微信请求以下链接:https://api.weixin.qq.com/sns/oauth2/access_token?appid=xxx&secret=xxx&code=CODE&grant_type=authorization_code;其中,appid和secret的值在步骤一注册的微信公众号中查询;请求后,微信将会以json格式返回一串数据,其中包括openid,解析此字段,即可得到需要的openid值。进一步地,所述步骤七中通过以下链接获取用于屏蔽掉页面的转发按钮的access_token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxx&secret=xxx,其中appid和secret的值在步骤一注册的微信公众号中查询。进一步地,所述步骤七中通过以下链接获取jsapi_ticket:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=xxx&type=jsapi。进一步地,所述步骤八中拼接字符串的规则为:"jsapi_ticket="+jsapi_ticket+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+url。采用了上述技术方案,本专利技术具有以下的有益效果:本专利技术可以实现页面与第一个查看的人的微信号相绑定,打开之后禁止进行转发。如果用某些特殊的方法进行的转发,对方在收到之后,也无法打开页面。具体实施方式(实施例1)本实施例的限制微信转发的方法,包括以下步骤:步骤一,构建一台用于存储用户需要分享的页面的WEB服务器(如IIS、apache)及数据库(如sqlserver、oracle、mysql),并且注册一个微信公众号;步骤二,当用户将WEB服务器中的一个页面(如http://www.mydomain.com/myurl&param=a)分享给微信用户时,WEB服务器另外生成一个跳转页面(http://www.mydomain/com/myjump&id=xxx),该跳转页面中写入如下脚本:<script>varauthUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri="+http://www.mydomain.com/myurl&param=a+"&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect";window.location.href=authUrl;</script>其中,mydomain.com为WEB服务器的域名,appid为步骤一注册的微信公众号的ID;步骤三,在数据库中创建一张表,字段至少需要包含“url(链接地址)”和”openid(微信的识别ID)”;当用户成功分享跳转页面后本文档来自技高网...

【技术保护点】
1.一种限制微信转发的方法,其特征在于:包括以下步骤:/n步骤一,构建一台用于存储用户需要分享的页面的WEB服务器及数据库,并且注册一个微信公众号;/n步骤二,当用户将WEB服务器中的一个页面分享给微信用户时,WEB服务器另外生成一个跳转页面,该跳转页面中写入如下脚本:/n<script>/nvar authUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri="+被分享页面的实际链接+"&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect";/nwindow.location.href=authUrl;/n</script>/n其中,appid为步骤一注册的微信公众号的ID;/n步骤三,在数据库中创建一张表,字段至少需要包含“url”和”openid”;当用户成功分享跳转页面后,WEB服务器将页面的实际链接填入url字段中;/n步骤四,当接收方通过微信打开收到的链接时,根据页面中的脚本,将首先跳出一个授权认证的页面;当接收方点击同意后,微信将会自动根据跳转页面脚本中的redirect_uri信息,发出一个访问请求到WEB服务器,并且在访问请求中的页面实际链接中增加一个code参数;/n步骤五,WEB服务器在微信发送的访问请求中得到code值,然后向微信请求获取微信接收方的openid;/n步骤六,将获取到的微信接收方的openid与数据库对应的记录中的字段openid进行比较;若数据库对应的记录中的字段openid没有值,表明这是第一次打开,则将获取到的微信接收方的openid填入此字段;若有值,则进行比较,若相同,则表明还是这个接收方在打开页面,否则是其他用户,则拒绝显示页面;/n步骤七,获取用于屏蔽掉页面的转发按钮的access_token,然后获取jsapi_ticket;/n步骤八,随机生成的noncestr字符串,然后将noncestr字符串、当前时间戳timestamp、当前页面url、步骤七获取到的jsapi_ticket拼接成字符串,最后将该字符串以SHA1算法加密得到signature签名字符串;/n步骤九,将步骤八中的noncestr、timestamp、signature传给页面,页面调用微信apiwx.config进行权限验证,验证成功后调用wx.hideMenuItemsapi进行微信右上角转发按钮的隐藏操作,实现对微信转发的限制。/n...

【技术特征摘要】
1.一种限制微信转发的方法,其特征在于:包括以下步骤:
步骤一,构建一台用于存储用户需要分享的页面的WEB服务器及数据库,并且注册一个微信公众号;
步骤二,当用户将WEB服务器中的一个页面分享给微信用户时,WEB服务器另外生成一个跳转页面,该跳转页面中写入如下脚本:
<script>
varauthUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri="+被分享页面的实际链接+"&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect";
window.location.href=authUrl;
</script>
其中,appid为步骤一注册的微信公众号的ID;
步骤三,在数据库中创建一张表,字段至少需要包含“url”和”openid”;当用户成功分享跳转页面后,WEB服务器将页面的实际链接填入url字段中;
步骤四,当接收方通过微信打开收到的链接时,根据页面中的脚本,将首先跳出一个授权认证的页面;当接收方点击同意后,微信将会自动根据跳转页面脚本中的redirect_uri信息,发出一个访问请求到WEB服务器,并且在访问请求中的页面实际链接中增加一个code参数;
步骤五,WEB服务器在微信发送的访问请求中得到code值,然后向微信请求获取微信接收方的openid;
步骤六,将获取到的微信接收方的openid与数据库对应的记录中的字段openid进行比较;若数据库对应的记录中的字段openid没有值,表明这是第一次打开,则将获取到的微信接收方的openid填入此字段;若有值,则进行比较,若相同,则表明还是这个接收方在打开页面,否则是其他用户,则拒绝显示页面;
步骤七,获取用于屏蔽掉页面的转发按钮的access_token,然后获取jsapi_ticket;
步骤八,随机生成的noncestr字符串,然后将noncestr字符串、当前时间戳timestamp、当前页面url、步骤七获取到的jsapi_ticket拼接成字符串,最后将该字符串以S...

【专利技术属性】
技术研发人员:邱文乔黄修海
申请(专利权)人:无锡安腾软件开发有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1