微信支付后台获取openid

@RequestMapping(value = "/postOpenid", method = RequestMethod.POST)
@ResponseBody
public String getOpenid(@RequestParam(value = "code", required = false) String code, HttpServletRequest request,
ModelMap model) throws IOException {
System.out.println("code:" + code);
String openid = "";
List<Object> list = accessToken(code);
if (list.size() != 0) {
openid = list.get(0).toString();
}

return openid;

}

public List<Object> accessToken(String code) throws IOException {
List<Object> list = new ArrayList<Object>();
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + "   " + "&secret="
+ "   " + "&code=" + code + "&grant_type=authorization_code";
GetMethod get = null;
get = new GetMethod(url);

HttpClient client = new HttpClient();
client.getParams().setParameter("http.protocol.content-charset", "utf-8");
client.getParams().setBooleanParameter("http.protocol.expect-continue", false);
client.getHttpConnectionManager().getParams().setConnectionTimeout(30000);
client.getHttpConnectionManager().getParams().setSoTimeout(30000);

get.addRequestHeader("Content-type", "te|xt/html;charset=UTF-8");

int statusCode = 0;
try {
statusCode = client.executeMethod(get);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

if (statusCode == 200) {
InputStream resInputStream = null;
try {
resInputStream = get.getResponseBodyAsStream();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(resInputStream, "utf-8"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("line:" + line);
JSONObject jsonObject = new JSONObject();
try {
jsonObject = JSONObject.fromObject(line);
String openid = jsonObject.getString("openid");
String access_token = jsonObject.getString("access_token");
System.out.println("openid:" + openid);
list.add(openid);
list.add(access_token);
} catch (Exception e) {
jsonObject = JSONObject.fromObject(line);
String errcode = jsonObject.getString("errcode");
System.out.println("errcode:" + errcode);
}
}
}
return list;

}

时间: 2024-10-04 21:58:42

微信支付后台获取openid的相关文章

微信支付之获取code

微信支付之获取code, 1:访问下面的连接(自己拼) 2:去回调地址里拿code https://open.weixin.qq.com/connect/oauth2/authorize?appid=公众号APPID&redirect_uri=你要跳转的链接地址(在此地址拿用户code)&response_type=code&scope=snsapi_base#wechat_redirect appid=公众号APPID redirect_uri=你要跳转的链接地址-可以是前台地址

微信公众号获取openid

方式一:通过网页授权的方式获取,前提是公众号已获得网页授权 公众号获得网页授权后,配置回调域名: 当用户点击某个菜单事件时,调用项目中的xxx.jsp或xxx.html文件(http://www.xxx.com/web/wx1.jsp),内容如下: appid:公众号的:appid <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8&q

微信网页授权-公众号支付(获取openid、用户信息等)

名词解释: openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 业务功能描述:实现H5页面可以在微信浏览器里面进行微信支付,所以需要使用微信公号支付功能才能实现, 微信公众号支付功能需要用户的openid,所以进入页面时需要通过网页授权首先获取到openid. 支付流程大致流程如下: 1,进入支付页面时,请求以下链接获取code appid 是 公众号的唯一标识 https://open.weixin.qq.com/connec

NET实现微信分享和获取openid

VS2010开发,MVC3架构. 通过调用微信官方接口实现获取openid,和分享好友功能,实现获取signature和jsapi_ticket,并在服务端进行缓存AccessToken和jsapi_ticket. 说明: 1.配置服务号网页授权获取用户基本信息,这个要和获取openid后跳转的地址域名一直,比如跳转地址为:http://waptest.Alec.com/nihao/index.com ,那么就配置成:waptest.Alec.com: 2.把服务号的appid和appsecre

微信商城中使用微信支付接口获取用户地址

授人以鱼不如授人以渔 微信支付获取用户地址 使用微信获取地址信息是和微信支付一道申请的,微信支付申请通过,就可以使用该功能. 微信商城中,使用微信支付获取用户的收货地址,可以省略用户输入地址信息的繁复流程,提高用户体验. 但是可能是因为牵扯到用户隐私,所以在使用过程中,需要用户自己主动选择使用该功能,并且是通过点击的操作,我们才可以获取到用户的收货地址,这一点是要注意的. 操作流程如下: 1.用户打开购物车页面,点击结算,跳转到一个微信的oauth2的页面,地址为:https://open.we

微信小程序:java后台获取openId

一.功能描述 openId是某个微信账户对应某个小程序或者公众号的唯一标识,但openId必须经过后台解密才能获取(之前实现过前台解密,可是由于微信小程序的种种限制,前台解密无法在小程序发布后使用) 二.实现流程 1. 获取微信用户的登录信息: 2. 将encryptedData中的数据作为参数传给java后台 3. java后台进行解密 三.代码实现 1. 后台的解密代码 1 /** 2 * decoding encrypted data to get openid 3 * 4 * @para

微信公众平台获取“openid”的方法

微信公众平台的所谓"openid"分为两种: [第一种openid]为利用交互的xml中获取: <FromUserName><![CDATA[fromUser]]></FromUserName> 每个用户针对每个微信公众平台唯一,即同一个用户对不同微信公众平台[第一种openid]是不同的: 个人倾向称之为fakeid,获取不需要授权页面. [第二种openid]为利用微信提供的OAuth2.0接口(高级接口需要为认证的服务号) 每个用户唯一,也就是

微信小程序获取openid

wx.login({ success: function(res) { //首先获取用户code //res.code wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session', data: { appid: appid,//填入你的id secret: appsecret,//secret js_code: res.code, grant_type: 'authorization_code' }, method: 'GET

微信支付(.NET版)

前段时间做了网页版微信支付,遇到很多问题,不过最终还是解决了,现在在这里记录下开发流程以及说明,给其他人一些参考. 一.准备工作 首先肯定得先要开通微信支付功能,之前开通微信支付需要三万的押金的,现在不需要了,所以就做了这个功能. 要进行微信支付开发,需要在公众号后台和微信商户后台进行相关的设置. 1.开发目录配置 微信支付需要在公众号后台(微信支付=>开发配置)进行配置支付授权目录.这里授权目录需要是线上地址,也就是可以通过互联网访问到的地址,微信支付系统需要能够通过互联网访问到你的地址. 微