精华内容
下载资源
问答
  • 2021最新打通微信公众号通过链接跳转直接关注公众号
  • PHP微信公众号H5授权登录,判断用户是否关注公众号源码
  • 微信服务号 扫码关注后才能登陆 示例代码 亲测可以实现 必须是服务号 才可以
  • PHP原生代码实现微信扫码关注公众号并同时登录,适用于PC段进行扫描登陆。 大家可以下载使用。PHP原生代码实现微信扫码关注公众号并同时登录,适用于PC段进行扫描登陆。 大家可以下载使用。
  • PHP微信扫码关注公众号并授权登录,网站使用公众号授权登录,上传资料中已经数据库和代码全部生成,未删减
  • PHP微信扫码登录看起来简单,但做起来有点复杂,微信接口的坑有点多,稍不注意,就费很多时间。PHP判断是否首次关注公众号,获取微信用户头像、openid和省市等信息
  • 关注公众号 源码

    2017-08-12 16:19:31
    C#关注公众号源码 获取用户openid
  • 完整封装微信服务号扫码登陆代码,复制修改配置即可使用,带文档说明,流程介绍
  • PHP微信扫码登录看起来简单,但做起来有点复杂,微信接口的坑有点多,稍不注意,就费很多时间。PHP判断是否首次关注公众号,获取微信用户头像、openid和省市等信息
  • 微信用户不用关注公众号,可通过授权点击的方式,获取用户基本信息。也可在里面进行参数传递,如有疑问,
  • 主要为大家详细介绍了python微信公众号之关注公众号自动回复,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • h5关注公众号

    2020-09-21 11:46:06
    H5在微信中引导用户关注微信公众号: 1>事件跟外链指定跳转地址就可以 ***这里注意修改该链接中的 __biz=参数*** 1这个参数从哪里来呢,登录自己个人或者企业的公众号,检察元素,搜索关键字uin_...
    H5在微信中引导用户关注微信公众号:
                                1>事件跟外链指定跳转地址就可以
    							 ***这里注意修改该链接中的 __biz=参数***
    							 1这个参数从哪里来呢,登录自己个人或者企业的公众号,检察元素,搜索关键字uin_base64:复制内容替换
    							2>window.location.href="https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzUxMzkxMTA4NQ==&scene=110#wechat_redirect";

    展开全文
  • 最近公司的一个项目需要用户在进入落地页后能在浏览器内进入微信关注公众号,达到引流的目的。以下是我在网上搜集的几种实现方式: 1. jsjdk方式(微信浏览器内部) 该方式主要是使用微信官方的JS-SDK说明文档 和 ...

    业务背景

    最近公司的一个项目需要用户在进入落地页后能在浏览器内进入微信关注公众号,达到引流的目的。以下是在实践过程的采用几种实现方式:
    其中1,2种方式只能在微信浏览器内部去关注公众号,第3种方式可以在微信外浏览器唤起微信并实现关注公众号功能

    1. jsjdk方式(微信浏览器内部)

    该方式主要是使用微信官方的JS-SDK说明文档开放标签中的跳转小程序标签:wx-open-launch-weapp,该方式需要公众号关联该小程序

    依托微信游览器环境和jssdk去打开小程序,用于页面中提供一个可跳转指定小程序的按钮。使用此标签后,用户需在网页内点击标签按钮方可跳转小程序。H5通过开放标签打开小程序的场景值为1167。
    示例代码如下(本实例使用了vue框架,请根据业务场景自行更改)

    在这里插入代码片<template>
    	<div class="content">
    		<img class="logo" src="~static/care.png" alt="">
    		<p class="text">正在打开微信小程序</p>
    		<div class="open" @click="isWeixin ? open : ''">打开小程序</div>
    		<div class="weapp" v-if="isWeixin">
    			<wx-open-launch-weapp username="小程序原始id" path="/pages/index/follow.html">
    				<!-- path:需要打开的小程序的路径,注意加.html后缀 -->
    				<script type="text/wxtag-template">
    					<style>
                .btn {
                  height: 4000px; !impoartant; 
                  width: 5000px; !important;
                  background-color: #f04146;
                  color: #ffffff;
                }
              </style>
              <div class="btn">跳转小程序</div>      
            </script>
    			</wx-open-launch-weapp>
    		</div>
    	</div>
    </template>
    
    <script>
    	export default {
    		data() {
    			return {
    				isWeixin: false,
    				wxData: {}
    			}
    		},
    		methods: {
    			async wxmini() {
    				const res = await fetch('你的获取微信签名的接口地址', {
    						method: 'GET',
    						headers: {
    							'Content-Type': 'application/json; charset=utf-8'
    						},
    						// body: JSON.stringify({
    						//   url: window.location.href
    						// })
    					}).then(response => response.json())
    					.then(data => {
    						return data
    					});
    			
    				this.wxData = res.Response
    				let that = this	
    				wx.config({ 
    					debug: true,
    					appId: that.wxData.AppId, //小程序的appId
    					timestamp: that.wxData.Timestamp, //生成签名的时间戳
    					nonceStr: that.wxData.NonceStr, //生成签名的随机串
    					signature: that.wxData.Signature, //签名
    					jsApiList: ['onMenuShareTimeline'], // 必填,需要使用的JS接口列表
    					openTagList: ['wx-open-launch-weapp'] // 可选,需要使用的开放标签列表,例如['wx-open-launch-app']
    				});
    				/* eslint-disable */
    				wx.ready(function() {
    					console.log('ready')
    				});
    				wx.error((e) => {
    					console.log(e, '失败信息')
    				})
    			}
    		},
    		mounted() {
    
    			const ua = navigator.userAgent.toLowerCase()
    			const isWXWork = ua.match(/wxwork/i) == 'wxwork'
    			this.isWeixin = !isWXWork && ua.match(/micromessenger/i) == 'micromessenger'
    			if(this.isWeixin) {
    			setTimeout(function() {
    				const oScript = document.createElement('script');
    				oScript.type = 'text/javascript';
    				oScript.src = 'https://res2.wx.qq.com/open/js/jweixin-1.6.0.js';
    				oScript.onload = this.wxmini
    				document.body.appendChild(oScript);
    			}, 1000)
    
    			}
    		},
    	}
    </script>
    
    <style lang="scss" scoped root-value="37.5">
    	.content {
    		width: 375px;
    		height: 100vh;
    		margin: 0 auto;
    		overflow: hidden;
    		font-family: PingFangSC-Regular;
    		display: flex;
    		flex-direction: column;
    		justify-content: center;
    		align-items: center;
    		position: relative;
    	}
    
    	.logo {
    		width: 150px;
    		height: 150px;
    		margin-top: -50px;
    	}
    
    	.text {
    		width: 100%;
    		font-size: 20px;
    		text-align: center;
    	}
    
    	.open {
    		width: 200px;
    		height: 50px;
    		background-color: #f04146;
    		margin-top: 30px;
    		border-radius: 30px;
    		color: #fff;
    		font-size: 18px;
    		display: flex;
    		justify-content: center;
    		align-items: center;
    	}
    
    	.weapp {
    		position: fixed;
    		top: 0;
    		bottom: 0;
    		left: 0;
    		right: 0;
    		z-index: 100000;
    		font-size: 100px;
    		overflow: hidden;
    		opacity: 0;
    	}
    </style>
    

    2.通过公众号复制链接进入(微信浏览器内部)

    1.打开电脑版的微信客户端,打开需要前往的公众号

    在这里插入图片描述

    2.打开详情页
    在这里插入图片描述

    3.复制公众号链接
    在这里插入图片描述

    4.在页面里添加事件重定向到该地址

    location.href =’复制的链接’
    

    3. 生成小程序URL Scheme(微信浏览器外部)

    通过服务端接口或在小程序管理后台「工具」-「生成 URL Scheme 」入口可以获取打开小程序任意页面的 URL Scheme。适用于从短信、邮件、微信外网页等场景打开小程序。 通过 URL Scheme 打开小程序的场景值为 1065。
    注意该方法只能适用于国内非个人主体小程序

    1. 在公众号后台创建一篇包含公众号二维码的文章(不用发布),取得该文章链接
    2. 在已有的小程序页面使用webview引入该文章
    3. 打开小程序后台生成生成 URL Scheme
      在这里插入图片描述

    在这里插入图片描述

    4.生成链接后在浏览器内重定向到该地址

    location.href =’复制的链接’
    

    然后就可以实现如下的效果了

    在这里插入图片描述
    在这里插入图片描述

    后记

    这几种方式只是提供几种思路,如果有更好的方式或者不懂的地方,欢迎在评论区留言,愿与诸君共勉!

    展开全文
  • 判断是否关注微信公众号,代码是用html+VB,只需要修改一下自己的APPID和AppSecret,非常简单。
  • 用户扫码关注后,微信服务器会通知 微信接口配置的url 服务器拿到openId和ticket 将 ticket作为key,openId作为value 存储至redis 当前端拿ticket 请求服务器,服务端拿ticket去redis中查询。如果存在即扫码或关注成...

    流程如下

    1. 服务端获取accessToken
    2. 服务端请求微信接口生成带参数的二维码,微信会返回{二维码ticket,二维码有效时间,二维码图片地址}等信息。服务端将ticket响应给前端,前端拿ticket开始轮询请求服务器
    3. 用户扫码关注后,微信服务器会通知微信接口配置的url接口并携带{FromUserName:发送方的openid,Event:事件类型 subscribe(订阅)、unsubscribe(取消订阅),二维码的ticket}等信息
    4. 服务器拿到openId和ticket 将 ticket作为key,openId作为value 存储至redis。表明此用户已扫码关注。
    5. 当前端拿ticket 轮询请求服务器时,服务端拿ticket去redis中查询。如果存在即扫码或关注成功,查看openid是否已注册,如已注册登录成功,如未注册则去注册。业务处理完成后服务端删除redis中的数据。

    微信配置:
    基本配置–》服务器配置。服务器地址(URL)即事件触发时被通知的接口

    1. 服务端获取accessToken

    1. accessToken 不建议使用时去获取
    2. accessToken 失效性是两个小时,所以我们在redis存储1小时时间
        @Override
        public String getPubAccessToken() {
            String pubAccessToken;
            Object obj = redisTemplate.opsForValue().get("pubAccessToken");
            if (obj != null) {
                pubAccessToken = (String)obj;
                return pubAccessToken;
            } else {
                log.info("开始获取pubAccessToken");
                try {
                    String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxPubPayProperties.getAppId() + "&secret=" + wxPubPayProperties.getAppSecret();
                    ResponseEntity<Map> entity =  restTemplate.exchange(url,HttpMethod.GET, null,Map.class);
                    Map<String,Object> map = entity.getBody();
                    pubAccessToken = map.get("access_token") != null ? String.valueOf(map.get("access_token")) : null;
                    if (StringUtils.isNotEmpty(pubAccessToken)) {
                        redisTemplate.opsForValue().set("pubAccessToken", pubAccessToken, 3600, TimeUnit.SECONDS);
                        return pubAccessToken;
                    } else {
                        return null;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    return null;
                }
            }
        }
    

    2. 服务端生成带参数的二维码

        @Override
        public AppResult createQrCode(String sceneStr) {
            String pubAccessToken = getPubAccessToken();
            String url ="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + pubAccessToken;
    
            HttpHeaders requestHeaders = new HttpHeaders();
            requestHeaders.add("Content-type", "application/json; charset=utf-8");
            HttpEntity<String> requestEntity = new HttpEntity<>("{\"expire_seconds\": 3600, \"action_name\": \"QR_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": " + sceneStr +" }}}", requestHeaders);
            Map<String,Object> map  =  restTemplate.postForObject(url,requestEntity,Map.class);
            // map为响应参数 其中有ticket expire_seconds url 
            return AppResult.successReturnDate(map);
        }
    

    3. 被微信服务器通知的服务端接口

    1. 将token、timestamp、nonce三个参数进行字典序排序
    2. 将三个参数字符串拼接成一个字符串进行sha1加密
    3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
    4. 接收事件推送 查看xmlData里的参数
        @PostMapping("weChatNotice")
        public String weChatNotice(@RequestBody String xmlData,String signature,Long timestamp,String nonce, String echostr) {
            wxService.weChatNotice(xmlData);
            return echostr;
        }
    

    4. 绑定ticket和openid至redis

        @Override
        public void weChatNotice(String xmlData) {
            // xml转map
            Map<String, String> resultMap = WxPayKit.xmlToMap(xmlData);
            String ticket = resultMap.get("Ticket");
            if (StringUtils.isNotEmpty(ticket)) {
                String openId = resultMap.get("FromUserName");
                // 将ticket 和 openId 存储进redis
                redisTemplate.opsForValue().set(ticket, openId, 3600, TimeUnit.SECONDS);
            }
        }
    

    5. 被前端轮询的接口

        @Override
        public AppResult wxLogin(String ticket) {
            // 判断 用户是否已扫码关注
            Map<String,Object> map = new HashMap<>();
            Object obj = redisTemplate.opsForValue().get(ticket);
            if (obj == null) {
                return AppResult.errorReturn(10024, "用户还未扫码关注");
            } else {
                String openId = (String) obj; 
                // 用户已扫码登录,删除redis
                redisTemplate.delete(ticket);
                // 查询openId是否已绑定手机号注册
                map.put("openId",openId);
                Member member = memberMapper.getMemberOpenId(openId);
                if (member == null) {
                    map.put("state",1);
                    return  AppResult.successReturnDate(map, "用户已扫码,但未注册");
                } else {
                    map.put("state",0);
                    return  AppResult.successReturnDate(map, "用户已扫码,已注册");
                }
            }
        }
    

    6. 根据openId获取微信用户信息

        public Map<String,Object> getWxUserInfo(String openId) {
            String pubAccessToken = getPubAccessToken();
            String url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + pubAccessToken + "&openid=" + openId + "&lang=zh_CN";
            ResponseEntity<Map> entity =  restTemplate.exchange(url,HttpMethod.GET, null,Map.class);
            Map<String,Object> map = entity.getBody();
            return map;
        }
    
    
    展开全文
  • 之前做了一个微信H5页面抽奖的小功能,产品需求是用户在进入页面后判断用户是否已经关注此公众号,若没有关注,则唤起关注公众号页面。

    之前做了一个微信H5页面抽奖的小功能,产品需求是用户在进入页面后判断用户是否已经关注此公众号,若没有关注,则唤起关注公众号页面。

    一、前期微信公众平台配置:

    1、获取appid,appsecret,添加白名单

    (1)登录微信公众平台——>开发——>基本配置。开发中需要用到两个参数,appId和appSecret(appSecret只展示一次,需保存下来,否则需要重置获取)。

    (2)获取access_token时需要添加IP白名单。

    2. 添加网页授权

    进入公众号设置——>功能设置——>网页授权域名

    二、服务端判断用户是否关注公众号

    1、获取全局access_token(access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效)

    微信开放文档说明:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

    2、网页授权获取用户openid

    微信开放文档说明:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

    (1)用户同意授权,获取code

    引导用户打开以下链接:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

    (2)通过code换取用户openid

    获取code后,请求以下链接获取openId: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    3、获取用户基本信息

    微信开放文档说明:https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId

    使用获取到的全局access_token和用户openid去请求获取用户基本信息接口:

    在返回参数中:

    subscribe用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。

    三、H5页面唤起关注公众号页面

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

    1、登录微信公众平台

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

    3、找到源代码中以下代码:

    将uin_base64这个参数值带入以下链接:

    https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=uin_base64&scene=110#wechat_redirect

    即可唤起关注公众号页面

    展开全文
  • 网页跳转到关注公众号实现

    千次阅读 2020-03-23 12:49:59
    登录你的微信公众号,在首页右键 - 查看网页源代码 找到类似代码:(纯数字处是你微信号唯一id) base64在线编码点击左侧在线编码把原始数字ID进行在线编码。 例如 2394001060 编码后是 MjM5NDAwMTA2MA== ...
  • 同时,也希望在小程序中,完成公众号关注,将小程序用户引流到公众号中。 2.解决方案 (1)通过公众号关注页链接,完成公众号关注。 (2)链接地址如下:https://mp.weixin.qq.com/mp/profile_ext?action=home&...
  • 在自己网站上点击微信登录,网站自己弹出一个二维码、扫描二维码后弹出公众号的关注界面、只要一关注公众号网站自动登录、第二次扫描登录的时候网站直接登录。 大家可以体验一下 「随便找的一个网站」 前期准备 ...
  • 无需用户点击,进入小程序页面,静默关注微信公众号。不是凭空想象,在市面上看见过成品,可私信具体谈报酬!</p>
  • PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注微信公众号PHP扫码关注...
  • 微信公众号开发,本质是一个网页的形式,用户进入这个网页系统,并不一定要关注公众号,只要提供链接,就可以直接进入。例如电动车充电桩系统,用户直接用微信的扫一扫,扫描插座二维码,就可以进入充电系统,并没有...
  • 当用户进入公众号h5页面,弹窗提示,是否要关注公众号 流程 1.用户在微信公众号端进入h5页面时,前端从后端数据库获取到用户关注状态. 2.如果用户未关注,弹窗提示,是否关注公众号,不关注则取消弹窗,关注的话跳转到...
  • php微信关注公众号或扫码实现获取用户信息(内含简易框架搭建,可复用)php微信关注公众号或扫码实现获取用户信息(内含简易框架搭建,可复用)概述》详细流程准备工作准备公众号及配置相关接口文档获取access_token...
  • 微信小程序关注公众号

    千次阅读 2019-04-12 12:49:30
    基础库 2.3.0 开始新出了一个组件,可以实现从小程序端直接关注公众号的组件,名为:official-account。 该组件的作用是: 公众号关注组件。当用户扫小程序码打开小程序时,开发者可在小程序内配置公众号关注组件...
  • 视频号刚刚推出,流量变现的方法还不够完善,早...下面我来介绍一下直接生成公众号关注页面的方法,让用户点一下直接关注公众号! 第一步:浏览器地址栏输入 uom.cn/v 进入官网:选择操作方法二 第二步...
  • 小程序和微信公众号的区别有哪些呢?作为微信公众平台的两个大产品,一出来就受到大众的热捧,一起来看是什么情况吧!1. 一个用于传播信息,一个用于程序应用微信公众号更偏向与文章的软文推广和信息输出,分享一些...
  • 如何判断用户是否已关注公众号

    万次阅读 2018-09-11 19:10:49
    openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID scope 用户授权的作用域,使用逗号(,)分隔 错误返回结果: {"errcode":40029, "errmsg":...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 447,002
精华内容 178,800
关键字:

如何关注公众号