第1章 微信公众平台初探 1
1.1 微信公众平台分类 1
1.1.1 订阅号 2
1.1.2 服务号 2
1.1.3 企业号 3
1.2 公众平台的两种使用模式 5
1.2.1 编辑模式 5
1.2.2 开发者模式 6
第2章 公众号原理与开发环境部署 8
2.1 工作原理 8
2.1.1 HTTP请求与响应 8
2.1.2 XML与JSON的序列化和反序列化 18
2.1.3 官方调试工具使用 21
2.2 开发环境的部署 23
2.2.1 IIS安装与部署 23
2.2.2 花生壳域名映射与ngrok 25
2.2.3 Visual Studio本地调试 29
2.2.4 新手接入指南 32
第3章 微信对话服务 37
3.1 基础支持 37
3.1.1 全局返回码与接口频率限制 37
3.1.2 获取access token 43
3.1.3 获取微信服务器IP地址 48
3.2 素材管理接口 50
3.2.1 新增素材 50
3.2.2 根据media id获取临时素材 57
3.2.3 根据media id获取永久素材 59
3.2.4 删除永久素材 62
3.2.5 修改永久图文素材 63
3.2.6 获取永久素材总数 64
3.2.7 获取永久素材列表 66
3.3 接收消息 69
3.3.1 普通消息实体映射 70
3.3.2 事件消息实体映射 80
3.3.3 消息数据包解析 86
3.3.4 消息处理页面示例 93
3.4 被动响应消息与客服接口 99
3.4.1 被动响应消息 99
3.4.2 客服接口 108
3.5 高级群发接口 117
3.5.1 上传图文消息素材 117
3.5.2 根据分组进行群发 119
3.5.3 根据openid列表群发和预览消息 127
3.5.4 事件推送群发结果 130
3.5.5 查询群发消息发送状态 134
3.5.6 删除群发 135
3.6 业务通知模板消息 136
3.6.1 设置公众号所属行业 136
3.6.2 获取模板ID 140
3.6.3 发送模板消息 143
3.6.4 模板消息事件推送 146
3.7 推广支持 147
3.7.1 生成带参数的二维码 147
3.7.2 扫描带参数二维码事件处理 153
3.7.3 长短链接转换接口 154
3.8 自定义菜单 155
3.8.1 自定义菜单创建接口 156
3.8.2 自定义菜单查询接口 162
3.8.3 自定义菜单删除接口 163
3.8.4 自定义菜单事件推送 163
3.9 消息体签名及加解密 172
3.9.1 加解密模式介绍 173
3.9.2 接入指南 173
第4章 订阅用户管理 179
4.1 分组管理接口 179
4.1.1 创建分组 179
4.1.2 查询所有分组 181
4.1.3 查询用户所在的分组 183
4.1.4 修改分组名 184
4.1.5 移动用户分组 184
4.2 用户信息管理 186
4.2.1 获取用户基本信息 186
4.2.2 设置用户备注名 189
4.2.3 获取用户列表 189
4.3 OAuth网页授权获取用户基本信息 191
4.3.1 网页授权回调域名设置 191
4.3.2 同意授权,获取code 194
4.3.3 通过code换取网页授权access token 197
4.3.4 刷新access token 199
4.3.5 拉取用户信息 200
第5章 多客服接口 201
5.1 多客服简介与开通 201
5.2 将消息转发到多客服 202
5.3 客服管理 205
5.3.1 设置客服账号 205
5.3.2 上传客服头像 207
5.3.3 删除客服账号 208
5.3.4 获取在线客服接待信息 208
5.3.5 获取客服基本信息 210
5.3.6 获取客服聊天记录接口 212
5.4 多客服会话控制 216
5.4.1 会话状态通知事件 216
5.4.2 会话创建与关闭 219
5.4.3 获取客户的会话状态 221
5.4.4 获取客服的会话列表 222
5.4.5 获取未接入会话列表 224
5.5 PC客户端自定义插件接口 225
5.5.1 接口调试 226
5.5.2 向会话窗口输入框中输入一条消息 228
5.5.3 高亮自定义插件Tab页 232
5.5.4 事件接口 232
第6章 微信JS-SDK 235
6.1 JS-SDK使用步骤 235
6.2 分享接口 244
6.3 图像接口 247
6.4 音频接口 248
6.5 地理位置 252
6.6 界面操作 255
6.7 微信扫一扫接口 258
6.8 其他JS接口 259
第7章 支付接口开发 260
7.1 微信支付简介 260
7.2 接口调用规则 261
7.2.1 协议规则 261
7.2.2 参数规定 261
7.2.3 安全规范 262
7.3 统一下单接口 265
7.4 支付结果通用通知 274
7.5 查询订单接口 283
7.6 JSAPI(网页内)支付接口 285
7.6.1 场景交互细节 285
7.6.2 获取当前微信版本号 287
7.6.3 显示微信安全支付标题 287
7.6.4 JavaScript调用支付API 288
7.6.5 网页内支付示例 289
7.7 扫码支付 297
7.7.1 扫描支付——模式一 297
7.7.2 扫描支付——模式二 304
7.8 刷卡支付 304
7.9 撤销订单 308
7.10 关闭订单 310
7.11 退款API 312
7.12 商户营销与支付工具 323
7.12.1 代金券或立减优惠 323
7.12.2 现金红包 327
7.12.3 企业付款 332
第8章 微信小店开发 337
8.1 微信小店的开通与搭建 337
8.2 商品管理 339
8.2.1 获取指定分类的所有子分类 342
8.2.2 获取指定子分类的所有SKU 344
8.2.3 获取指定分类的所有属性 346
8.2.4 增加商品 348
8.2.5 修改商品 357
8.2.6 查询商品 358
8.2.7 删除商品 360
8.2.8 商品上下架 361
8.2.9 修改商品库存 362
8.3 邮费模板管理接口 363
8.3.1 增加邮费模板 363
8.3.2 删除邮费模板 367
8.3.3 修改邮费模板 368
8.3.4 获取邮费模板 369
8.4 商品分组管理 371
8.4.1 增加分组 371
8.4.2 删除分组 372
8.4.3 修改分组名 373
8.4.4 修改分组商品 373
8.4.5 获取分组信息 375
8.5 货架管理 378
8.5.1 增加货架 378
8.5.2 删除货架 388
8.5.3 修改货架 389
8.5.4 获取货架信息 389
8.5.5 自定义货架页面 393
8.6 订单管理 394
8.6.1 订单付款通知 394
8.6.2 根据订单ID获取订单详情 395
8.6.3 根据订单状态/创建时间获取订单列表 400
8.6.4 设置订单发货信息 401
8.6.5 关闭订单 404
第9章 卡券功能接口 406
9.1 功能简介 406
9.2 开发流程 406
9.3 创建卡券前的准备 407
9.3.1 上传LOGO接口 407
9.3.2 门店管理接口 408
9.3.3 获取颜色列表接口 416
9.4 CreateCard创建卡券接口 418
9.5 卡券投放 438
9.5.1 创建二维码 438
9.5.2 获取api_ticket 440
9.5.3 批量添加卡券接口 442
9.6 卡券核销 444
9.6.1 消耗code 444
9.6.2 调起卡券列表并获取用户选择列表 446
9.7 卡券管理 448
9.7.1 删除卡券 448
9.7.2 查询code 449
9.7.3 批量查询卡列表 451
9.7.4 查询卡券详情 452
9.7.5 事件推送 456
9.7.6 更改code 459
9.7.7 设置卡券失效接口 460
9.7.8 更改卡券信息接口 460
9.7.9 库存修改接口 465
9.8 特殊卡票操作 466
9.8.1 会员卡 466
9.8.2 电影票 470
9.8.3 飞机票在线值机 471
9.8.4 更新会议门票 472
9.9 设置测试白名单 474
第10章 应用案例 476
10.1 微信扫一扫登录PC网站 476
10.2 网页分享——我是人气王 481
10.3 共享用户收货地址 489
10.4 微信卡券应用——电影票 492