/** 转载请保留原地址以及版权声明,请勿恶意修改

*  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn

* 【后台】http://xiaoshuo.qqsiot.cn/manager 【前台】http://y6.qqsiot.cn

*  管理员账号:admin  渠道商账号:channel  代理商账号:agent  演示密码:123456

**/


一、微信小说分销系统是什么?

微信小说分销系统是一种合法变现系统,通过购买小说,添加到系统中,然后寻找一些需要粉丝变现的公众号管理者来做自己的渠道商,然后读者阅读小说,充值的钱80%-90%直接给渠道商。平台收取10%-20%,当然,比例自己可以设置。

二、为什么要多网页授权登录

对于微信小说分销系统来说,必然会出现多个公众号的情况,其实就是多个渠道商,每个渠道商都拥有一个公众号,为了更好的隔离渠道商,设计每个渠道商分配一个专属子域名,比如y{0}.qqsiot.cn。

为了更好的用户体验,需要实现自动登录和识别用户的功能,这样读者打开网站的时候不需要输入账号和密码之类的信息来验证信息,除了自动登录,还可以方便后期付款的时候可以调起微信支付。

三、多公众号设计方案

既然考虑到用户体验,不想让验证账号密码,减少繁琐的步骤,那么直接使用微信的无感授权登录方式,snsapi_base方式可以在用户没有关注公众号的时候获取到该用户的openid,并且不需要谈起授权页面,对于用户来说,整个过程是无感的,但是不好的地方在于,此方法无法获取到用户的详细信息,比如昵称、性别、年龄等(不方便后期分析网站的用户喜好和分布)。还有一种方式:snsapi_userinfo,此方式如果是从公众号内部进入的话是没有授权弹窗的,但是如果用户没有关注公众号,此时会弹出是否授权的页面,如果用户拒绝授权,那势必会造成一些不好的后果。

虽然snsapi_base方式无法获取到用户详细信息,但是可以考虑使用其他的办法解决,两个地方可以处理:

1、当用户阅读到一定章节的时候,提示关注公众号,关注成功后,微信会向我们的服务器推送一条关注消息,此时通过微信的获取用户消息接口去获取该用户的信息

  收到的关注推送如下:

2、每次阅读时需要判断是否关注,若用户未关注,则提示关注,若已关注,并且数据库中记录是未关注,那么更新一下用户的详细信息

上边两个地方都提到了获取用户详细信息的接口,接口地址为:https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

可以获取到如下信息:

有点跑题了,言归正传.

四、后台配置基本的公众号信息

每个渠道商可以后台设置自己的公众号的微信号、AppId、AppSecret,然后再微信公众号后台配置授权域名等信息,如下图:

微信后台需要配置的信息如下图:

五、源码分析

这些配置好之后,在数据库中保存这些信息,当用户打开网站的时候,拿出这些信息去授权。

不要一味地去授权,先判断一下是不是在微信浏览器打开的,如果是的话才会去授权,如果不是的话,跳转到关注页面,此页面也是自己写的,上边有公众号的二维码,方便用户使用手机微信扫描关注。

如果是微信端,那么先获取渠道商的AppId,并且记录授权后需要跳转的地址,甚至是获取code和openid后再次跳转的地址。

此时授权成功,并且如果用户没有注册会自动注册,如果已经注册了,则直接打开刚才被拦截的页面,另外代码里边还写了支付页面的拦截,以此实现支付独立的功能。

后台手机查看,完美匹配

类似818tu.c微信小说分销系统设计之多公众号网页授权自动登录源码分享的更多相关文章

  1. 类似818tu.co微信小说分销系统设计之多公众号网页授权自动登录源码

    /** 转载请保留原地址以及版权声明,请勿恶意修改 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www.yxxrui.cn * [后台]http://xiaoshuo. ...

  2. 类818tu.c微信小说分销系统设计之定时模板消息源码

    近期将出个系列讲解开发过程,同时作为此系统的开发记录吧,万能的博客园,本边讲解如何发送模板消息,并且能够定时发送,下一篇讲解如何处理多个公众号的网页授权登录问题 [后台]http://xiaoshuo ...

  3. 微信公众平台开发-OAuth2.0网页授权(含源码)

    微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...

  4. 支持语音识别、自然语言理解的微信小程序(“遥知之”智能小秘)完整源码分享

    记录自己搭建https的silk录音文件语音识别服务的调用过程,所有代码可在文中找链接打包下载 >>>>>>>>>>>>> ...

  5. 微信公众号网页授权登录--JAVA

    网上搜资料时,网友都说官方文档太垃圾了不易看懂,如何如何的.现在个人整理了一个通俗易懂易上手的,希望可以帮助到刚接触微信接口的你. 请看流程图!看懂图,就懂了一半了: 其实整体流程大体只需三步:用户点 ...

  6. 你所误解的微信公众号开发、以及微信公众号网页授权、接收url跳转参数等问题

    前言:有一星期没跟新博客了,最近太忙.项目赶进度就没把时间花在博客上:今天来说说所谓的微信公众号开发和填坑记录: 微信公众号:运行在微信终端的应用 (对于开发者来说比较爽的你只需考虑兼容微信浏览器,因 ...

  7. 微信公众号网页授权获取用户openid

    最近一个项目是在微信公众号内二次开发,涉及到微信公众号支付,根据文档要求想要支付就必须要获取到用户的openid. 这是微信官方文档https://mp.weixin.qq.com/wiki?t=re ...

  8. 微信小说分销系统设计之使用百度Echarts地图统计功能统计微信粉丝地域分布情况

    /** 转载请保留博客园原地址以及版权声明,请勿恶意修改,本博客中的内容均属于技术交流,请勿用于商业用途,谢谢配合 *  作者:杨浩瑞  QQ:1420213383  独立博客:http://www. ...

  9. 微信公众平台网页授权登陆access_token误区

    公众平台里显示 每日获取access_token上线2000次,此access_token并非网页授权登陆的access_token大家不要混淆 1,网页授权登陆的access_token是没有上线的 ...

随机推荐

  1. Java基础教程——线程同步

    线程同步 synchronized:同步的 例:取钱 不做线程同步的场合,假设骗子和户主同时取钱,可能出现这种情况: [骗子]取款2000:账户余额1000 [户主]取款2000:账户余额1000 结 ...

  2. rsync单项同步

    配置rsync+inotify实时单向同步 定期同步的缺点: 执行备份的时间固定,延期明显,实时性差 当同步源长期不变化时,密集的定期任务是不必要的(浪费资源) 实时同步的优点: 一旦同步源出现变化, ...

  3. (1)Consul在linux环境的集群部署

    1.Consul概念 1.1什么是Consul? Consul是一种服务网格解决方案,是HashiCorp公司推出的开源组件,由Go语言开发,部署起来很容易,只需要极少的可执行程序和配置.同时Cons ...

  4. Vite ❤ Electron——基于Vite搭建Electron+Vue3的开发环境【一】

    背景 目前社区两大Vue+Electron的脚手架:electron-vue和vue-cli-plugin-electron-builder, 都有这样那样的问题,且都还不支持Vue3,然而Vue3已 ...

  5. 写给程序员的机器学习入门 (十) - 对象识别 Faster-RCNN - 识别人脸位置与是否戴口罩

    每次看到大数据人脸识别抓逃犯的新闻我都会感叹技术发展的太快了,国家治安水平也越来越好了

  6. Mysql 逻辑架构图及日志系统

    我们经常能看到如下的逻辑架构图,但是往往不能进行很好的记忆,看过就忘记了,也不知道它的实现方式.今天通过简单的画图来简单了解一下mysql到底是如何执行一个select语句,如何update一条语句. ...

  7. Hive 安装 & Mysql 安装

    安装Hive && mysql (1)安装Hive Hive安装所需要的依赖(安装Hive前必须先安装jdk.hadoop) 1)jdk1.6以上 2)Hadoop要启动 未安装jdk ...

  8. robot framework 接口自动化测试和关键字开发

    https://www.cnblogs.com/laoqing/p/10787593.html 1.实战-接口自动化测试实例 1.1 接口测试 接口测试通常是系统之间交互的接口,或者某个系统对外提供的 ...

  9. sails框架结合mocha的测试环境搭建

    一.环境结构 1.首先最底层是操作系统 2.其次在操作系统之上是Node.js的运行环境,和Database 3.再之上就是sail和mocha框架 二.环境搭建 1.首先需要Node.js的运行环境 ...

  10. ActionResult的返回类型

    ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的是非ActionResult类型,控制器将会将结果转换为 ...