多读多写多记录,多学多练多思考。 ----------- Banana.Banuit(香柚帮)
应用场景:APP分享某一营销活动给微信用户并获取微信用户信息。
需求分析:公司有两个开发团队,一个进行APP开发,一个进行微信公众号开发,现要求从APP系统内分享一条营销活动到微信客户端,微信用户点击活动链接之后APP系统获取到微信用户的openid。
可行方案:
第一步:APP系统首先调用微信开放平台接口===https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect获取code,其中appid和redirect_uri由微信公众号开发团队提供,APP开发团队需要在redirect_uri后拼接上微信公众号开发团队获取到用户openid后的回传给自己的接口。假如微信公众号开发团队提供的接口为https://www.wxtest.com/wechatAuthDemo/index.html,而APP开发团队接收openid的接口为https://www.apptest.com/api/authDemo/getOpenId,则整个地址就可以是这样的https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx123456&redirect_uri=https://www.wxtest.com/wechatAuthDemo/index.html?url=https://www.apptest.com/api/authDemo/getOpenId&response_type=code&scope=snsapi_base&state=0#wechat_redirect这里需要注意的是redirect_uri需要进行URLEncoder编码。
第二步:APP获取到code之后回调微信公众号开发团队接口,并将code传递过去,这时候微信公众号开发可以通过获取到的code获取到access_token和openid,同时还可以进一步通过openid和access_token获取到用户信息,然后再通过传递过来的url参数把openid回传给APP就行了。
第三步:APP获取到微信公众号开发回传的openid。
作为APP开发团队只需要关注第一步和第三步就行了。