微信公众平台开发者中心自定义接口

合集下载

微信公众平台各大接口详细功能演示与实现..

微信公众平台各大接口详细功能演示与实现..

json请求格式:
查询用户组所在分组
通过用户的OpenID查询其所在的GroupID。
openid为用户ID,用户关注或者发送消息时 <FromUserName></FromUserName>中的数据
修改分组名
通过分组查询中得到的groupId可以修改分组名 返回值,成功或失败
移动用户分组
通过用户的 openid和分组id修改 返回值,成功或失败
一、用户管理
4.获取用户地理位置
开通了上报地理位置接口的公众号,用户在关注后进入公众号会话 时,会弹框让用户确认是否允许公众号使Байду номын сангаас其地理位置。弹框只在关 注后出现一次,用户以后可以在公众号详情页面进行操作。
用户同意上报地理位置后,每次进入公众号会话时,都会在进入时 上报地理位置,上报地理位置以推送XML数据包到开发者填写的URL 来实现。
1 2 3 4 5
用户管理
多客服功能
自定义菜单 生成带参数的二维码 微信JS接口
一、用户管理
1.分组管理接口
2.获取用户信息 3.获取关注者列表
4.用户地理位置获取 5.网页授权获取用户基本信息
6.网页获取用户网络状态(JS接口)
一、用户管理
1.分组管理
对应公众平台模块:
创建管理:
一个公众账号,最多支持创建 500个分组。 程序实现方法: 1.获取acess_token:使用PHP方法 file_get_contents()将https:///cgibin/token?grant_type=client_credential&appid=APPID&secret=A PPSECRET获取acess_token接口作为参数则可。 2.如下例:

微信公众平台开发者文档

微信公众平台开发者文档

微信公众平台开发者文档注:本人引用微信公众平台开发者文档只为方便,一切版权归微信公众平台所有。

目录一、新手指南 (15)1、接入指南 (15)目录 (15)概述 (15)第一步:填写服务器配置 (15)第二步:验证服务器地址的有效性 (18)第三步:依据接口文档实现业务逻辑 (19)2、典型案例介绍 (20)招商银行信用卡中心 (21)中国南方航空 (22)广东联通 (23)3、开发者规范 (23)4、模板消息运营规范 (25)5、公众号类型的接口权限说明 (28)6、微信开发者互助问答系统 (31)二、测试号申请|在线调试 (31)1、接口调试工具 (31)2、接口测试号申请 (31)三、报警排查|返回码 (32)1、接口频率限制说明 (32)2、全局接口返回码说明 (34)3、报警排查指引 (43)目录 (43)概要说明 (43)报警内容说明 (45)各类报警的排查方法 (47)常见问题 (49)附录 (51)附录1:微信推送的消息事件列表和响应格式 (51)附录2:查看服务器性能负载的常用工具 (51)附录3:nginx配置和排查指引 (53)4、微信推送消息与事件说明 (54)四、消息加解密|消息签名 (55)1、方案概述 (55)2、接入指引 (57)目录 (58)函数说明 (58)使用方法 (59)注意事项 (62)示例代码下载 (63)微信公众平台接口调试工具 (63)3、技术方案 (64)阅读须知 (64)公众账号接收用户消息 (65)公众账号向用户回复消息 (69)4、开发者FAQ (70)消息加解密功能开发者FAQ (70)五、基础接口 (73)1、获取access_token (73)2、获取微信服务器IP地址 (75)六、接收消息 (77)1、验证消息真实性 (77)2、接收普通消息 (78)目录 (79)文本消息 (79)图片消息 (80)语音消息 (81)视频消息 (81)小视频消息 (82)地理位置消息 (83)3、接收事件推送 (86)目录 (86)关注/取消关注事件 (86)扫描带参数二维码事件 (87)上报地理位置事件 (89)自定义菜单事件 (90)点击菜单拉取消息时的事件推送 (91)点击菜单跳转链接时的事件推送 (91)4、接收语音识别结果 (92)七、发送消息 (94)1、发送被动回复消息 (94)目录 (95)回复文本消息 (95)回复图片消息 (96)回复语音消息 (96)回复视频消息 (97)回复音乐消息 (98)回复图文消息 (99)2、客服接口 (100)目录 (101)客服帐号管理 (101)3、高级群发接口 (110)目录 (111)上传图文消息素材【订阅号与服务号认证后均可用】 (111)根据分组进行群发【订阅号与服务号认证后均可用】 (114)根据OpenID列表群发【订阅号不可用,服务号认证后可用】 (118)删除群发【订阅号与服务号认证后均可用】 (123)预览接口【订阅号与服务号认证后均可用】 (124)查询群发消息发送状态【订阅号与服务号认证后均可用】 (127)事件推送群发结果 (128)4、模板消息接口 (130)目录 (131)设置所属行业 (131)获得模板ID (134)发送模板消息 (135)事件推送 (139)5、获取自动回复规则 (141)八、素材管理 (147)1、新增临时素材 (147)2、获取临时素材 (150)3、新增永久素材 (151)新增永久图文素材 (152)4、获取永久素材 (155)5、删除永久素材 (158)6、修改永久图文素材 (159)7、获取素材总数 (161)8、获取素材列表 (163)九、用户管理 (166)1、用户分组管理 (166)目录 (166)创建分组 (166)查询所有分组 (168)查询用户所在分组 (170)修改分组名 (171)移动用户分组 (172)批量移动用户分组 (173)删除分组 (174)2、设置用户备注名 (175)设置备注名 (175)3、获取用户基本信息(UnionID机制) (176)获取用户基本信息(包括UnionID机制) (177)4、获取用户列表 (180)5、获取用户地理位置 (182)6、网页授权获取用户基本信息 (184)目录 (186)第一步:用户同意授权,获取code (186)第二步:通过code换取网页授权access_token (189)第三步:刷新access_token(如果需要) (191)第四步:拉取用户信息(需scope为snsapi_userinfo) (192)附:检验授权凭证(access_token)是否有效 (194)十、自定义菜单管理 (195)1、自定义菜单创建接口 (195)2、自定义菜单查询接口 (201)3、自定义菜单删除接口 (202)4、自定义菜单事件推送 (203)目录 (203)点击菜单拉取消息时的事件推送 (203)点击菜单跳转链接时的事件推送 (204)scancode_push:扫码推事件的事件推送 (205)scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框的事件推送 (206)pic_sysphoto:弹出系统拍照发图的事件推送 (207)pic_photo_or_album:弹出拍照或者相册发图的事件推送 (208)pic_weixin:弹出微信相册发图器的事件推送 (210)location_select:弹出地理位置选择器的事件推送 (211)5、获取自定义菜单配置接口 (212)十一、帐号管理 (217)1、生成带参数的二维码 (217)创建二维码ticket (218)通过ticket换取二维码 (220)2、长链接转短链接接口 (221)接口调用请求说明 (221)十二、数据统计接口 (223)1、用户分析数据接口 (223)2、图文分析数据接口 (227)3、消息分析数据接口 (236)4、接口分析数据接口 (243)十三、微信JS-SDK (247)1、微信JS-SDK说明文档 (247)目录 (248)概述 (249)基础接口 (252)分享接口 (253)图像接口 (254)音频接口 (256)智能接口 (258)设备信息 (258)地理位置 (259)界面操作 (259)微信扫一扫 (260)微信小店 (261)微信卡券 (261)微信支付 (264)附录1-JS-SDK使用权限签名算法 (265)附录2-所有JS接口列表 (267)附录3-所有菜单项列表 (269)附录4-卡券扩展字段及签名生成算法 (270)附录5-常见错误及解决方法 (273)附录6-DEMO页面和示例代码 (277)附录7-问题反馈 (278)十四、微信小店接口 (279)1、微信小店接口 (279)十五、微信卡劵接口 (281)1、微信卡劵接口说明 (281)目录 (281)卡券接口概述 (281)卡券资料包下载 (282)2、创建卡劵 (283)目录 (283)创建卡券 (283)3、会员卡、特殊票劵 (301)目录 (301)会员卡 (301)特殊票类 (318)景区门票 (321)电影票 (321)会议门票 (325)飞机票 (325)汽车票 (329)4、投放卡劵 (332)目录 (332)创建二维码接口 (332)添加卡券JS-SDK (336)群发卡券 (336)投放渠道数据统计 (339)5、核销卡劵 (340)目录 (340)核销Code接口 (340)线上核销接口 (342)拉取卡券列表接口 (342)Code解码接口 (343)目录 (345)查询code (345)查看卡券详情 (347)批量查询卡列表 (354)更改卡券信息接口 (355)修改库存接口 (361)更改Code接口 (363)删除卡券接口 (365)设置卡券失效接口 (367)7、卡卷事件推送 (369)目录 (369)卡券事件推送 (369)8、卡劵错误码 (376)十六、微信智能接口 (378)1、语义理解接口 (378)十七、设备功能介绍 (382)1、设备功能介绍 (382)目录 (382)服务号设备功能介绍 (382)十八、多客服功能 (385)1、将消息转发到多客服 (385)目录 (388)3、多客服会话控制 (396)目录 (396)4、获取客服聊天记录 (404)获取客服聊天记录接口 (404)5、PC客户端自定义插件接口 (407)目录 (407)PC客户端自定义页面插件接口 (407)十九、摇一摇周边 (416)1、设备管理 (416)目录 (416)申请设备ID (416)编辑设备信息 (419)配置设备与门店的关联关系 (420)查询设备列表 (421)2、页面管理 (425)目录 (425)新增页面 (425)编辑页面信息 (426)查询页面列表 (428)删除页面 (430)上传图片素材 (431)4、配置设备与页面的关联关系 (433)配置设备与页面的关联关系 (433)5、获取设备及用户信息 (434)获取摇周边的设备及用户信息 (434)6、数据统计 (436)以设备为维度的数据统计接口 (436)以页面为维度的数据统计接口 (439)7、摇一摇关注JSAPI (441)摇一摇关注JS API (441)一、新手指南1、接入指南接入微信公众平台开发,开发者需要按照如下步骤完成:下面详细介绍这3个步骤。

微信公众平台开发者文档

微信公众平台开发者文档

微信公众平台开发者文档注:本人引用微信公众平台开发者文档只为方便,一切版权归微信公众平台所有。

目录一、新手指南.................................................1、接入指南...............................................目录...........................................................概述...........................................................第一步:填写服务器配置.........................................第二步:验证服务器地址的有效性.................................第三步:依据接口文档实现业务逻辑...............................2、...........................................招商银行信用卡中心.............................................中国南方航空...................................................广东联通.......................................................3、开发者规范.............................................4、模板消息运营规范.......................................5、公众号类型的接口权限说明...............................6、微信开发者互助问答系统.................................二、测试号申请|在线调试......................................1、接口调试工具................................................2、接口测试号申请..............................................三、报警排查|返回码..........................................1、接口频率限制说明............................................2、全局接口返回码说明..........................................3、报警排查指引................................................ 目录........................................................... 概要说明....................................................... 报警内容说明................................................... 各类报警的排查方法............................................. 常见问题....................................................... 附录........................................................... 附录1:微信推送的消息事件列表和响应格式........................ 附录2:查看服务器性能负载的常用工具............................ 附录3:nginx配置和排查指引....................................4、微信推送消息与事件说明......................................四、消息加解密|消息签名......................................1、方案概述....................................................2、接入指引.................................................... 目录........................................................... 函数说明....................................................... 使用方法.......................................................注意事项....................................................... 函数错误返回码................................................. 示例代码下载................................................... 微信公众平台接口调试工具.......................................3、技术方案.................................................... 阅读须知....................................................... 公众账号接收用户消息........................................... 公众账号向用户回复消息.........................................4、开发者FAQ................................................... 消息加解密功能开发者FAQ........................................五、基础接口.................................................1、获取access_token............................................2、获取微信服务器IP地址.......................................六、接收消息.................................................1、验证消息真实性..............................................2、接收普通消息................................................ 目录........................................................... 文本消息....................................................... 图片消息....................................................... 语音消息....................................................... 视频消息....................................................... 小视频消息.....................................................链接消息.......................................................3、接收事件推送................................................ 目录........................................................... 关注/取消关注事件.............................................. 扫描带参数二维码事件........................................... 上报地理位置事件............................................... 自定义菜单事件................................................. 点击菜单拉取消息时的事件推送................................... 点击菜单跳转链接时的事件推送...................................4、接收语音识别结果............................................七、发送消息.................................................1、发送被动回复消息............................................ 目录........................................................... 回复文本消息................................................... 回复图片消息................................................... 回复语音消息................................................... 回复视频消息................................................... 回复音乐消息................................................... 回复图文消息...................................................2、客服接口.................................................... 目录...........................................................客服接口-发消息................................................3、高级群发接口................................................ 目录........................................................... 上传图文消息素材【订阅号与服务号认证后均可用】................. 根据分组进行群发【订阅号与服务号认证后均可用】................. 根据OpenID列表群发【订阅号不可用,服务号认证后可用】.......... 删除群发【订阅号与服务号认证后均可用】......................... 预览接口【订阅号与服务号认证后均可用】......................... 查询群发消息发送状态【订阅号与服务号认证后均可用】............. 事件推送群发结果...............................................4、模板消息接口................................................ 目录........................................................... 设置所属行业................................................... 获得模板ID..................................................... 发送模板消息................................................... 事件推送.......................................................5、获取自动回复规则............................................八、素材管理.................................................1、新增临时素材................................................2、获取临时素材................................................3、新增永久素材................................................新增永久图文素材............................................... 新增其他类型永久素材...........................................4、获取永久素材................................................5、删除永久素材................................................6、修改永久图文素材............................................7、获取素材总数................................................8、获取素材列表................................................九、用户管理.................................................1、用户分组管理................................................ 目录........................................................... 创建分组....................................................... 查询所有分组................................................... 查询用户所在分组............................................... 修改分组名..................................................... 移动用户分组................................................... 批量移动用户分组............................................... 删除分组.......................................................2、设置用户备注名.............................................. 设置备注名.....................................................3、获取用户基本信息(UnionID机制)............................... 获取用户基本信息(包括UnionID机制)...........................4、获取用户列表................................................5、获取用户地理位置............................................ 获取用户地理位置...............................................6、网页授权获取用户基本信息.................................... 目录........................................................... 第一步:用户同意授权,获取code................................. 第二步:通过code换取网页授权access_token...................... 第三步:刷新access_token(如果需要)........................... 第四步:拉取用户信息(需scope为 snsapi_userinfo)............... 附:检验授权凭证(access_token)是否有效.......................十、自定义菜单管理...........................................1、自定义菜单创建接口..........................................2、自定义菜单查询接口..........................................3、自定义菜单删除接口..........................................4、自定义菜单事件推送.......................................... 目录........................................................... 点击菜单拉取消息时的事件推送................................... 点击菜单跳转链接时的事件推送................................... scancode_push:扫码推事件的事件推送............................ scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框的事件推送pic_sysphoto:弹出系统拍照发图的事件推送....................... pic_photo_or_album:弹出拍照或者相册发图的事件推送............. pic_weixin:弹出微信相册发图器的事件推送.......................location_select:弹出地理位置选择器的事件推送..................5、获取自定义菜单配置接口...................................... 十一、帐号管理...............................................1、生成带参数的二维码.......................................... 创建二维码ticket............................................... 通过ticket换取二维码..........................................2、长链接转短链接接口.......................................... 接口调用请求说明............................................... 十二、数据统计接口...........................................1、用户分析数据接口............................................2、图文分析数据接口............................................3、消息分析数据接口............................................4、接口分析数据接口............................................ 十三、微信JS-SDK ............................................1、微信JS-SDK说明文档......................................... 目录........................................................... 概述........................................................... 基础接口....................................................... 分享接口....................................................... 图像接口....................................................... 音频接口....................................................... 智能接口.......................................................地理位置....................................................... 界面操作....................................................... 微信扫一扫..................................................... 微信小店....................................................... 微信卡券....................................................... 微信支付....................................................... 附录1-JS-SDK使用权限签名算法.................................. 附录2-所有JS接口列表.......................................... 附录3-所有菜单项列表........................................... 附录4-卡券扩展字段及签名生成算法............................... 附录5-常见错误及解决方法....................................... 附录6-DEMO页面和示例代码...................................... 附录7-问题反馈................................................. 十四、微信小店接口...........................................1、微信小店接口................................................ 十五、微信卡劵接口...........................................1、微信卡劵接口说明............................................ 目录........................................................... 卡券接口概述................................................... 卡券资料包下载.................................................2、创建卡劵....................................................创建卡券.......................................................3、会员卡、特殊票劵............................................ 目录........................................................... 会员卡......................................................... 特殊票类....................................................... 景区门票....................................................... 电影票......................................................... 会议门票....................................................... 飞机票......................................................... 汽车票.........................................................4、投放卡劵.................................................... 目录........................................................... 创建二维码接口................................................. 添加卡券JS-SDK................................................. 群发卡券....................................................... 投放渠道数据统计...............................................5、核销卡劵.................................................... 目录........................................................... 核销Code接口.................................................. 线上核销接口................................................... 拉取卡券列表接口...............................................Code解码接口...................................................6、管理卡劵.................................................... 目录........................................................... 查询code....................................................... 查看卡券详情................................................... 批量查询卡列表................................................. 更改卡券信息接口............................................... 修改库存接口................................................... 更改Code接口.................................................. 删除卡券接口................................................... 设置卡券失效接口...............................................7、卡卷事件推送................................................ 目录........................................................... 卡券事件推送...................................................8、卡劵错误码.................................................. 十六、微信智能接口...........................................1、语义理解接口................................................ 十七、设备功能介绍...........................................1、设备功能介绍................................................ 目录........................................................... 服务号设备功能介绍............................................. 十八、多客服功能.............................................1、将消息转发到多客服.....................................2、客服管理............................................... 目录...........................................................3、多客服会话控制......................................... 目录...........................................................4、获取客服聊天记录....................................... 获取客服聊天记录接口...........................................5、PC客户端自定义插件接口 ................................ 目录........................................................... PC客户端自定义页面插件接口..................................... 十九、摇一摇周边.............................................1、设备管理.................................................... 目录........................................................... 申请设备ID..................................................... 编辑设备信息................................................... 配置设备与门店的关联关系....................................... 查询设备列表...................................................2、页面管理.................................................... 目录........................................................... 新增页面....................................................... 编辑页面信息................................................... 查询页面列表...................................................删除页面.......................................................3、素材管理.................................................... 上传图片素材...................................................4、配置设备与页面的关联关系.................................... 配置设备与页面的关联关系.......................................5、获取设备及用户信息.......................................... 获取摇周边的设备及用户信息.....................................6、数据统计.................................................... 以设备为维度的数据统计接口..................................... 以页面为维度的数据统计接口.....................................7、摇一摇关注JSAPI............................................. 摇一摇关注JS API...............................................一、新手指南1、接入指南件的接口URL。

微信公众平台接口开发教程

微信公众平台接口开发教程

公众平台接口开发教程公众平台接口开发教程1. 前言在本教程中,我们将深入介绍公众平台接口开发的相关内容。

通过学习本教程,您将了解如何使用公众平台接口开发出丰富的功能和应用程序。

本教程将循序渐进地介绍公众平台的接口开发流程、接口调用方法和常见问题解决方法。

2. 环境搭建2.1 注册公众平台账号2.2 创建开发者账号2.3 设置服务器配置2.4 获取接口凭证3. 接口调用3.1 公众平台接口概述3.2 接口调用权限说明3.3 接口调用方式3.4 接口调用示例4. 消息管理4.1 接收消息管理4.1.1 接收普通消息4.1.2 接收事件推送4.1.3 接收用户位置信息 4.2 发送消息管理4.2.1 发送文本消息4.2.2 发送图片消息4.2.3 发送图文消息4.2.4 发送模板消息5. 用户管理5.1 获取用户基本信息 5.2 获取用户列表5.3 用户标签管理5.4 获取用户地理位置5.5 用户黑名单管理6. 素材管理6.1 临时素材6.2 临时素材6.3 永久素材6.4 永久素材6.5 删除永久素材7. 菜单管理7.1 创建自定义菜单7.2 查询自定义菜单7.3 删除自定义菜单8. 账号管理8.1 OAuth2.0网页授权8.2 用户授权登录8.3 网页授权获取用户信息8.4 授权后的操作8.5 支付接口附件:本文档包含以下附件:1. 示例代码文件(示例代码.zip)2. 接口调用参数说明表(参数表.xlsx)3. 接口错误码列表(错误码.docx)法律名词及注释:1. 公众平台:由腾讯公司开发和运营的一个提供给企业和组织使用的公众服务平台,为用户提供更好的互动体验。

2. 接口凭证:开发者通过注册公众平台账号并创建开发者账号后,可通过设置服务器配置获取的凭证,用于进行接口调用。

第4章1 微信公众平台API详解:高级开发(自定义菜单)

第4章1 微信公众平台API详解:高级开发(自定义菜单)
程序本身在接收到访问请求时首先判断该请求使用的协议是 否符合本程序的要求,即来访请求是否使用HTTPS协议,如 果不是就将其访问协议重定向为HTTPS 。
内容 导航
CONTENTS
发送HTTPS请求
自定义菜单
9
接口访问凭证
自定义菜单接口
响应菜单单击事件
3.2 接口访问凭证
自定义菜单
10
是进入各种接口的钥 匙,是公众号的全局
3.1发送HTTPS请求
HTTPS保 护用户数 据的实现
方式
自定义菜单
5
01 内容加密
OPTION
浏览器到服务器的内容都是以加密形式传输的,中间人无法直接
查看原始内容.
02
OPTION
身份加密
保证用户访问的是真正想要访问的网站,即使被DNS劫持到了 第三方站点,也会提醒用户没有访问真实站点,可能是被劫持 了.
http请求方式: GET https:///cgibin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
3.2 接口访问凭证
自定义菜单
12
3.2.2 获取接口凭证方法
手动获取 将请求内容放在浏览器的地址栏上进行直接访问。
3.1发送HTTPS请求
自定义菜单
8
3.1.2微信上的实现方法
01 静态超链接
OPTION
网站中使用最多也最简单的方法。它的好处在于容易实现,不需
要额外开发。但不容易维护管理。
02
OPTION
资源访问限制
为了保护Web应用中的敏感数据,防止资源的非法访问和保证 传输的安全性。

微信公众平台开发(系列教程)

微信公众平台开发(系列教程)

微信公众平台开发(系列教程)⼀、简介微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这⼀平台,个⼈和企业都可以打造⼀个微信的公众号,并实现和特定群体的⽂字、图⽚、语⾳的全⽅位沟通、互动。

⼆、通讯机制三、注册微信平台公众帐号四、服务器端配置4.1 ⽰例代码设置微信公众平台提供了⼀个php⽰例代码:下载下来,解压缩,打开编辑。

将token值设置为你所需要的值,token可由开发者任意填写,⽤作⽣成签名。

编辑完保存并关闭⽂件,将⽂件wx_sample.php 更改成⾃定义的名字,这⾥改为wxapi.php,再次打包成wxapi.zip。

4.2 服务器平台设置4.2.1 百度BAE设置a. 注册BAE帐户并登录b. 加⼊开发者中⼼c. 创建应⽤接⼊⽅式选择 “⼿机web应⽤”。

d. 托管设置选择云环境(BAE)-> 托管设置。

环境类型选择 “PHP”。

e. 创建新版本,上传接⼝⽂件f. 上线并获取链接注:zhuojinsz 之前已经被我注册过了,所以不能再次注册。

这⾥应该获得的⼆级域名应该和上⾯的截图中写的⼀样。

BAE 设置完毕。

4.2.2 新浪SAE设置a. 注册SAE帐户并登录b. 创建新应⽤我的⾸页 -> 创建新应⽤c. 配置应⽤d. 上传代码应⽤管理 -> 代码管理 -> 上传代码包e. 获取URL地址SAE 配置完毕。

五、配置接⼝5.1 登录微信公众平台 -> ⾼能功能 -> 开发模式5.2 成为开发者5.3 接⼝配置信息Token 填写⾃定义的token 值,这⾥为zhuojinsz。

5.4 提交点击 “提交”,若⼀切设置正确,则会提⽰ “提交成功”。

5.5 查看接⼝配置信息BAE 接⼝信息SAE 接⼝信息5.6 开启开发模式⾄此,配置完毕。

六、关注请关注卓锦苏州微信公众帐号,卓锦苏州基于SAE 平台开发,针对于主流的微信功能进⾏开发测试。

您可以关注卓锦苏州公众帐号进⾏功能测试,以及获取新的应⽤开发。

微信公众平台开发者教程

微信公众平台开发者教程

微信公众平台开发者教程微信公众平台是融合了微信用户庞大基数和丰富社交功能的一种互联网平台,提供了丰富的开发接口和工具,方便开发者开发各种基于微信的应用和服务。

本文将简要介绍如何进行微信公众平台的开发。

首先,开发者需要注册一个微信公众号账号,获取到公众号的唯一标识和密钥,这是后续进行开发的基础。

其次,开发者可以选择使用微信公众平台提供的开发接口和工具,进行二次开发。

微信公众平台提供了多种接口,包括基础接口、高级接口和移动应用接口等,开发者可以根据需求选择合适的接口进行开发。

同时,微信公众平台还提供了开发者文档和 SDK,方便开发者了解接口的使用方法和进行开发。

在进行开发时,首先需要将开发者账号与公众号绑定,然后就可以创建自定义菜单、自动回复消息、获取用户信息等功能。

开发者可以通过调用接口实现这些功能,并根据自己的业务需求,进行个性化的定制。

在开发过程中,开发者需要根据微信公众号的要求,对开发的应用进行安全性、规范性的审核。

这包括申请审核开发者身份、API权限申请、功能指引和规范等方面。

只有通过审核的应用才能正常使用和向用户提供服务。

最后,开发者需要进行测试和发布。

微信公众平台提供了模拟器工具,方便开发者进行本地测试。

开发完成后,需要上传应用到微信公众号,进行线上测试,并提交给微信团队进行审核。

一旦通过审核,应用就可以在用户中心进行下载安装使用。

总而言之,微信公众平台开发者教程是介绍如何进行微信公众平台开发的指南,包括注册账号、选择接口、编写代码、测试发布等方面。

通过学习和掌握开发者教程,开发者可以快速上手,开发出各种基于微信的应用和服务,为用户提供更好的微信体验。

个人微信公众号开发教程

个人微信公众号开发教程

个人微信公众号开发教程个人微信公众号的开发教程是一项很有意义的任务。

随着微信的普及,越来越多的个人或者企业都希望能够有一个自己的微信公众号来进行品牌推广、信息发布以及用户互动等活动。

首先,我们需要在微信开放平台上注册一个开发者账号,并创建自己的公众号。

注册完成后,我们可以进入公众号的管理后台,进行基本的设置,比如选择账号类型、填写基本信息等。

接下来,我们需要进行开发者的认证。

这是为了确保我们能够获取到一些高级接口的权限,比如自定义菜单、模板消息等。

完成认证后,我们就可以开始进行公众号的开发了。

开发个人微信公众号主要有两种方式,一种是使用微信提供的开放接口来开发,另一种是使用开发框架来进行开发。

如果选择使用微信提供的开放接口,我们可以通过调用API来实现各种功能,比如获取用户信息、发送消息等。

这种方式相对来说比较灵活,可以根据自己的需求来进行开发,但需要具备一定的编程能力和对微信开放接口的了解。

另外一种方式是使用开发框架,比如使用Python的Flask框架来进行开发。

Flask框架有一些成熟的插件可以供我们使用,比如微信开发工具包,能够简化开发过程,提高开发效率。

同时,Flask框架也相对容易上手,适合新手学习和使用。

在开发过程中,我们需要根据公众号的功能需求进行相应的开发,比如创建自定义菜单、接收用户消息、回复消息等。

可以根据需要来选择合适的接口进行调用,实现相应的功能。

最后,我们需要进行测试和发布。

在开发过程中,可以使用微信提供的测试工具进行调试,确保功能的正确性和稳定性。

当测试通过后,我们就可以将公众号发布上线,供用户使用了。

总的来说,个人微信公众号的开发教程虽然需要一定的技术基础,但是只要按照步骤进行,灵活运用开发工具和框架,就可以顺利完成个人微信公众号的开发,并为自己的个人或企业品牌推广搭建一个强有力的平台。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微信开发者平台自定义接口一.主接口文件mcinterface.Php<?php/*** wechat php test*/// define your tokendefine("TOKEN", "******");include_once ("weixin.class.php");include_once ("search.php");$weixin = new Weixin(TOKEN);$chaxun = new chaxun();if (!isset($_GET['echostr'])) {$weixin->getMsg();} else {$weixin->valid();}$type = $weixin->msgtype;$username = $weixin->msg['FromUserName'];switch ($type) {case "event": // 事件判断$results = $chaxun->handleEvent($weixin);break;case "text": // 用户文本$keyword = $weixin->msg['Content'];$results = $chaxun->usrMsg($keyword, $username);// $results=$chaxun->search($keyword);break;case "image":$keyword = "image";$results = $chaxun->help($keyword);break;case "location":case "voice":case "shortvideo":$keyword = "video";$results = $chaxun->help($keyword);break;default:$results = "Unknow Event:" . $type;break;}if (is_array($results)) {switch ($results["msgType"]){case "news":$reply = $weixin->makeNews($results);break;case "music":$reply = $weixin->makeMusic($results);break;default:$reply = $weixin->makeNews($results);break;}} else {$reply = $weixin->makeText($results);}$weixin->reply($reply);?>二.信息处理函数(weixin.class.php)<?PHPrequire_once ('wxBizMsgCrypt.php');define("TOKEN", "***");define("AppID", "***");define("EncodingAESKey", "***");define("debug", "false");class Weixin{public $token = "***";public $debug = false;public $setFlag = false;public $msg = array();public function getMsg(){$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if ($this->debug) {$this->write_log($postStr);}// 获取加密解密参数if (! empty($postStr)) {$postStr = $this->msgDecrypt($postStr);$this->msg = (array) simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDA TA);$this->msgtype = strtolower($this->msg['MsgType']);}}public function makeText($text = ''){$CreateTime = time();$FuncFlag = $this->setFlag ? 1 : 0;$textTpl = "<xml><ToUserName><![CDA TA[{$this->msg['FromUserName']}]]></ToUserName><FromUserName><![CDA TA[{$this->msg['ToUserName']}]]></FromUserName><CreateTime>{$CreateTime}</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>%s</FuncFlag></xml>";return sprintf($textTpl, $text, $FuncFlag);}public function makeVideo($newsData = array()){$CreateTime = time();$FuncFlag = $this->setFlag ? 1 : 0;$textTpl = "<xml><ToUserName><![CDATA[{$this->msg['FromUserName']}]]></ToUserName><FromUserName><![CDA TA[{$this->msg['ToUserName']}]]></FromUserName><CreateTime>{$CreateTime}</CreateTime><MsgType><![CDA TA[video]]></MsgType><Video><MediaId><![CDA TA[$s]]></MediaId><Title><![CDA TA[%s]]></Title><Description><![CDATA[%s]]></Description></Video></xml>";$Videostr=sprintf($textTpl,$newsData["MediaId"],$newsData["Title"],$newsData["Descripti on"]);return $Videostr;}public function makeMusic($newsData = array()){$CreateTime = time();$FuncFlag = $this->setFlag ? 1 : 0;$textTpl = "<xml><ToUserName><![CDATA[{$this->msg['FromUserName']}]]></ToUserName><FromUserName><![CDA TA[{$this->msg['ToUserName']}]]></FromUserName><CreateTime>{$CreateTime}</CreateTime><MsgType><![CDA TA[music]]></MsgType><Music><Title><![CDA TA[%s]]></Title><Description><![CDATA[%s]]></Description><MusicUrl><![CDA TA[%s]]></MusicUrl><HQMusicUrl><![CDATA[%s]]></HQMusicUrl><ThumbMediaId><![CDA TA[%s]]></ThumbMediaId></Music></xml>";$Musicstr=sprintf($textTpl,$newsData["Title"],$newsData["Description"],$newsData["MusicUrl"],$newsData["HQMusicUrl "],$newsData["ThumbMediaId"]);return $Musicstr;}public function makeScancode($text = ''){$CreateTime = time();$FuncFlag = $this->setFlag ? 1 : 0;$textTpl = "<xml><ToUserName><![CDA TA[{$this->msg['FromUserName']}]]></ToUserName><FromUserName><![CDA TA[{$this->msg['ToUserName']}]]></FromUserName><CreateTime>{$CreateTime}</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDA TA[scancode_waitmsg]]></Event><EventKey><![CDATA[{$this->msg['EventKey']}]]></EventKey><ScanCodeInfo><ScanType><![CDA TA[qrcode]]></ScanType><ScanResult><![CDATA[%s]]></ScanResult></ScanCodeInfo></xml>";return sprintf($textTpl, $text, $FuncFlag);}public function makeCustomer($text = ''){$CreateTime = time();$textTpl = "<xml><ToUserName><![CDA TA[{$this->msg['FromUserName']}]]></ToUserName><FromUserName><![CDA TA[{$this->msg['ToUserName']}]]></FromUserName><CreateTime>{$CreateTime}</CreateTime><MsgType><![CDATA[transfer_customer_service]]></MsgType></xml>";return sprintf($textTpl);}public function makeNews($newsData = array()){$CreateTime = time();$FuncFlag = $this->setFlag ? 1 : 0;$newTplHeader = "<xml><ToUserName><![CDA TA[{$this->msg['FromUserName']}]]></ToUserName><FromUserName><![CDA TA[{$this->msg['ToUserName']}]]></FromUserName><CreateTime>{$CreateTime}</CreateTime><MsgType><![CDATA[news]]></MsgType><Content><![CDATA[%s]]></Content><ArticleCount>%s</ArticleCount><Articles>";$newTplItem = "<item><Title><![CDATA[%s]]></Title><Description><![CDA TA[%s]]></Description><PicUrl><![CDA TA[%s]]></PicUrl><Url><![CDA TA[%s]]></Url></item>";$newTplFoot = "</Articles></xml>";$Content = '';$itemsCount = count($newsData);$itemsCount = $itemsCount < 10 ? $itemsCount : 10;if ($itemsCount) {foreach ($newsData as $key => $item) {if ($key <= 9) {$Content .= sprintf($newTplItem, $item['title'], $item['description'], $item['picurl'], $item['url']);}}}$header = sprintf($newTplHeader, $newsData['content'], $itemsCount);$footer = sprintf($newTplFoot, $FuncFlag);$reString = $header . $Content . $footer;return $reString;}public function reply($data){if ($this->debug) {$this->write_log($data);}$data = $this->msgEncrypt($data);echo $data;}public function valid(){$echoStr = $_GET["echostr"];// valid signature , optionif ($this->checkSignature()) {echo $echoStr;exit();}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr, SORT_STRING);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}public function msgDecrypt($postStr){$arry = $this->getPost();if ($arry["encrypt_type"] == 'AES' or $arry["encrypt_type"] == 'aes') {$pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);$decryptMsg = ""; // 解密后的明文$errCode = $pc->decryptMsg($arry["msg_signature"], $arry["timestamp"], $arry["nonce"], $postStr, $decryptMsg);$postStr = $decryptMsg;}return $postStr;}public function msgEncrypt($data){$arry = $this->getPost();if ($arry["encrypt_type"] == 'AES' or $arry["encrypt_type"] == 'aes') {$pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);$encryptMsg = ''; // 加密后的密文$errCode = $pc->encryptMsg($data, $arry["timestamp"], $arry["nonce"], $encryptMsg);$data = $encryptMsg;}return $data;// return $arry;}public function getPost(){$timestamp = $_GET['timestamp'];$nonce = $_GET["nonce"];$msg_signature = $_GET['msg_signature'];$encrypt_type = (isset($_GET['encrypt_type']) && ($_GET['encrypt_type'] == 'aes')) ? "aes" : "raw";$arr = array("timestamp" => $timestamp,"nonce" => $nonce,"msg_signature" => $msg_signature,"encrypt_type" => $encrypt_type);return $arr;}private function write_log($log){print_r($log);}}?>三.信息匹配(search.php)<?phpclass chaxun{public function search($keyword){$list = $this->echolist($keyword);if (is_array($list) && ! empty($list)) {foreach ($list as $msg) {$record[] = array('title' => $msg['title'],'description' => $msg['description'],'picurl' => $msg['picurl'],'url' => $msg['url']);}} else {$record[] = array('title' => 'title','description' => '指令未知。

相关文档
最新文档