1.1.小程序端调用wx.login(),获取到微信返回的code临时凭证.2.小程序端调用我方的后台接口,Java后端调用微信的api,需要appId,appSecret,js_code,grant_type:authorization_code代码如下:
privateJSONObjectgetUserWXLoginInfo(StringwxCode){StringrequestUrl"https://api.weixin.qq.com/sns/jscode2session";MapString,StringrequestUrlParamnewHashMapString,String();requestUrlParam.put("appid",GameConstants.AppID);//开发者设置中的appIdrequestUrlParam.put("secret",GameConstants.AppSecret);//开发者设置中的appSecretrequestUrlParam.put("js_code",wxCode);//小程序调用wx.login返回的coderequestUrlParam.put("grant_type","authorization_code");//默认参数//发送post请求读取调用微信https://api.weixin.qq.com/sns/jscode2session接口获取openid用户唯一标识JSONObjectjsonObjectJSON.parseObject(UrlUtil.sendPost(requestUrl,requestUrlParam));returnjsonObject;}publicStringlogin(StringwxCode)throwsParseException{//请求微信api获取用户的openid和sessionKeyJSONObjectjsonObjectgetUserWXLoginInfo(wxCode);if(jsonObject!null!jsonObject.containsKey("openid")){returnCommon.getErrorReturn(GameMsg.CANSHU_ERROR);}Stringopenid(String)jsonObject.get("openid");StringsessionKey(String)jsonObject.get("session_key");//通过openid查询数据库是否有此用户ListUseruserListgetUserByOpenId(openid);if(userList!nulluserList.size()!0){//用户已存在if(userList.get(0).getPhone()null){jsonObject.put("phone","");}else{jsonObject.put("phone",userList.get(0).getPhone());}RedisSetter.setRedisStringDuration(openid,sessionKey,60*60);//存到redis中,设置失效时间jsonObject.put("userId",userList.get(0).getUserId());jsonObject.put("dateTime",DatetimeUtil.dateToStamp(newDate()));returnCommon.getReturn(jsonObject);}UserusernewUser();user.setOpenid(openid);userDao.insertUser(user);ListUsernewUsergetUserByOpenId(openid);if(newUser.get(0).getPhone()null){jsonObject.put("phone","");}else{jsonObject.put("phone",newUser.get(0).getPhone());}RedisSetter.setRedisStringDuration(openid,sessionKey,60*60);//存到redis中,设置失效时间jsonObject.put("userId",newUser.get(0).getUserId());jsonObject.put("dateTime",DatetimeUtil.dateToStamp(newDate()));returnCommon.getReturn(jsonObject);}http请求的工具类:packagecom.king.util;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importjava.util.Iterator;importjava.util.Map;importorg.apache.log4j.LogManager;importorg.apache.log4j.Logger;publicclassUrlUtil{privatefinalLoggerLOGLogManager.getLogger(this.getClass());/***向指定URL发送POST方法的请求**@paramurl发送请求的URL*@paramparam请求参数*@return所代表远程资源的响应结果*/publicstaticStringsendPost(Stringurl,MapString,?paramMap){PrintWriteroutnull;BufferedReaderinnull;Stringresult"";Stringparam"";IteratorStringitparamMap.keySet().iterator();while(it.hasNext()){Stringkeyit.next();param+key+""+paramMap.get(key)+"";}try{URLrealUrlnewURL(url);//打开和URL之间的连接URLConnectionconnrealUrl.openConnection();//设置通用的请求属性conn.setRequestProperty("accept","*/*");conn.setRequestProperty("connection","Keep-Alive");conn.setRequestProperty("Accept-Charset","utf-8");conn.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");//发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);//获取URLConnection对象对应的输出流outnewPrintWriter(conn.getOutputStream());//发送请求参数out.print(param);//flush输出流的缓冲out.flush();//定义BufferedReader输入流来读取URL的响应innewBufferedReader(newInputStreamReader(conn.getInputStream(),"UTF-8"));Stringline;while((linein.readLine())!null){result+line;}}catch(Exceptione){e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!null){out.close();}if(in!null){in.close();}}catch(IOExceptionex){ex.printStackTrace();}}returnresult;}}2.返回给小程序所需要的参数即可
3.原文:https://blog.csdn.net/CRR_0312/article/details/88756807
微信小程序请求微信api授权登录Java后端-微信小程序api接口调用-微信小程序ibeacon
浏览量:1900
时间:
来源:Neymar.JR
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










