码迷,mamicode.com
首页 > 其他好文 > 详细

团队冲刺第六天--校园百晓生(STDeverything)

时间:2020-04-20 23:37:04      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:over   else   null   第三方   失败   个人   token   返回   第六天   

摘要:今天写了一些关于通过微信进行第三方登录的东西。。。还有申请微信审核。。。(啥都要审核,我好方),qq开放平台个人资料审核过了,然后还得要过app审核才能拿到appid。。。(淦)

代码:

技术图片技术图片
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
    private static final int RETURN_MSG_TYPE_LOGIN = 1;
    private static final int RETURN_MSG_TYPE_SHARE = 2;
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //如果没回调onResp,八成是这句没有写
        MyApp.mWxApi.handleIntent(getIntent(), this);
    }
 
    // 微信发送请求到第三方应用时,会回调到该方法
    @Override
    public void onReq(BaseReq req) {
    }
 
    // 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
    //app发送消息给微信,处理返回消息的回调
    @Override
    public void onResp(BaseResp resp) {
        LogUtils.sf(resp.errStr);
        LogUtils.sf("错误码 : " + resp.errCode + "");
        switch (resp.errCode) {
 
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                if (RETURN_MSG_TYPE_SHARE == resp.getType()) UIUtils.showToast("分享失败");
                else UIUtils.showToast("登录失败");
                break;
            case BaseResp.ErrCode.ERR_OK:
                switch (resp.getType()) {
                    case RETURN_MSG_TYPE_LOGIN:
                        //拿到了微信返回的code,立马再去请求access_token
                        String code = ((SendAuth.Resp) resp).code;
                        LogUtils.sf("code = " + code);
 
                        //就在这个地方,用网络库什么的或者自己封的网络api,发请求去咯,注意是get请求
                        
                        break;
 
                    case RETURN_MSG_TYPE_SHARE:
                        UIUtils.showToast("微信分享成功");
                        finish();
                        break;
                }
                break;
        }
    }
}
wxActivity

开始时调用函数:

技术图片技术图片
@Override
public void onCreate() {
    super.onCreate();
    registToWX();
}
 
private void registToWX() {
    mWxApi = WXAPIFactory.createWXAPI(this, AppConst.WEIXIN.APP_ID, false);
    // 将该app注册到微信
    mWxApi.registerApp(AppConst.WEIXIN.APP_ID);
}
oncrate

点击事件:

技术图片技术图片
public void wxLogin() {
    if (!MyApp.mWxApi.isWXAppInstalled()) {
        UIUtils.showToast("您还未安装微信客户端");
        return;
    }
    final SendAuth.Req req = new SendAuth.Req();
    req.scope = "snsapi_userinfo";
    req.state = "diandi_wx_login";
    MyApp.mWxApi.sendReq(req);
}
WXLogin

其实和qq登录大同小异,等过了审核一并测试。

后面要实现取用户唯一openid,存入数据库,然后回调进行登录验证(淦)。

团队冲刺第六天--校园百晓生(STDeverything)

标签:over   else   null   第三方   失败   个人   token   返回   第六天   

原文地址:https://www.cnblogs.com/dd110343/p/12741245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!