热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过聚合二维码扫码关注生活号公众号

需求通过一个聚合二维码,支付宝扫码进入到生活号的首页,微信扫码进入微信公众号关注界面思路判断用户使用的支付宝扫码还是微信扫码。这个比较容易

需求

通过一个聚合二维码,支付宝扫码进入到生活号的首页,微信扫码进入微信公众号关注界面


思路


  1. 判断用户使用的支付宝扫码还是微信扫码。这个比较容易,根据浏览器请求头里面的信息就可以识别
  2. 获取生活号和公众号首页关注链接,根据获取到的请求头,后台重定向到各自的关注界面。

实现:


  1. 提供一个接口,获取用户浏览器请求头信息,判断是支付宝扫码进入还是微信扫码进入

    包含 micromessenger 的是微信;包含 alipay 的是支付宝

    String userAgent = request.getHeader("user-agent").toLowerCase();
    logger.info(userAgent:{}, userAgent);支付宝请求头示例:mozilla/5.0 (linux; u; android 10; zh-cn; mix 2s build/qkq1.190828.002) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/69.0.3497.100 uws/3.21.0.164 mobile safari/537.36 ucbs/3.21.0.164_200703111142 nebulasdk/1.8.100112 nebula alipaydefined(nt:wifi,ws:424|0|2.55) aliapp(ap/10.1.99.7000) alipayclient/10.1.99.7000 language/zh-hans usestatusbar/true isconcavescreen/false region/cn nebulax/1.0.0 ariver/1.0.0微信请求头示例:mozilla/5.0 (linux; android 10; mix 2s build/qkq1.190828.002; wv) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/77.0.3865.120 mqqbrowser/6.2 tbs/045227 mobile safari/537.36 mmwebid/8688 micromessenger/7.0.17.1720(0x27001137) process/tools wechat/arm64 nettype/wifi language/zh_cn abi/arm64

  2. 提取生活号/公众号首页关注地址,用户扫码之后跳转到指定地址


  • 生活号关注方案

    • 生活号客户端跳转链接,在支付宝钱包中打开的H5页面里,可以通过支付宝提供的alipays链接跳转到指定的商户生活号,publicId 为生活号 APPID

      示例:alipays://platformapi/startapp?appId=20000042&publicBizType=LIFE_APP&publicId=2016112103057047

    • 带参推广二维码接口,根据生活号应用ID,密钥等信息请求支付宝后台接口,获取永久二维码。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。

  • 公众号关注方案

    • 方案一:进入公众号后台,下载公众号二维码,将二维码信息转换为链接,类似:http://weixin.qq.com/r/tT-w6MzEM5FMrYiL92qn,但是这个链接只能微信扫一扫进入,直接点击这个链接不能进入到关注界面,所以该方案弃用

    • 方案二:生成带参数的二维码,利用 access_token 请求公众号后台接口,得到永久二维码,类似:http://weixin.qq.com/q/02TqJhoMfjf5k100000071,这个方法也试过,只能扫码进入,不能后台直接跳转,所以该方案弃用

    • 方案三(可行方案):电脑端进入公众号首页,复制链接地址,提取出来类似下面链接,自测可以直接跳转。有一点点和扫码进入的不一样的地方就是,这个界面是发消息界面,公众号的菜单功能,要进入公众号之后才能用 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI4OTc4NzQ5MQ==&scene=124#wechat_redirect在这里插入图片描述


最后

最终选择的 生活号关注地址为: alipays://platformapi/startapp?appId=20000042&publicBizType=LIFE_APP&publicId=2013110600000000

公众号地址为:https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI4OTc4NzQ5MQ==&scene=124#wechat_redirect

后台接口根据请求头中的浏览器类型,后台进行选择跳转到不同地址即可。


推荐阅读
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
author-avatar
Matzoh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有