微信第三方平台开发流程和总结html
1).在微信开放平台-管理中心-第三方平台中建立第三方平台帐号。建立第三方平台数据库
2).选择“平台型服务商类型”建立第三方平台。填写第三方平台的基本信息. 填写基本信息小程序
3).设置相关权限信息,具体权限集信息可参考:第三方平台权限说明
4).填写开发资料的信息说明, 可参考:第三方平台申请资料说明api
在第三方平台建立审核经过后,微信服务器会向其“受权事件接收URL”每隔10分钟定时推送component_verify_ticket。第三方平台方在收到ticket推送后也需进行解密(详细请见【消息加解密接入指引】),接收到后必须直接返回字符串success。缓存
注意1:component_verity_ticket建议每次接受都进行写入缓存/数据库/文件安全
注意2:微信发送的请求中总共有5个参数,具体以下:服务器
时间戳 timestamp,随机数nonce , encrypt_type(加密类型,为aes)和msg_signature(消息体签名,用于验证消息体的正确性)以及xml内容 详细能够查看 微信
XML内容app
<xml>post
<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)。每一个令牌是存在有效期(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"
}
该API用于获取预受权码。预受权码用于公众号或小程序受权时的第三方平台方安全验证。
接口调用请求说明
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx
POST数据示例:
{
"component_appid":"appid_value"
}
步骤:
第三方平台方能够在本身的网站:中放置“微信公众号受权”的入口,引导公众号进入受权页。受权页网址为
该网址中第三方平台方须要提供第三方平台方appid、预受权码和回调URI(受权成功后直接跳转的页面),
步骤:
在第四步后重定向到受权页后,在受权页上会有一个二维码,微信公众号管理员经过的使用本人微信扫描二维码对第三方平台进行受权,在公众号管理员扫描二维码后,第三方平台后台给定的回调地址(redirect_uri),将会收到一条请求,请求中包含了受权方的authorization_code和authorization_code的有效期 ;
接口调用请求说明
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
}
返回参数如图看微信文档里面
步骤:
简单讲,就是微信用户在手机上给公众号发的普通文本消息会以上面的格式发到第三方平台的公众号消息与事件接收URL
而后这个xml是加密过的,msg_signature(签名),timestamp(时间戳),nonce(随机数),postDataStr(post来的数据字符串),进行校验和解密成明文内容
注意:被动回复时消息须要进行加密处理
步骤:
特别注意: