记录一下微信扫码登录流程:
1.获取token;
2.获取ticket;
3.拿到ticket,进行拼接,在进行SHA1,生成签名,再
IDiffDevOAuth.auth(...) 这里要传入OAuthListener
4.在OAuthListener的回调方法onAuthGotQrcode里拿到byte[ ]格式的二维码图片
5.将byte[]格式图片转成bitmap,并显示在imageView
public static Bitmap getPicFromBytes(byte[] bytes, BitmapFactory.Options opts) {
if (bytes != null)
if (opts != null)
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, opts);
else
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
return null;
}
6.有了二维码就可以用手机微信扫描这个二维码,进行验证登录了
7.到此整个流程就走完了
补充贴一下上面要请求的接口代码:
@GET("token")
Observable<TokenBean> getWxCodeToken(@Query("grant_type") String grant_type ,@Query("appid") String appid ,@Query("secret") String secret );
@GET("ticket/getticket")
Observable<TicketBean> getWxCodeTicket(@Query("access_token") String access_token , @Query("type") String type);
@GET("oauth2/access_token")
Observable<WXAuthTokenBean> doGetAuthTokenByCode_rx(@Query("appid") String appid , @Query("secret") String secret, @Query("code") String code, @Query("grant_type") String grant_type);
@GET("userinfo")
Observable<WXAuthUserInfoBean> reqWXAuthUserInfoByCode_rx(@Query("access_token") String access_token , @Query("openid") String openid);