精华内容
下载资源
问答
  • 用django搭建微信公众号后端
  • 1.需要将两个公众号绑定在同一个微信开放平台下面, 同一个开放平台会给用户统一的unionid, 而不同的公众号openid不同, 这时unionid就是连接两个不同公众号相同粉丝的唯一纽带 2.登录B项目的时候授权A的微信 ...

    假设有两个公众号A和B, 怎样在B公众号的项目里面判断用户时候关注了A公众号,

    1.需要将两个公众号绑定在同一个微信开放平台下面, 同一个开放平台会给用户统一的unionid, 而不同的公众号openid不同,

    这时unionid就是连接两个不同公众号相同粉丝的唯一纽带

    2.登录B项目的时候授权A的微信

    Controller部分
        /**
         * B调用A部分
         */
        //微信浏览器,用户自动登录,并重新定向 附带code参数
        // back_url 经过urlencode的回跳地址
        public function get_user_code(){
            $back_url = I("redirect_uri","","urldecode");
            $password = I("password","","trim");
    
            $WxUsersModel = D('WxUsers');
            $result = $WxUsersModel->getCode($back_url,$password);
            if(isset($result['code']) && isset($result['lexer'])){
                $url = $result['lexer'];
                $url_replace=preg_replace('/(.*)(?|&)code=[^&]+?(&)(.*)/i','$1$2$4',$url.'&');
                $url_substr=substr($url_replace,0,-1);
                if(strpos($url_substr,'?') === false){
                    $redirect_url = $url_substr.'?code='.$result['code'];
                } else {
                    $redirect_url = $url_substr.'&code='.$result['code'];
                }
                redirect($redirect_url);
            }
        }
    Model部分
    //餐饮圈用户登录
        public function getCode($state = 'STATE',$password = '') {
            if ($_REQUEST['code']) {
                $code = $_REQUEST['code'];
                $lexer = $_REQUEST['state'];
    
                $user_info_json = https_request("https://api.weixin.qq.com/sns/oauth2/access_token?appid=".C('WX_APPID')."&secret=".C('WX_APPSECRET')."&code=".$code."&grant_type=authorization_code");
                $user_info = json_decode($user_info_json,true);
    
                $user_info_json11 = https_request("https://api.weixin.qq.com/sns/userinfo?access_token=".$user_info['access_token']."&openid=".$user_info['openid']."&lang=zh_CN ");
                $data = json_decode($user_info_json11,true);
                //是否已经关注
                $is_subscribe = $this->checkSubscribe($data['openid']);
                $wx_data['is_subscribe'] = $is_subscribe==1?$is_subscribe:0;
                //查询wx_users是否有记录,记录在用户表中
                $exist = $this->getByUnionID($data['unionid']);
                S($code,$data,3000);
                if(empty($exist)){
                    $wx_data['sex'] = $data['sex'];
                    $wx_data['city'] = $data['city'];
                    $wx_data['province'] = $data['province'];
                    $wx_data['country'] = $data['country'];
                    $wx_data['unionid'] = $data['unionid'];
                    $wx_data['openid'] = $data['openid'];
                    $wx_data['nickname'] = $data['nickname'];
                    $wx_data['headimgurl'] = $data['headimgurl'];
                    //添加用户信息
                    $this->addWeixin($wx_data);
                } else {
                    //用户存在,修改用户
                    $wx_data['id'] = $exist['id'];
                    if(!empty($exist['nickname']) && !empty($exist['headimgurl']) )  {
                        if(strpos($exist['headimgurl'], 'http://') !== 0 || strpos($exist['headimgurl'], 'https://') !== 0){
                            unset($data['nickname']);
                            unset($data['headimgurl']);
                        }
                    }
                    //更新用户信息
                    $this->upObj($wx_data);
                }
    
                $return['code'] = $code;
                $return['lexer'] = base_decodes($lexer);
                return $return;
            } else {
                if($password != C('WX_PWD')){
                    exit("Password error");
                }
                $back_url = "https://b2b.taoxiansheng.com/phone/Api/get_user_code";
                header("Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=".C('WX_APPID')."&redirect_uri="
                    . urlencode($back_url)."&response_type=code&scope=snsapi_userinfo&state=".base_encodes($state)."#wechat_redirect" );
                exit;
            }
        }

    通过这样的操作, 登录B公众号项目的时候先使用A授权, 因为推广的是A公众号,所以需要给用户发送额模版消息应该使用A公众号的openid等信息, 而其他的业务操作需要在B公众号进行, 因此在项目中需要B公众号信息的地方再用B公众号授权一次, 这种做法实属无奈之举, 但是业务就这样没办法...

    A项目的用户表记录微信信息后, 通过业务上的相关操作,将用户信息存入B项目的用户表中,此时必须要存用户的unionid, 这是不同工种号关联用户的唯一纽带

        /**
    	* 用户登录
    	* User/login_option
    	* @param user_name 手机号
    	* @param password 密码
    	* @param code 验证码
    	* 2018.01.17
    	* BY HF
    	*/
        public function login_option(){
            config('default_return_type','json');
            $param=$this->request->param();
            $result = $this->validate($param,'User.login');
            if(true !== $result){
                // 验证失败 输出错误信息
                return ['code'=>400,'message'=>$result];
            }
            $code_info=Db::name('code_info')->where(['mobile'=>$param['user_name']])->order('code_info_id desc')->find();
            if($code_info){
                if(time() - $code_info['time'] > 60 * 20){
                    Db::name('code_info')->delete($code_info['code_info_id']);
                    return ['code'=>400,'message'=>'验证码已失效,请重新发送'];
                }else {
                    if ($code_info['code'] != $param['code']) {
                        return ['code' => 400, 'message' => '验证码输入错误'];
                    }
                }
            }else{
                return ['code'=>400,'message'=>'未发送验证码'];
            }
            unset($param['code']);
    
            $info=Db::name('users')->where(['user_name'=>$param['user_name']])->find();
            if($info){  //用户存在,登录
                $token = authcode($info['user_id'],"ENCODE", config('api.api_key'));
                $data=[
                    'token'=>$token,
                    'user_id'=>$info['user_id'],
                    'nickname'=>$info['nickname'],
                    'user_name'=>$info['user_name']
                ];
                $userModel = new Users();
                $userModel->where(['user_name'=>$param['user_name']])->data(['last_time'=>date('Y-m-d H:i:s'),'last_ip'=>request()->ip()])->update();
                $return=array_merge(['code'=>200,'message'=>'登录成功'],$data);                    
                return $return;
            }else{
                //param参数应该包含unionid
                $userModel = new Users();
                $param['credit_line'] = 5;
                $param['reg_step'] = 2;
                //是客户经理推荐的填写客户经理的信息
                if(isset($param['referrer_id']) && !empty($param['referrer_id'])&& $param['referrer_id']!='null'){
                    //客户经理信息
                    $salesman = $userModel->getSalesman($param['referrer_id']);
                    $param['referrer_name'] = $salesman['name'];
                } else {
                    $param['referrer_name'] = 0;
                    $param['referrer_id'] = 0;
                }
                Log::log('login:date:'.date('Y-m-d H:i:s',time()).'&login_data='.var_export($param, true));
                //使用集采平台授权授权注册,不记录集采平台的openid
                unset($param['openid']);
                $userModel->data($param)->save();
                $id = $userModel->user_id;
                //记录积分
                Db::name('credit')->insert(['user_id'=>$id,'item'=>'user_name','value'=>5,'create_time'=>date('Y-m-d H:i:s')]);
                $token = authcode($id,"ENCODE", config('api.api_key'));
                $data=[
                    'token'=>$token,
                    'user_id'=>$id,
                ];
                $return = array_merge(['code'=>200,'message'=>'登录成功'],$data);
                return $return;
            }
        }

    以上是我项目中给B项目技术数据的方式

    3. 项目操作中需要B公众号授权的

    Controller
        //微信浏览器,用户自动登录,并重新定向 附带code参数
        // back_url 经过urlencode的回跳地址
        public function get_user_code(){
            $back_url = input("redirect_uri","","urldecode");
            $password = input("password","","trim");
            $WxUsersModel = model('Wechat');
            $result = $WxUsersModel->getUserInfo($back_url,$password);
            if(isset($result['code']) && isset($result['lexer'])){
                $url = $result['lexer'];
                $url_replace=preg_replace('/(.*)(?|&)code=[^&]+?(&)(.*)/i','$1$2$4',$url.'&');
                $url_substr=substr($url_replace,0,-1);
                if(strpos($url_substr,'?') === false){
                    $redirect_url = $url_substr.'?code='.$result['code'];
                } else {
                    $redirect_url = $url_substr.'&code='.$result['code'];
                }
                return redirect($redirect_url);
            }
        }
    Model
        //获取用户详细信息
        //$lexer 原样返回的数据
        public function getUserInfo($lexer = 'STATE',$password = "") {
            if (isset($_REQUEST['code'])) {
                $code = input('code','','trim');
                $state = input('state','','trim');
                $user_access_token_json = https_request("https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->appid."&secret=".$this->appsecret."&code=".$code."&grant_type=authorization_code");
                $user_access_token = json_decode($user_access_token_json,true);
                $user_info_json = https_request("https://api.weixin.qq.com/sns/userinfo?access_token=".$user_access_token['access_token']."&openid=".$user_access_token['openid']."&lang=zh_CN ");
                $resuult = json_decode($user_info_json,true);
                cache($code,$resuult,300);
                //更新B公众号项目用户表的openid
                model('Users')->save(['openid' => $resuult['openid']], ['unionid' => $resuult['unionid']]);
                $return['lexer'] = $state == 'STATE' ?  "" : base_decodes($state);
                $return['code'] = $code;
                return $return;
            } else {
                if($password != $this->password){
                    exit("请求密码错误");
                }
                $back_url = get_url();
                header("Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appid."&redirect_uri="
                    . urlencode($back_url)."&response_type=code&scope=snsapi_userinfo&state=".base_encodes($lexer)."#wechat_redirect" );
    //            header("Location: https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appid."&redirect_uri="
    //                . urlencode($back_url)."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect" );
                exit;
            }
        }

    将两边的公众号openid和unionid都记录到数据库,以后就好操作了, 为了避免用户每次操作的时候都感觉不停地微信授权,降低体验感, 应该做一定的判断, B公众号的额openid获取到一次之后就不用在授权了

    展开全文
  • 我当时就用微信小程序一个留言助手,用了大约一个月左右的时间,留言系统的基本功能包括留言、点赞、筛选、置顶、删除、关联多个公众号等,只需要把小程序留言卡片嵌入到文章里,用户点击留言就会给相应的文章作...

    公众号留言小程序正式开源,文章底部有源码获取方式。

    我当时就用微信小程序做了一个留言助手,用了大约一个月左右的时间,留言系统的基本功能包括留言、点赞、筛选、置顶、删除、关联多个公众号等,只需要把小程序留言卡片嵌入到文章里,用户点击留言就会给相应的文章作评论就 ok 了。

    虽然不如微信官网自带的留言功能,但是通过制作留言小程序,可以学到很多东西,比如:服务器的配置、后台、数据库以及小程序的快速入门学习。

    直接将下方小程序卡片嵌入到文章中用户就可以进行留言了。

    后台留言筛选,可将一些垃圾留言信息删除或者屏蔽掉。

    文章发布功能:

    写留言:

    是不是很炫酷、很实用?

    当然想要开发这么一款留言小程序也不是什么难事,如果没有接触过小程序也不要怕,因为当我做完这个小程序的时候,带领了一部分读者让他们在一星期内入门了小程序,你说那么神奇?没错,我把所有的入门小程序的知识整理成了一册 2 万多字的教程,只需按照教程学习,两三天入门没有问题,小鹿也准备了小程序微信群给大家服务,如下获取。


    获取方式:

    关注公众号:「一个不甘平凡的码农」

    1、公众号回复:“小程序教程” 即可获取小程序入门教程。

    2、公众号回复:“留言小程序” 即可获取留言小程序源码以及加入小程序群聊。

    展开全文
  • 一个行业公众号,后台里面大概有10G的数据, 现在是用公众号直接读取数据,但现在的问题是 打开公众号 读取数据的时间要八秒 不知道什么原因, 用的带宽是 双线10兆独享。想问题主要是什么问题。
  • 一个h5的静态页面源码,主要用于公众号的停车系统,精心设计
  • 做一个微信公众号的排队预约系统

    千次阅读 2020-09-19 11:33:42
    微信公众号的排队预约系统主要记录相关的技术问题解决方案如何确保多排队队列请求排队时取号不重复如何确保多窗口同时呼叫,不重复叫号,顺序乱。多种叫号方式的叫号算法,自定义叫号比例如何架构,才能替代传统排队...

    主要记录相关的技术问题解决方案

    微信公众号排队预约系统,支持线上排队、线上预约功能,预约成功后需要现场签到才可插入排队队列。现场签到可实现手机定位到办理点指定范围内才可签到的个性化功能。支持多网点、多种业务类型多队列同时排队。基本上取代了传统的物理排队机,实现无纸化办公。

    如何确保多排队队列请求排队时取号不重复

    大家想要知道哪一步,留言补充。

    如何确保多窗口同时呼叫,不重复叫号,顺序乱。

    大家想要知道哪一步,留言补充。

    多种叫号方式的叫号算法,自定义叫号比例

    大家想要知道哪一步,留言补充。

    如何架构,才能替代传统排队机

    大家想要知道哪一步,留言补充。

    设计多种统计数据,让客户着迷

    大家想要知道哪一步,留言补充。

    微信排队预约的优缺点,如何弥补

    大家想要知道哪一步,留言补充。

    支持三级管理,授权领导设备查看实时排队情况

    大家想要知道哪一步,留言补充。

    如何联系我们,可一键化部署到您的专用服务器

    技术顾问:猫头鹰
    联系方式:17735363893

    展开全文
  • 如何起来一个微信公众号

    千次阅读 2016-05-05 14:19:29
    今天听了关于运营的分享,内容是如何做好一个微信公众号了些笔记,记录下来,以便日后查阅。  运营,往往通过许多看似琐碎无趣的事情,来实现一个光芒闪耀的成果  技术,产品,运营,三足鼎立,缺一不可,...

        今天听了关于运营的分享,内容是如何做好一个微信公众号,做了些笔记,记录下来,以便日后查阅

        运营,往往通过许多看似琐碎无趣的事情,来实现一个光芒闪耀的成果

       技术,产品,运营,三足鼎立,缺一不可,切记切记。


      1.定位

        无论是做产品还是做公众平台,第一个首先考虑的问题都是定位。下面的两个问题,必须考虑清楚:1.用户想看什么?2.能给他们提供什么?

        定位之前,必定要选定一个特定的人群,你这个公众号针对的是哪一种人群用户?白领?学生?老人?选定人群后才能有针对的投放内容。了解用户什么时候有空点开你的内容,他们对什么内容感兴趣。那么在如今公众号泛滥的背景下,如何在海量的内容中脱颖而出呢?答案是,小而美。因为当一个公众号用户多了起来后,他只能满足一大部分人的需求,还有少量的需求没有被满足,这是肯定的。对于前期来说,如何让这部分大流量主手下未被满足需求的用户成为你的冷启动种子用户,就尤为重要了额。所以小而美的定位,切中这些用户的需求的几率比较大。

       而且定位的方向必须清晰,人不可能专注于好几件事情上,产品也是。而清晰的定位对用户具有较高的识别度,在同类产品中能有区别。

      

        在做完定位后,内容就可以开始考虑了,这里列举几条内容的推送标准:

        1.原创     2.有态度(只关注__?__)    3.有料     4.有趣     5.有温度,人文关怀


        2.增粉

        所有的产品前期运营都是很艰苦的,也许头1000用户就得花很长时间。那么如何进行公众号的冷启动?

        1.亲友团。让朋友亲人参与转发,发红包给朋友圈中拥有好友多的好友,让其转发。要善用自己手上有限的资源

        2.社群。无论QQ群还是微信群,现在都很多,大家都是为了特定的目的进群的。这样集中的用户聚集,你不进去发红包求关注说不过去吧。

        3.社区论坛。比如知乎,豆瓣这些内容平台,上去经常刷脸,回答,求关注。这些事情,应该见多了吧。

       

        其实就一句话,无所不用其极。当然这是比较暴力的方法,但是得到的粉丝,并不是非常精准,且忠诚度不是非常高。这就需要权衡了。是要100个死忠粉丝,还是1000个活跃度不是很高的一般粉丝,这就仁者见仁了。


        在内容上,如何提供优质的内容,来吸引优质的用户?

        1.内容质量稳定增长       2.热点文章冲刺(推荐的是每周一个爆款)      3.连载,优质的资料分享      4.定期活动,互推

        这里有一个词:连接。产品是用户和开发者之间情感的连接,你写的东西通过产品,最终呈现到用户眼前的。所以你每一次用心,每一次努力,都不是徒劳,用户都能感受。所以,你想传达给屏幕对面的,究竟是什么?这需要你自己来回答。

        还有值得注意的是,如何持续的产生内容,在运营的时候不能说靠人的自觉,毕竟人都是有惰性的,必须落实到每个运营人员的身上,你负责什么文章,什么时候初稿,什么事时候发布,都要事无巨细的执行。


        3.数据分析与粉丝的维系

        在做公众号时,应该需要时刻关注平台的信息,来进行分析,比如阅读量啊,哪些文章让用户增长了,哪些文章阅读量非常高。这些数据都能帮你了解用户的兴趣所在,因为不是每个产品的目标或者定位都是一层不变的,必然需要不断接受反馈不断的修正。而这些数据就是用户对你的反馈。有的放矢的去改变内容策略,让用户习惯的养成,这样用户对公众号才有忠诚度可言。一般用户的心理都分为以下几个阶段:

        情感连接-------》兴趣--------》依赖---------》沉迷

        下面的图表示的维系粉丝忠诚度的具体方法


        4.商业模式的探索和商业价值

        公众号的盈利模式是需要考虑的,就算开始没有想到,但是当你粉丝达到一定规模的时候,需要去探索。当然广告是最直接和有效的方式。但是除此之外呢?你还能有什么方法去变现粉丝上的商业价值呢?这个值得思考和实践。

        最后给一个内容驱动的产品业务体系:

       

    展开全文
  • 作为一名自媒体编辑,我一直密切关注许多文章中写的非常好的公众号文章...如果能把一个公众号的所有历史文章全部下载到电脑上,会更方便。 但是怎么才能个小工具实现这个功能了,无疑最方便的还是用Python来写代码...
  • 我们要创建一个个人公众号,首先需要申请一个公众号. 下面详细说说申请过程. 注册地址:https://mp.weixin.qq.com/ 或者直接搜索:微信公众号平台 填写注册信息: 上面的信息,大家根据自己的填写,还要很多...
  • 腾讯在微信现有的基础上开发了一个新的功能模块,叫微信公众平台。开发者或者商家可以在微信公众平台上申请应用账号,即微信公众号。通过微信公众号,可以实现和特定群体的文字、图片、语音、视频的全方位沟通、互动...
  • 如何创建一个微信公众号

    万次阅读 2018-08-29 21:41:44
    最近有不少问我怎样从0创建一个微信公众号,简单指导之后感觉大家都不太明白,所以打算写一篇教程文章来告诉大家如何创建订阅号,欣然提笔! 这里我们首先打开网址https://mp.weixin.qq.com/,我们会看到下面的界面...
  • 我的第一个公众号

    2016-06-12 00:58:56
    公众号功能非常单一,而且由于微信非认证公众号的接口限制,很多事情不鸟。
  • 如何搭建一个淘宝客公众号(淘宝客网站)

    万次阅读 多人点赞 2018-11-27 22:39:43
    下面一步一步的带领大家搭建一个这样的淘宝客公众号 一、到最近比较火的的阿里云,购买一个ECS服务器,配置一般就可以不需要太好,也别太差,要不然体验有点差,下面说下服务器环境配置(很简单...
  • 在微信里面搞一个关注按钮 或者跳到关注页面,这波很伤 哪位老哥扶一下 下面这几种方法都试过了: 一个a链接,下面是路径,在外部点这个链接还是可以的点进去有那个关注按钮,但是写到项目里面那个关注按钮就不见了...
  • 如何注册一个微信公众号

    千次阅读 2015-07-23 13:47:55
    如何注册一个微信公众号微信公众号分为以下几类: 服务号:给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台。 订阅号:为媒体和个人提供一种新的信息传播方式,构建与读者...
  • 运营一个公众号很简单,但运营好公众号却太难,好与坏的评判关键在于内容。 内容越优质,用户粘性自然越强,口碑也就越好,越利于传播,相反的,内容越差,粘性就越差。 那么,内容运营到底要怎么呢? 一、选题...
  • 最近抽出来一点时间,给别人写了一个公众号,主要功能有,注册,登录,验证码登录,用户信息查看,用户信息添加等
  • 需求是这样的 现在有3个不同的域名,一个认证的微信公众号,由于公众号授权回调页面域名只能写一个,因此对于我有多个微擎系统分别部署在不同服务器上(一台营销业务、一台分销系统、一台餐饮系统),分别部署...
  • 一直想聊聊,我是什么时候开始个公众号的,又为什么重新起了公众号?
  • 你总共关注了多少个公众号?我本人算是微信公众号的重度用户,我关注的公众号数量也比较多,可能有300多个,然后就在阅读微信公众号文章时遇到一些困扰,不过最近找到一个比较好的方法解决,所以想...
  • 如何把一个微信公众号运营到可以养活自己?前几天看到一些文章,大概意思是很多人都去公众号,运营的好到最后营业额都超过了原来公司的。很好奇是怎么把公众号做的粉丝那么多,后面盈利是靠广告呢还是什么?诸如...
  • 最近咨询公众号裂变活动的朋友比较多,但是还有很多朋友不明白公众号裂变流程,在制定了裂变活动后不知道怎么推广,下面听小编叨叨两句: 一般公众号裂变流程如下: 1.设置裂变海报 在海报设计时需预留头像、昵称、...
  • 为什么要运营一个公众号呢? 下面先上号! 其实一开始也是听了很多人的建议,说你技术多好多好,不分享出去可惜了。写写博客赚赚钱,写写公众号,接接广告都不错啊。你看那些公众号几万粉丝的,每天广告收入能...
  • 2018 年年底开通公众号,没想到这件事儿彻底改变了我的生活。... 我从什么一个只会敲代码不会沟通交际的程序员逐渐成长到现在,2019 年年底,一年时间公众号读者达到 12 万 2 千多。 ...
  • 现在的公众号很多,这位老铁的公众号却是我唯一置顶的。现在推荐给大家。这个公众号就是《java技术之家》,每周都会有原创连载,干货满满。深受粉丝的喜爱。其中部分截图:这位...
  • 公众号建立之初,没有粉丝的情况下,都需要使用到微信活动,一个成功的微信公众号营销活动,会给公众号带来很大的流量,也会带来很多的粉丝,所以会制作微信营销活动是一个合格的公众号运营者的基本要求。...
  • 公众号正式版上线以来,阅读数持续下降,涨粉难、互动难成了公众号运营主们普遍遇到的难题,我们见证了太多公众号停更,坚持做公众号的越来越少。 而微信小程序越来越炙手可热,它以开发周期短,开发成本低,即用即...
  • 晓衡上周去了趟苏州,有幸参考技术圈公众号主的聚会。回来后,有朋友问我有些什么收获,这此收获最大在于了解到了关于技术公众号是如何赚钱的逻辑。而且我也发现社区有越来越多的发者,开始尝试在公众...
  • 就这样画吧.. 打开 微信 点击 公众号 ...我提供 公众号 网站需求(一共有 三数据提交 功能模块,5查询模块,) 这样做好的话 大概 花费是多少 [/size] 如果 有在武汉的.可能留下联系方式
  • 一个简单的搜狗微信公众号案例

    千次阅读 2019-06-18 19:11:02
    这里一个微信文章的爬取案例。 搜狗提供了微信公众号的链接,尽管里面只有10条最新文章数据,但是还是值得一抓的。 因为想要实现抓取不同的微信公众号的文章,所以采用了selenium来模拟浏览器操作,我们可以先...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 347,214
精华内容 138,885
关键字:

如何做一个公众号