精华内容
下载资源
问答
  • 网址:如何设置小程序支付后自动关注公众号操作
    展开全文
  • 当用户进入公众号h5页面,弹窗提示,是否要关注公众号 流程 1.用户在微信公众号端进入h5页面时,前端从后端数据库获取到用户关注状态. 2.如果用户未关注,弹窗提示,是否关注公众号,不关注则取消弹窗,关注的话跳转到...

    实现效果:

    当用户进入公众号h5页面,弹窗提示,是否要关注公众号,点击关注,跳转到微信关注页面

    流程

    1.用户在微信公众号端进入h5页面时,前端从后端数据库获取到用户关注状态.
    2.如果用户未关注,弹窗提示,是否关注公众号,不关注则取消弹窗,关注的话跳转到微信关注页面
    3.一天内未关注用户只会接收到一次弹窗提示
    4.更新用户的关注状态入库

    一,用户在微信公众号端进入h5页面时,前端从后端数据库获取到用户关注状态.

    微信用户是否关注公众号,需要咱们去问微信服务器要数据
    微信官方文档
    获取用户基本信息(包括UnionID机制和用户是否关注)
    开发者可通过OpenID来获取用户基本信息。请使用https协议。

    接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

    参数说明:
    在这里插入图片描述
    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号:

    {
        "subscribe": 1, 
        "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
        "nickname": "Band", 
        "sex": 1, 
        "language": "zh_CN", 
        "city": "广州", 
        "province": "广东", 
        "country": "中国", 
        "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
        "subscribe_time": 1382694957,
        "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
        "remark": "",
        "groupid": 0,
        "tagid_list":[128,2],
        "subscribe_scene": "ADD_SCENE_QR_CODE",
        "qr_scene": 98765,
        "qr_scene_str": ""
    }
    

    在这里插入图片描述

    二,如果用户未关注,弹窗提示,是否关注公众号,不关注则取消弹窗,关注的话跳转到微信关注页面

    关于前端的弹窗之类的就不在此啰嗦了,直接说咋得到微信关注页面
    如图:
    在这里插入图片描述
    点击关注公众号,用户就会关注此公众号
    获取此页面方法:
    前置条件:在pc端上登陆自己的微信
    1,在手机微信上搜索到公众号,但是先不关注,点击右上角的三个点,发送到文件传输助手:
    在这里插入图片描述

    2.在pc端微信上点击文件传输助手
    在这里插入图片描述
    3,得到如图:
    在这里插入图片描述
    这样的话,就获取到了关注页面.

    三,一天内未关注用户只会接收到一次弹窗提示

    这个功能前端来做就可以了,咱们后端及时返回用户的关注状态和弹窗次数

    规定时间内,比如一天,只可以给未关注公众号的用户一次弹窗提示
    后端需要控制这个次数,我采用的是redis,当未关注用户进入播放页面时,前端向后端发送一个get请求,后端拿到请求,查看redis数据库,有此用户的值没,有,说明已经提示过用户,返回True,没有,将用户id做key,存入redis,返回False,加上过期时间即可

    class Isreminder(View):
        '''
        24小时内是否已经提示过用户关注公众号
        提示过返回True
        没提示过返回False
        @return 
        '''
    
        def get(self, request):
            messages = {}
            user = request.user
            # 存储在redsi的值
            u = 'is_reminder' + str(user.id)
            user_agent = request.META.get('HTTP_USER_AGENT', "")
            if 'micromessenger' in user_agent.lower():
                # 从redis取出当前用户is_reminder_userid
                reminder = redis.get(u)
                if reminder:
                    # 已经提示过用户
                    messages['code'] = 200
                    messages['message'] = True
                    return JsonResponse(messages)
                else:
                    # 没有提示过用户,将用户存入
                    redis.set(u, 'True', ex=86400)
                    messages['code'] = 200
                    messages['message'] = False
                    return JsonResponse(messages)
    
            else:
                return JsonResponse({'result': '并非微信请求'}, status=status.HTTP_200_OK)
    

    四,更新用户的关注状态入库

    在什么时候获取用户的关注状态呢?那就要根据你自己项目的需要自己决定了.
    我的项目是一个直播兼顾录播回看的项目,我把这个接口放在用户每次进入播放器页面时,获取并更新用户的关注状态,存储到用户表中,然后随着token(cookie)返回到前端.

    class Subscribe_status(View):
        '''
        请求微信服务器,查看用户是否关注公众号,更新用户关注字段
        '''
        def get(self,request):
            user = request.user
            user_agent = request.META.get('HTTP_USER_AGENT', "")
            if 'micromessenger' in user_agent.lower():
                # 请求微信服务器,查看用户是否关注公众号,更新用户关注字段,PreWechatOpenAPIClient只是我用来封装一些会在请求过程中用到的额外数据,比如通用的access_token
                client = PreWechatOpenAPIClient(WECHAT_APP_ID)
                access_token = client.get_access_token()
                # 尝试获取用户openid,如果没有,说明用户没有账号或者没有登录过公众号
                # 查询出用户三方表的openid
                oauth_user = Oauth.objects.get(user_id=user.id)
                # 发起请求,获取subscribe,WeChatOauth是我封装的一个用于请求微信服务器的类
                subscribe = WeChatOauth.get_user_subscribe_info(access_token, oauth_user.openid)
                #shixf 判断关注与否,更新用户关注字段
                user_info = user.owner
                if subscribe:
                    user_info.subscribe = 1
                else:
                    user_info.subscribe = 0
                user_info.save()
                return JsonResponse({'result': 'success'}, status=status.HTTP_200_OK)
            else:
                return JsonResponse({'result':'并非微信请求'}, status=status.HTTP_200_OK)
    
    class WeChatOauth(object):
        # 获取微信用户基本信息,包含是否关注公众号subscribe字段,如果为0,则不会返回用户信息
        @classmethod
        def get_user_subscribe_info(cls,access_token, openid):
            url = 'https://api.weixin.qq.com/cgi-bin/user/info'
            data = {
                "access_token": access_token,
                "openid": openid,
                "lang": 'en'
            }
            response = requests.get(url, params=data)
            response.encoding = 'utf-8'
            data = response.json()
            subscribe = data.get('subscribe', 0)
    
            logger.info('wechat data:' + str(data))
    
            return subscribe
    

    写在最后:

    最后其实没有采用我上面获取的微信关注页面,原因是苹果手机在关注过一次过后,取消关注再次关注时跳转的这个页面,关注按钮不见了.安卓是没有任何问题的.最后的解决方案是前端写了一个静态页面,放上公众号的二维码,提示用户长按关注
    强制引导用户关注公众号是微信所不允许的,目前只能这样,后续再看有没有啥好办法吧.

    展开全文
  • 需求 解决方案 步骤 这里我们选择永久二维码 代码见第二章需求 用户通过微信扫码关注公众号获取...扫码是否关注公众号已关注,则微信会将带场景值扫描事件推送给开发者,根据场景判断当前二维码是否失效失效,公众号

    需求

    • 用户通过微信扫码关注公众号获取红包

    解决方案


    步骤

    • 生成带参数的二维码
    • 扫码

      • 是否关注公众号

        • 已关注,则微信会将带场景值扫描事件推送给开发者,根据场景判断当前二维码是否失效

          • 失效,公众号推送消息:当前二维码已失效
          • 未失效,获取当前扫码用户openid查询是否已经领取过红包
            1. 已领取,则公众号推送消息到微信用户通知今日已领取
            2. 未领取
              • 则调用发送红包接口,发送红包,发送成功,则存储当前微信用户信息,包含唯一 openid。
              • 设置当前扫描二维码失效
        • 未关注,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者

          • 根据场景值查询二维码是否失效
            • 失效,公众号推送消息:当前二维码已失效
            • 未失效,获取当前扫码用户openid查询是否已经领取过红包
              1. 已领取,则公众号推送消息到微信用户通知今日已领取
              2. 未领取
                • 则调用发送红包接口,发送红包,发送成功,则存储当前微信用户信息,包含唯一 openid。
                • 设置当前扫描二维码失效

    • 生成带参数的二维码
      • 目前有2种类型的二维码:
        • 临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
        • 永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
      • 用户扫描带场景值二维码时,可能推送以下两种事件:
        1. 用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
        2. 用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
      • 获取带参数的二维码的过程包括两步
        1. 首先创建二维码ticket
        2. 然后凭借ticket到指定URL换取二维码

    这里我们选择永久二维码


    • 然后,将TOKEN添加到请求ticket地址,进行请求
      • 成功返回说明
        {
        “ticket”:”xxx”,
        “expire_seconds”:60,
        “url”:”http:\/\/weixin.qq.com\/q\/xxx”
        }
      • 参数说明
        1. ticket :二维码ticket,凭借此ticket可以在有效时间内换取二维码
        2. expire_seconds:二维码有效时间,以秒为单位。 最大不超过2592000(即30天)
        3. url:二维码图片解析后的地址


    • 用户扫描带参数的二维码
      • 用户未关注时,进行关注后的事件推送,xml数据包
    <xml>
        <ToUserName>接收人</ToUserName>
        <FromUserName>发送人</FromUserName>
        <CreateTime>创建时间,时间戳</CreateTime>
        <MsgType>消息类型【event】</MsgType>
        <Event>事件类型【subscribe】</Event>
        <EventKey>事件KEY值,qrscene_为前缀【scan事件无此前缀,】</EventKey>
        <Ticket>二维码的ticket</Ticket>
    </xml>

      • 用户已关注时的事件推送
    <xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>
    <FromUserName><![CDATA[FromUser]]></FromUserName>
    <CreateTime>123456789</CreateTime>
    <MsgType><![CDATA[event]]></MsgType>
    <Event><![CDATA[SCAN]]></Event>
    <EventKey><![CDATA[SCENE_VALUE]]></EventKey>
    <Ticket><![CDATA[TICKET]]></Ticket>
    </xml>

    *:EventKey也就是生成二维码时的场景ID,比如生成二维码时传的场景ID为 A,那么此处EventKey 则为 A


    • 知道了这个EventKEY值,
      • 查询当前二维码是否失效
    • 知道了ToUserName也就是接收人openid

      • 查询当前微信唯一openid是否存在
    • 如果当前二维码未失效,并且当前 openid 不存在数据库中,那么则可以调用发送红包接口进行红包发送。



    <xml>
        <sign><![CDATA[红包签名key]]></sign>
        <mch_billno><![CDATA[订单号]]></mch_billno>
        <mch_id><![CDATA[商户号]]></mch_id>
        <wxappid><![CDATA[公众号APPID]]></wxappid>
        <send_name><![CDATA[发送方名称]]><send_name>
        <re_openid><![CDATA[接收人openid]]></re_openid>
        <total_amount><![CDATA[红包金额]]></total_amount>
        <total_num><![CDATA[红包数量]]></total_num>
        <wishing><![CDATA[恭喜发财]]></wishing>
        <client_ip><![CDATA[调用接口的机器Ip地址]]></client_ip>
        <act_name><![CDATA[活动名称]]></act_name>
        <remark><![CDATA[备注]]></remark>
        <scene_id><![CDATA[场景值,非必须]]></scene_id>
        <consume_mch_id><![CDATA[资金授权商户号,非必须]]></consume_mch_id>
        <nonce_str><![CDATA[随机字符串]]></nonce_str>
        <risk_info>活动信息,非必须</risk_info>
    </xml>
    • 红包签名算法
    • 这里请求的时候要带上请求证书
      • 证书说明地址
      • 证书下载地址
        • 微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>证书下载
    • 使用证书

      • 使用商户证书
        ◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件
        ◆ 商户如果使用.NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常调用。
        ◆ 商户证书调用或安装都需要使用到密码,该密码的值为微信商户号(mch_id)
    • 成功返回说明,xml

    <xml>
        <return_code><![CDATA[SUCCESS]]></return_code>
        <return_msg><![CDATA[发放成功.]]></return_msg>
        <result_code><![CDATA[SUCCESS]]></result_code>
        <err_code><![CDATA[0]]></err_code>
        <err_code_des><![CDATA[发放成功.]]></err_code_des>
        <mch_billno><![CDATA[00100104xxx]]></mch_billno>
        <mch_id>10010404</mch_id>
        <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>
        <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>
        <total_amount>1</total_amount>
    </xml>

    代码见第二章


    展开全文
  • 上面已经说明如何判断用户是否已经关注公众号,那如何唤起关注页面,也就是如何跳转到关注页面引导用户关注呢,主要分为以下几个步骤: 1、登录微信公众平台 2、点击微信号头像右击查看源代码 3、找到源代码中以下...

    一、H5页面唤起关注公众号页面
    上面已经说明如何判断用户是否已经关注公众号,那如何唤起关注页面,也就是如何跳转到关注页面引导用户关注呢,主要分为以下几个步骤:

    1、登录微信公众平台

    2、点击微信号头像右击查看源代码

    3、找到源代码中以下代码:
    将uin_base64这个参数值带入以下链接:

    https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=uin_base64&scene=110#wechat_redirect
    即可唤起关注公众号页面

    展开全文
  • 实现关注微信公众号登录系统前言准备阶段NATAPP测试账号工具代码微信 API 调研阶段步骤1:注册账号(如果使用测试账号可跳过)步骤2:了解微信扫码机制步骤3:了解微信消息类型带参数二维码编码对接微信服务器阶段...
  • 业务场景是:判断当前登录用户是否已经关注指定的官方微信公众号,没有就指引用户关注。 微信公众号官方文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html 详细步骤 一.公众号...
  • 没有需求就没有开发 需求在小程序内直接可以关注公众号 且如果已经关注则隐藏关注按钮;找了许多没有特别完整的 索性就把自己的做法给整理一下 步骤大致如下 1. 小程序关联公众号: 1.1 路径:小程序后台——...
  • 第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口...功能实现后可以实现从手机浏览器打开微信并跳转到指定网页,该网页可以是你的个人二维码,可以是公众号二维码当然也可以直接跳转到公众号关注页面,...
  • 微信公众号扫码关注通过让对方扫自己的二维码进行关注自己,可以先将自己的微信二维码保存到手机中, 然后将此二维码发给对方,让对方扫码关注即可。 可以通过以下步骤将自己的微信二维码保存到手机相册中: 专业做...
  • 第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口...功能实现后可以实现从手机浏览器打开微信并跳转到指定网页,该网页可以是你的个人二维码,可以是公众号二维码当然也可以直接跳转到公众号关注页面,...
  • 官方提供一共提供两种方式,一种是普通二维码跳转规则。第二种是通过接口直接获取的小程序专用二维码。 第一种方式,通过小程序... 第二种方式需要调微信的API,步骤是先获取 appid,appsecret,然后根据这两个生成 a.
  • 小刀拉屁股,让你开开眼!!! ... 2. 在这个页面右键查看网页源代码 3. 然后全局搜索"uin_base64",图中有机密信息所以...__biz=您获取的字符串填在这里#wechat_redirect ,最后得到的链接就是微信公众号关注页面的链接地
  • 那么如果我们想减少用户从外部关注公众的操作步骤应该怎么办呢?我们只要实现外部wap网页一键跳转微信打开指定页面的功能即可。功能实现后可以实现从手机浏览器打开微信并跳转到指定网页,该网页可以是你的个人...
  • 外部H5页面内实现关注公众号的微信JSSDK没有相关接口开放,第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口权限,任何第三方想调用只能是通过一些技术手段来请求接口,获取秘钥(ticket)。那么如果我们...
  • 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.创建CoreServlet文件 package com.jlc.action; import java.io.IOException; import java.io.PrintWriter; import java.text....
  • Java开发教程视频关注我们,领取500G开发教程视频 第1章 Python环境安装1 下载Python安装包2 安装Python3 IDLE与第一段Python代码==>python2.7一键安装(附环境搭建方法说明)公众号后台回复【python环境】,即可...
  • 二、步骤 1.登录“微信公众平台”--> 左侧“设置”中的“公众号设置” --> 下载一个公众号的二维码。 2.百度“二维码解码器”--> 打开在线二维码解码器(或者直接输入网址:https://jiema.wwei.cn...
  • 第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口...功能实现后可以实现从手机浏览器打开微信并跳转到指定网页,该网页可以是你的个人二维码,可以是公众号二维码当然也可以直接跳转到公众号关注页面,...
  • 微信公众号开发如何引导用户关注?如何一键关注?5个步骤:1. 打开公众号,点击右上角人像图标;2. 点击查看“全部消息”;3. 点击右上角三个点的图标,然后“复制链接”;4. 获得链接;5. 将该链接放进你想要做跳转...
  • 微信公众号实现“一键关注”功能

    千次阅读 2019-02-26 10:25:41
    背景:之前用的一键关注要么通过图文,要么通过二维码,这样甚是麻烦,而且引导不到位,而看到朋友圈打广告的一些公众号可以直接关注,于是一直研究这个功能,今天终于实现了,分享给所有朋友,希望能帮助到所有朋友...
  • 开发时都有遇到需要关注公众号的需求 现在通过以下步骤可以不用识别图片就跳转到关注页面 ```java 1.登录微信公众平台,右键检查,然后搜索window.wx.uin,会看到类似window.wx.uin="12345678" || "0"的结果, 将...
  • 微信小程序也是可以引导用户关注公众号的,不过使用场景很较大限制,使用时具体参考文档 文档链接: 小程序文档.。 使用步骤; 1.在小程序后台进行配置 2.在需要展示关注组件的页面写入以下代码 <official-...
  • 微信公众号首次关注回复图文信息配置步骤 1、登录微信公众号 2、在右侧菜单栏,单击《自动回复》 [img]http://dl2.iteye.com/upload/attachment/0118/4146/a8f2809b-e24f-3924-8df5-e073ee8102a3.png[/img] ...
  • 阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以继续免费收到最新文章了。...软件介绍四川教育管理服务公众号学籍校正步骤,近期,四川教育服务平台开展了学籍校正工作,校正要在1月22...
  • 根据微信公众号开发官方文档: 获取用户信息步骤如下: 1 第一步:用户同意授权,获取code 2 第二步:通过code换取网页授权access_token 3 第三步:刷新access_token(如果需要) 4 第四步:拉取用户信息(需scope为...
  • 一 实先自动回复功能的逻辑步骤  1 处理POST类型的控制逻辑,接收XML的数据包;  2 解析XML数据包(获得数据包的消息类型或者是事件类型);  3 拼装我们定义好的消息;  4 包装成XML格式;  5 在5秒内返回回去...
  • 部署微信公众号项目

    千次阅读 2019-04-11 13:40:38
    关注公众号 然后项目的配置: 项目配置文件修改:改为自己微信测试号生成的信息 然后微信公众号菜单的配置 到此为止差不多就配置完毕了 微信公众号端的调试需要用,微信小程序的开发工具来调试,把网址写到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,123
精华内容 449
关键字:

关注公众号步骤