目录

  • 笔记-微信订阅号开发流程
    • 创建菜单
    • 网页授权:
    • js-sdk

笔记-微信订阅号开发流程

创建菜单

先进入:https://mp.weixin.qq.com/
创建一个小程序订阅号:
订阅号和服务号的区别:

  • 订阅号相当于一个群里面的一个用户,他发的消息需要打开订阅号助手里面才能查看,个人就能申请。

  • 服务号相当于一个好友,可以“单独”发消息给你,但是需要企业认证才能申请 。

所以我们这里做的是订阅号开发
订阅号有可视化操作界面,怎么设置看微信文档就行了,我们这里讲一些程序员怎么用代码来写订阅号:
首先进入微信公众号文档的 开发 选项的 开发者工具 里面的 公众平台测试号,登录

首先 给测试号加一个菜单,先使用我们的appid 和 appsecret(密码) 获取 access_token;

获取到access_token后,就可以用access_token来创建我们的菜单了:
其中body填你的菜单,具体怎么创建可以查看微信公众号文档:

//这是我随便建的的菜单
{"button": [{"type": "view","name": "小米商城系统","url": "http://47.117.121.44:3000/dist/index.html#/"},{"type": "click","name": "按钮","key": "图书管理系统"},{"name": "大菜单","sub_button": [{"type": "view","name": "小米商城后台","url": "http://47.117.121.44:3000/object_admin/index.html"},{"type": "click","name": "图书管理系统","key": "图书管理系统"}]}]
}

网页授权:

访问地址:(转二维码扫码。或者放到菜单中点击)

  https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx0c72fc5efe593f65&redirect_uri=http%3A%2F%2F1.sswmouse.applinzi.com%2Fb.php&response_type=code&scope=snsapi_userinfo&state=123&connect_redirect=1#wechat_redirect

配置b.php文件:
前往文件查看
配置域名:

  **https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index** 下可以修改的地方配置域名

获取微信普通access_token:

**https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx0c72fc5efe593f65&secret=302fc9886039a87c37c25795476716d2**

创建微信菜单

https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95&form=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3%20/menu/creat

关于网页授权的两种scope(域)的区别:

  • snsapi_base 用来获取进入页面的用户的openid 是静默授权

  • snsapi_userinfo 是用来获取用户的基本信息的 授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

网页授权access_token和普通access_token的区别:(二者有效期均为二个小时)

  • 在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;

  • 其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

三种id的区别:

  • openid 用户关注公众号产生的 用户在不同公众号中的openid不一样
  • UnionID 如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
  • appid 开发者发布的公众号id 每个公众号id不一样

用户授权步骤:

1.用户同意授权,获取code(code有效期为五分钟,同时只能有一个有效,一个code只能使用一次)

 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx0c72fc5efe593f65&redirect_uri=http%3A%2F%2F1.sswmouse.applinzi.com%2Fb.php&response_type=code&scope=snsapi_userinfo&state=123&connect_redirect=1#wechat_redirectappid //公众号idredirect_uri // 重定向 写你同意授权后跳转的界面 即 新浪云的b.php (地址需要url转码)response_type // 返回值类型 写 code scope // 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 ) state // 附带的参数 可以随便写 开发者可以填写a-zA-Z0-9的参数值,最多128字节

2.通过code换取网页授权access_token

$code = $_GET["code"]; //获取code
$appid = 'wx0c72fc5efe593f65'; //填自己的appid
$secret = '302fc9886039a87c37c25795476716d2'; //填自己的appid密码
//写一个 php版本的网络请求,这里叫curl请求
$url_str = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch); // 获取输出 包含网络版access_token
curl_close($ch);
$res1 = json_decode($output , true); //将获取的信息进行json解析

3.拉取用户信息(需scope为 snsapi_userinfo)

$access_token = $res1["access_token"]; //从上一步网络请求中获取 网络授权的access_token
$openid = $res1["openid"]; // 获取openid
// 通过 网络版 access_token ---> 用户的信息
$url_str = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output2 = curl_exec($ch); // 获取输出 即用户信息
curl_close($ch);
$res2 = json_decode($output2 , true); //将获取的信息进行json解析
  1. 展示结果
    将步骤2,3的配置放到b.php中 用 <?php 内容 ?>
    下面展示:
    //放到 b.php 中
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><h1>姓名: <?php echo($res2["nickname"]); ?></h1>头像: <img style="width: 100px;" src="<?php echo($res2["headimgurl"]); ?>" alt=""></body>
</html>

5.配置域名:
在微信测试账号管理界面下
有一个为修改的按钮 点击修改域名
6.测试:
将步骤1配置的网络链接放到公众号的按钮上
或者将其转变成二维码 扫码测试

js-sdk

第一步 获取access_token 需要用到appid 和 appid的密码 (获取方法见文档或者上一次笔记)

第二步 获取票据
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
//ACCESS_TOKEN 替换成自己的access_token

第三步 配置域名
去测试和界面 JS接口安全域名 配置
第四步 编写js-sdk

 <?php
//获取当前页面的url
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
//生成随机数,长度16位
$nonce_str = "lkioj8uy675tgfr4";
//获取票据
$jsapi_ticket = "LIKLckvwlJT9cWIhEQTwfB0awuSrbj0cp6gq3Ey43FWkzgNtpLoZ_Mbf_NuS5u9Q8bbm5pgKDSOVgg5ms22smg";
//获取时间戳
$time = time();
//拼接singnature--签名
$row_string = "jsapi_ticket=$jsapi_ticket&noncestr=$nonce_str&timestamp=$time&url=$url";
//singnature加密--签名
$singnature = sha1($row_string);
?>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>wx.config({debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: 'wx0c72fc5efe593f65', // 必填,公众号的唯一标识timestamp: '<?php echo $time; ?>', // 必填,生成签名的时间戳nonceStr: '<?php echo $nonce_str; ?>', // 必填,生成签名的随机串signature: '<?php echo $singnature; ?>',// 必填,签名jsApiList: [] // 必填,需要使用的JS接口列表});
</script>
</html>

仅代表个人笔记

笔记-微信订阅号开发相关推荐

  1. 微信订阅号服务器配置url如何配置,微信订阅号开发模式基本配置

    今天学习君尝试了微信订阅号的简单开发  在验证开发者基本配置的时候 遇到了问题 ,不了解微信的规则 ! 查阅开发者文档 也没找到完整,详细 直观的介绍,百度以后终于成功了  在这里总结下 php 开发 ...

  2. 微信订阅号开发模式基本配置

    今天学习君尝试了微信订阅号的简单开发  在验证开发者基本配置的时候 遇到了问题 ,不了解微信的规则 ! 查阅开发者文档 也没找到完整,详细 直观的介绍,百度之后终于成功了  在这里总结下 开发微信订阅 ...

  3. 微信订阅号开发笔记(三)

    1.接收语音识别结果 if($msgType=="voice"){//收到语音消息//MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据.//Format 语音格 ...

  4. 订阅号 笔记记录开发 php,微信订阅号开发笔记(五)

    1.用户管理//查询所有分组 public function queryGroups(){ $url = "https://api.weixin.qq.com/cgi-bin/groups/ ...

  5. 微信订阅号开发(基于weixin-api自动回复消息)

    普通微信用户向公众号发送消息时,微信服务器将受到POST消息并发送到开发者服务器上,开发者编写代码接受微信服务器转发的消息,然后再做出响应即可. weixin-api是nodejs插件,我们知道微信的 ...

  6. 微信订阅号开发学习Wod

    地址:http://download.csdn.net/detail/goodchangyong/9665278

  7. 微信程序开发系列教程(二)微信订阅号+人工智能问答服务

    我的前一篇文章**微信程序开发系列教程(一)**开发环境搭建 已经介绍了微信服务器的开发环境搭建.本文作为开发系列的第二篇文章,介绍如何给您的微信订阅号开发一个最简单的问答服务,非常好玩. 这个系列的 ...

  8. 微信公众号订阅号开发的学习(二):获取用户发送的消息、简单的自动回复、自定义菜单

    获取用户发送的消息 基础 微信服务器会发送两种类型的消息给开发者服务器. get请求 验证服务器的有效性 post请求 微信服务器会将用户发送的数据转发到开发者服务器上 实现 基于微信公众号订阅号开发 ...

  9. python开发微信订阅号如何申请_基于Python的微信公众平台二次开发(Python常用框架、订阅号开发、公众号开发)...

    1.1.课程的背景 微信公众平台的火热程度已经不用多言,无论是个人还是企业,政府还是商家,都已经开始搭建微信公众平台,微信的作用已经被各界人士认可.微信公众平台的技术需求市场缺口巨大.同时python ...

最新文章

  1. matlab绘制立体条形图
  2. yum 简介及其常用命令
  3. 数据结构与算法 / B- Tree 和 B+ Tree
  4. 【算法小积累】 - 提取非0数最右侧的1
  5. 聊一聊Jmeter的参数化
  6. Windows线程同步--关键段和旋转锁
  7. 【Python】变量那些事
  8. php 容器对象,Laravel 6.2 中添加了可调用容器对象的方法
  9. iMX6ULL上手体验
  10. javascript用DOM解释XML
  11. 计算机网络练习题-2
  12. matplotlib绘图技巧详解(三)
  13. ue4 迁移模型_UE4模型导入基础操作(MAX为例)
  14. 【论文笔记】用数字孪生改变农业食品生产系统和供应链
  15. js中如何把字符串转化为对象
  16. 破解XP管理员帐户密码
  17. 话费接口API优惠充值源码分享
  18. 典型webservice(c#)例程序-提取数据库数据
  19. Linux - top命令详解(监视进程和Linux整体性能)
  20. MM买裤子杀价的全过程

热门文章

  1. linux tar zcxf,tar/gzip/zip文件打包、压缩命令
  2. 在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别
  3. ifconfig 命令使用
  4. 前端面试题之浏览器原理篇
  5. 龙卷风路径_中国科普博览_大气科学馆
  6. JS按位非(~)运算符与~~运算符的理解
  7. C++编写任意次clampedB样条曲线(曲线分别与第一个控制点和最后一个控制点的第一边和最后一边相切)
  8. 第八次作业——MPEG音频编码
  9. 用友公司来访,一些关于用友最新旗舰产品U9的一些介绍(图文)
  10. RL(Chapter 4): Gambler’s Problem