zoukankan      html  css  js  c++  java
  • 团队冲刺第六天--校园百晓生(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,存入数据库,然后回调进行登录验证(淦)。

  • 相关阅读:
    通配符函数 MatchesMask 的使用
    WinAPI: GetComputerName 获取计算机名称
    TStringList 常用操作
    分割字符串 ExtractStrings
    磁盘类型 GetDriveType
    Delphi 的信息框相关函数
    Delphi 的运算符列表
    类型转换函数
    文件路径相关的字符串操作
    澳洲技术移民介绍
  • 原文地址:https://www.cnblogs.com/dd110343/p/12741245.html
Copyright © 2011-2022 走看看