微信第三方平台开发流程和总结
微信第三方平台开发流程和总结
创建第三方平台
1).在微信开放平台-管理中心-第三方平台中创建第三方平台账号。创建第三方平台
2).选择“平台型服务商类型”创建第三方平台。填写第三方平台的基本信息. 填写基本信息
3).设置相关权限信息,具体权限集信息可参考:第三方平台权限说明
4).填写开发资料的信息说明, 可参考:第三方平台申请资料说明
开发接入
- 接收第三方验证票据(component_verity_ticket)
在第三方平台创建审核通过后,微信服务器会向其“授权事件接收URL”每隔10分钟定时推送component_verify_ticket。第三方平台方在收到ticket推送后也需进行解密(详细请见【消息加解密接入指引】),接收到后必须直接返回字符串success。
注意1:component_verity_ticket建议每次接受都进行写入缓存/数据库/文件
注意2:微信发送的请求中总共有5个参数,具体如下:
时间戳 timestamp,随机数nonce , encrypt_type(加密类型,为aes)和msg_signature(消息体签名,用于验证消息体的正确性)以及xml内容 详细可以查看
XML内容
<xml>
<AppId></AppId>
<CreateTime>1413192605 </CreateTime>
<InfoType> </InfoType>
<ComponentVerifyTicket> </ComponentVerifyTicket>
</xml>
注意3:对上述XML内容解密
解密/加密方式都是aes,
需要在创建第三方平台时填写开发资料时填写的:消息验证token,消息加解密key,appid
和微信请求来的参数:msg_signature(签名),timestamp(时间戳),nonce(随机数),postDataStr(post来的数据字符串),进行校验和解密成明文内容。然后提取出ComponentVerifyTicket进行写入缓存/数据库/文件(后续所有的操作都需要用到)
- 获取令牌(component_access_token)
第三方平台component_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时30分)再进行刷新.
接口调用请求说明
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_component_token
POST数据示例:
{
"component_appid":"appid_value" ,
"component_appsecret": "appsecret_value",
"component_verify_ticket": "ticket_value"
}
- 判断token未过期直接返回(不要频繁的请求token,微信有请求次数限制)
- 判断ticket是否存在或过期
- 拼装请求数据
- 发送Https请求并获取结果
- 解析结果并保存token
- 获取预授权码(pre_auth_code)
该API用于获取预授权码。预授权码用于公众号或小程序授权时的第三方平台方安全验证。
接口调用请求说明
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx
POST数据示例:
{
"component_appid":"appid_value"
}
步骤:
- 判断pre_auth_code未过期直接返回
- 获取token,如果过期则重新请求
- 替换url中的xxx
- 拼装请求参数
- 发送请求并获取返回结果
- 保存pre_auth_code
- 重定向到授权页,引入用户进入授权页
第三方平台方可以在自己的网站:中放置“微信公众号授权”的入口,引导公众号进入授权页。授权页网址为
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx,
该网址中第三方平台方需要提供第三方平台方appid、预授权码和回调URI(授权成功后直接跳转的页面),
步骤:
- 在第三方平台指定的域名下做一个简单的页面作为授权页的入口
- 获取pre_auth_code
- 替换重定向的url的参数
- 接收授权方授权请求并保存授权方信息
在第四步后重定向到授权页后,在授权页上会有一个二维码,微信公众号管理员通过的使用本人微信扫描二维码对第三方平台进行授权,在公众号管理员扫描二维码后,第三方平台后台给定的回调地址(redirect_uri),将会收到一条请求,请求中包含了授权方的authorization_code和authorization_code的有效期 ;
- 使用authorization_code换取授权方的authorizer_access_token和authorizer_refresh_token。
接口调用请求说明
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=xxxx
POST数据示例:
{
"component_appid":"appid_value" ,//第三方appid
"authorization_code": "auth_code_value" //授权code
}
返回参数如图看微信文档里面
步骤:
- 获取第三方平台的token
- 获取授权方授权信息
- 获取授权方账号信息进行保存
- 接收微信用户发送的事件以及消息
简单讲,就是微信用户在手机上给公众号发的普通文本消息会以上面的格式发到第三方平台的公众号消息与事件接收URL
然后这个xml是加密过的,msg_signature(签名),timestamp(时间戳),nonce(随机数),postDataStr(post来的数据字符串),进行校验和解密成明文内容
注意:被动回复时消息需要进行加密处理
步骤:
- 对post来的数据解密
- 根据解密后的明文处理不同的业务
特别注意:
- component_verity_ticket是获取component_access_token必备参数
- component_access_token是获取公众号(授权方)authorizer_access_token时必备参数。
- authorizer_access_token是代公众号(授权方)处理业务的必备参数。
- component_verity_ticket有效期3600(目前接口推送时返回的)。
- component_access_token有效期时2小时,且不是无限的。需要保存到缓存中(最好设置1小时30分)
- authorizer_access_token有效期是2小时,且不是无限的。需要保存到缓存中(最好设置1小时30分)
微信第三方平台开发流程和总结相关推荐
- 微信第三方平台开发流程
一个微信公众号菜鸟的摸索之路 准备工作 注册申请开发者账号 开发者资质认证 附上地址:https://open.weixin.qq.com 创建第三方平台 进入管理中心->创建第三方平台 这里解 ...
- 微信第三方平台-授权流程经验分享
原文地址: www.jianshu.com/p/67836ffa9- 在做微信第三方平台开发的时候,虽然授权的技术实现流程比较简单,但是相对于一个key直接集成的一些其他的服务来说,还是有一些步骤,过 ...
- 微信第三方平台授权流程- java
1. 微信第三方平台的开发,第一步就是公众号的授权,授权成功后第三方凭条才能利用公众号的appid和token获得公众账号额信息,并代替公众账号完成一些功能. 2. 授权的流程,理论图 代码流程, 1 ...
- 微信第三方平台开发接入
微信第三方平台开发接入 授权流程接入步骤如下:( 微信https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=res ...
- 微信第三方平台开发错误码集合,各种 code
微信第三方平台开发错误码集合 PHP static $codes = array("-1" => "系统繁忙","0" => & ...
- 公众号第三方平台开发流程详解
准备工作 1. 注册申请 访问https://open.weixin.qq.com 根据指引进行注册申请,申请流程相对比较麻烦,需要耐心等待审核 2. 创建第三方平台 进入'管理中心->创建第三 ...
- 微信第三方平台开发,component_verify_ticket的接收
首先是接收component_verify_ticket 大家在创建完成第三方平台之后,微信服务器就会以10分钟左右的时间通过当时填写的授权事件接收URL.发送ticket.但是在接收之后,需要进行 ...
- 微信端php 开发技术要求,微信第三方平台开发详解——PHP版
申请第三方平台,这个很简单直接按照提示填写,下面的授权事件接收URL中获取的component_verify_ticket是会过期的,所以不要只获取一次,缓存起来每10分钟会发送一次,每1小时会更新一 ...
- 微信第三方平台授权流程说明
1.消息验证token和消息加解密key(encodingAesKey) encodingAesKey长度固定为 43 个字符,从 a-z,A-Z,0-9 共 62 个字符中选取.由开发者在创建第三方 ...
最新文章
- 如何调整按钮里的文字的位置android_UI设计中按钮场景分析
- Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力...
- cd返回上一 git_使用Git实现自动化部署项目
- 通过原码、反码、补码彻底搞清左移、右移、无符号右移
- md5修改工具_【q001】如何校验文件的MD5
- 惯性力偶矩公式中j_万众期待的倍量过左峰选股公式,通达信专用,学会收益再翻一倍!...
- 2023河海大学计算机考研信息汇总
- 前端布局篇之文字居中显示
- 苹果电脑系统如何读取移动硬盘数据?
- Python.习题六 字典与集合(下)
- Open vStorage —— 虚拟化的存储路由系统
- C++:构造函数中调用虚函数
- 217小白最新详细linux环境下安装博客WordPress教程
- 耿丹CS16-2班第三次作业汇总
- 傻子都能看懂的SVM
- 坐牢后,我被安排去写代码...
- 详解AUTOSAR:AUTOSAR方法论(理论篇—3)
- 剖析visa信用卡支付的交易处理流程
- 金数据预约登记工具 引入医院信息管理部门
- 计算机速算训练,5种速算技巧,比计算机“更神速”!值得收藏!