关于微信公众号支付获取用户openId的方法
来源:互联网 发布:sql增删改查面试题 编辑:程序博客网 时间:2024/06/05 03:36
关于微信公众号支付获取用户openId的方法
说明
内容是在参考了其他博主的内容后加上自己遇到的问题进行了整理,如果有什么地方有错误还望广大博友及时指。
代码块
代码块语法遵循标准markdown代码,例如:
/*** 公众号支付时获取用户openId* 1.首先要想获取到微信公众号的openId,必须在微信公众平台设置一个回调授权目录(这个授权目录必须微信公众号通过微信认证才能设置)* 2.想要获取openId得先访问微信指定的地址* 3.然后微信会重定向到你在请求时填的redirect_uri参数的地址(前提是这个地址必须在回调授权目录域名下)* 4.然后可以通过request.getParameter("code")获取到唯一的code* 5.然后再通过code去指定地址获取到openId*///前端代码 var redrectUrl = "****/cust/getOpenId"; var appid = "";//微信公众号appid var wxUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=" + redrectUrl + "&response_type=code&scope=snsapi_userinfo&state="+ $("#cashin_id").val() + "#wechat_redirect";/* scope:应用授权作用域 snsapi_base:不弹出授权页面,直接跳转,只能获取用户openid snsapi_userinfo:弹出授权页面,可通过openid拿到昵称、性别、所在地 state:这里是微信重定向后要传递的参数(这个参数只支持英文字母和数字)。比如你可以把自己的订单号传过去,然后通过request.getParameter("state")获取 */ //请求指定的微信地址 location.href = wxUrl;//后端代码@RequestMapping(value = "/cust/getOpenId",method = RequestMethod.POST)public void getOpenId(){ String code = request.getParameter("code"); logger.info("^^^^^^^^^^CODE^^^^^^^^" + code); String openId = ""; //根据code获取openId if (code != null && EqualsUtils.isNotEquals("", code)) { String state = request.getParameter("state"); orderId = Long.parseLong(state); logger.info("^^^^^^^^^^state^^^^^^^^" + state); openId = getOpenId(code); logger.info("=========openId========" + openId); }else { orderId = Long.parseLong(request.getParameter("orderId")); }}/** * 根据微信返回的code获取公众号的用户信息 * @param code 微信重定向后发返回的code * @return 用户的openId */private String getOpenId(String code) { String appid = "";//微信公众号appid String secret = "";//微信公众号密钥 String oauth2_url = "https://api.weixin.qq.com/sns/oauth2/access_token? appid=" + appid + "&secret=" + secret + "&code=" + code + "&grant_type=authorization_code"; JSONObject result = HttpRequestUtils.postData(oauth2_url, null); if (result == null) { logger.info("^^^^^^^^^获取用户openId失败^^^^^^^^^^"); return null; } Object errorCode = result.get("errcode"); if (errorCode != null) { logger.info("=========code不合法=============="); return null; }else { String openId = result.getString("openid"); logger.info("openId:"+openId); return openId; }}
阅读全文
0 0
- 关于微信公众号支付获取用户openId的方法
- 微信公众号支付之openID的获取
- 微信公众平台实现获取用户OpenID的方法
- 微信公众平台实现获取用户OpenID的方法
- 公众号获取用户的openid,php批量获取微信公众号openid
- 微信公众号获取用户openid
- 微信公众号获取用户的openid
- 微信公众号支付 (一、获取openId)
- 微信开发-公众号支付(1)-获取openid
- 微信公众平台 获取用户openid
- 获取微信公众平台的用户openid
- 微信公众号网页授权获取用户openid
- 微信公众号开发-微信网页授权获取用户openid以及用户信息的步骤
- 微信公众号开发之获取微信用户的openID
- 微信公众号开发-微信网页授权获取用户openid以及用户信息的步骤
- 微信公众平台获取“openid”的方法
- 微信公众号开发访问第三方网页获取用户的openid
- 微信公众号开发之获取用户唯一的openid
- php-使用哈希对象缓存
- mysql数据库转sqlite.db数据库
- 深入理解Servlet
- 手把手教你使用Systrace(一)
- JavaScript学习笔记_尾调用优化
- 关于微信公众号支付获取用户openId的方法
- LevelDB使用指南
- 零基础学图形学(11) 几何知识——球坐标和三角函数
- Java面向对象习题
- 【bzoj3012】[Usaco2012 Dec]First!
- 关于经常遇到的tomcat内存溢出问题
- 马云你当初UT了没?
- Android 使用AIDL跨进程通信(二)--传递自定义对象
- Cookie注入实战(非SQL注入)