微信第三方平台开发流程和总结

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

微信第三⽅平台开发流程和总结
微信第三⽅平台开发流程和总结
创建第三⽅平台
1).在微信开放平台-管理中⼼-第三⽅平台中创建第三⽅平台账号。

2).选择“平台型服务商类型”创建第三⽅平台。

填写第三⽅平台的基本信息.
3).设置相关权限信息,具体权限集信息可参考:
4).填写开发资料的信息说明, 可参考:
开发接⼊
1. 接收第三⽅验证票据(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进⾏写⼊缓存/数据库/⽂件(后续所有的操作都需要⽤到)
1. 获取令牌(component_access_token)
第三⽅平台component_access_token是第三⽅平台的下⽂中接⼝的调⽤凭据,也叫做令牌(component_access_token)。

每个令牌是存在有效期(2⼩时)的,且令牌的调⽤不是⽆限制的,请第三⽅平台做好令牌的管理,在令牌快过期时(⽐如1⼩时30分)再进⾏刷新.
接⼝调⽤请求说明
POST数据⽰例:
{
"component_appid":"appid_value" ,
"component_appsecret": "appsecret_value",
"component_verify_ticket": "ticket_value"
}
1. 判断token未过期直接返回(不要频繁的请求token,微信有请求次数限制)
2. 判断ticket是否存在或过期
3. 拼装请求数据
4. 发送Https请求并获取结果
5. 解析结果并保存token
1. 获取预授权码(pre_auth_code)
该API⽤于获取预授权码。

预授权码⽤于公众号或⼩程序授权时的第三⽅平台⽅安全验证。

接⼝调⽤请求说明
POST数据⽰例:
{
"component_appid":"appid_value"
}
步骤:
1. 判断pre_auth_code未过期直接返回
2. 获取token,如果过期则重新请求
3. 替换url中的xxx
4. 拼装请求参数
5. 发送请求并获取返回结果
6. 保存pre_auth_code
1. 重定向到授权页,引⼊⽤户进⼊授权页
第三⽅平台⽅可以在⾃⼰的⽹站:中放置“微信公众号授权”的⼊⼝,引导公众号进⼊授权页。

授权页⽹址为
该⽹址中第三⽅平台⽅需要提供第三⽅平台⽅appid、预授权码和回调URI(授权成功后直接跳转的页⾯),
步骤:
在第三⽅平台指定的域名下做⼀个简单的页⾯作为授权页的⼊⼝
获取pre_auth_code
替换重定向的url的参数
1. 接收授权⽅授权请求并保存授权⽅信息
在第四步后重定向到授权页后,在授权页上会有⼀个⼆维码,微信公众号管理员通过的使⽤本⼈微信扫描⼆维码对第三⽅平台进⾏授权,在公众号管理员扫描⼆维码后,第三⽅平台后台给定的回调地址(redirect_uri),将会收到⼀条请求,请求中包含了授权⽅的
authorization_code和authorization_code的有效期;
1. 使⽤authorization_code换取授权⽅的authorizer_access_token和authorizer_refresh_token。

接⼝调⽤请求说明
POST数据⽰例:
{
"component_appid":"appid_value" ,//第三⽅appid
"authorization_code": "auth_code_value" //授权code
}
返回参数如图看微信⽂档⾥⾯
步骤:
获取第三⽅平台的token
获取授权⽅授权信息
获取授权⽅账号信息进⾏保存
1. 接收微信⽤户发送的事件以及消息
简单讲,就是微信⽤户在⼿机上给公众号发的普通⽂本消息会以上⾯的格式发到第三⽅平台的公众号消息与事件接收URL
然后这个xml是加密过的,msg_signature(签名),timestamp(时间戳),nonce(随机数),postDataStr(post来的数据字符串),进⾏校验和解密成明⽂内容
注意:被动回复时消息需要进⾏加密处理
步骤:
对post来的数据解密
根据解密后的明⽂处理不同的业务
特别注意:
1. component_verity_ticket是获取component_access_token必备参数
2. component_access_token是获取公众号(授权⽅)authorizer_access_token时必备参数。

3. authorizer_access_token是代公众号(授权⽅)处理业务的必备参数。

4. component_verity_ticket有效期3600(⽬前接⼝推送时返回的)。

5. component_access_token有效期时2⼩时,且不是⽆限的。

需要保存到缓存中(最好设置1⼩时30分)
6. authorizer_access_token有效期是2⼩时,且不是⽆限的。

需要保存到缓存中(最好设置1⼩时30分)
7.。

相关文档
最新文档