博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信登陆,支付防坑指南
阅读量:6772 次
发布时间:2019-06-26

本文共 4955 字,大约阅读时间需要 16 分钟。

1.防坑指南:

  1.  微信未返回Code?
    1.  请更新libammsdk.jar,import com.tencent.mm.sdk.modelmsg.SendAuth。发现命名空间发生了很大的变化。(微信婊这么大的改动也不说下,这么查的 啊,日了狗了。)
  2. 如何接收微信授权后的回调?
    1.  在包名下建立wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类
  3. 为什么回调没有执行?
    1.   配置AndroidManifest,如下:(此问题我也是参考别人的出来的,不知道是不是这个原因。)
          1.  4  如何拿到Code
private void handleIntent(Intent intent) {            String result = "";            ConUrls.WriteLog("handleIntent"+result);            SendAuth.Resp resp = new SendAuth.Resp(intent.getExtras());            if (resp.errCode == BaseResp.ErrCode.ERR_OK) {                //用户同意                result ="发送成功";                //ConUrls.WriteLog("handleIntent"+result);                //Contexts.CurWeiXinHelper;                String    weixinCode = resp.code;                ConUrls.WriteLog("onResume "+weixinCode);                if(Contexts.CurWeiXinHelper !=null)                {                    ConUrls.WriteLog("CurWeiXinHelper "+weixinCode);                    try                    {                                                Contexts.CurWeiXinHelper.GetLoginInfo(weixinCode);                        Contexts.CurWeiXinHelper=null;                        finish();                    }                    catch(Exception e)                    {                        ConUrls.WriteLog(e.getMessage());                    }                                    }            }        }

5.如何根据code  拿到 openId?

  

private  void WXGetAccessToken(){        HttpClient get_access_token_httpClient = new DefaultHttpClient();        HttpClient get_user_info_httpClient = new DefaultHttpClient();        String access_token="";        String openid ="";        try {            HttpPost postMethod = new HttpPost(get_access_token);            HttpResponse response = get_access_token_httpClient.execute(postMethod); // 执行POST方法            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {                InputStream is = response.getEntity().getContent();                BufferedReader br = new BufferedReader(                        new InputStreamReader(is));                String str = "";                StringBuffer sb = new StringBuffer();                while ((str = br.readLine()) != null) {                    sb.append(str);                }                is.close();                String josn = sb.toString();                JSONObject json1 = new JSONObject(josn);                access_token = (String) json1.get("access_token");                openid = (String) json1.get("openid");                                            WeiXinAuthLoginModel model=new WeiXinAuthLoginModel();                model.setOpenId(openid);                LoginModel MyLoginModel= SysHelper.GetWeiXinLogin(model, curContent);                Contexts.MyLoginModel = MyLoginModel;                SysHelper.StartAm(curContent);                if(mHandler!=null)                {                    Message msg=new Message();                    msg.obj=MyLoginModel;                    msg.arg1=mHandlerOrg1;                    msg.what=1;                    mHandler.sendMessage(msg);                }                                            } else {            }        } catch (UnsupportedEncodingException e) {            e.printStackTrace();            if(mHandler!=null)            {                Message msg=new Message();                msg.obj="登录失败";                msg.arg1=mHandlerOrg1;                msg.arg2=-1;                msg.what=0;                mHandler.sendMessage(msg);            }        } catch (ClientProtocolException e) {            e.printStackTrace();            if(mHandler!=null)            {                Message msg=new Message();                msg.obj="登录失败";                msg.arg1=mHandlerOrg1;                msg.arg2=-1;                msg.what=0;                mHandler.sendMessage(msg);            }        } catch (IOException e) {            e.printStackTrace();            if(mHandler!=null)            {                Message msg=new Message();                msg.obj="登录失败";                msg.arg1=mHandlerOrg1;                msg.arg2=-1;                msg.what=0;                mHandler.sendMessage(msg);            }        } catch (JSONException e) {            e.printStackTrace();            if(mHandler!=null)            {                Message msg=new Message();                msg.obj="登录失败";                msg.arg1=mHandlerOrg1;                msg.arg2=-1;                msg.what=0;                mHandler.sendMessage(msg);            }        }        //不获取 info//        String get_user_info_url=getUserInfo(access_token,openid);//        WXGetUserInfo(get_user_info_url);    }

 

微信支付篇

1.app支付

  好像没有什么问题,直接过了。

2.公众号支付

  一直报 chooseWxpay:fail。

原因:1.支付目录配置错误,必须精确到最后一级。

          2.请注意timestamp 这个参数,后台(C#)是timeStamp  S大写,但在JS端timestamp。S小写

转载于:https://www.cnblogs.com/shikyoh/p/4505800.html

你可能感兴趣的文章
每日英语:There's No Avoiding Google+
查看>>
面试题(1)
查看>>
halcon学习笔记——(8)由标定板得到测量平面位姿
查看>>
css中导入样式表和链接样式表有什么区别
查看>>
排序算法(牢记)
查看>>
昨天开发引入的两个错误--Parcelable
查看>>
ylb:exists(存在)的应用实例
查看>>
[oracle] 系统权限管理
查看>>
图片内容保存到数据库,并从数据库里获取图片
查看>>
JavaScript 时间、格式、转换及Date对象总结
查看>>
令人作呕的OpenSSL
查看>>
计算机中的信息=位+上下文(转)
查看>>
angularjs中 *.min.js.map 404的问题
查看>>
Codeforces Gym 100342C Problem C. Painting Cottages 暴力
查看>>
WPF中Label使用StringFormat
查看>>
Open Live Writer
查看>>
FPGA功耗那些事儿(转载)
查看>>
建造者模式(屌丝专用)
查看>>
Google 地图 API V3 之控件
查看>>
读写文件:每次读入大文件里的一行、读写.CSV文件
查看>>