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


    摘要:今天写了一些关于通过微信进行第三方登录的东西。。。还有申请微信审核。。。(啥都要审核,我好方),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,存入数据库,然后回调进行登录验证(淦)。

  • 相关阅读:
    WPF学习笔记2——WPF子线程更新UI
    WPF学习笔记1——VS2019新建WPF程序
    Asp.Net Core学习笔记3—— .NET Core SDK
    Asp.Net Core学习笔记2—— IIS部署
    Asp.Net Core学习笔记1—— 静态页面
    NGUI带翻页的滑动列表拓展
    用Lua的协程实现类似Unity协程的语句块
    Lua模除运算的大坑
    数据结构和算法总结(三):A* 寻路算法
    Unity3D学习(十一):关于UI销毁后图集仍然无法释放问题的解决办法
  • 原文地址:https://www.cnblogs.com/dd110343/p/12741245.html
Copyright © 2020-2023  润新知