app.js
App({
ROOT_URL: 'http://localhost:8080/', 这个是服务器路径
appId:"这个位置要写自己的appid",
secret:"这个位置是自己的小程序秘钥",
})
index.js
//接口路径
var baseURL = getApp().ROOT_URL
getOpenid: function() {
var that = this;
// 登录主页
wx.login({
success: res => {
if (res.code) {
wx.request({
url: baseURL + 'jsp/appSubscriber/getOpenId',//对应后台接口
data: {
appid: appId,
secret: secret,
js_code: res.code
},
method: 'GET',
success: function(result) {
//console.log(result.data.result);//打印后台返回的信息
wx.setStorageSync("openid", result.data.result.openid);
}
})
} else {
console.log('登录失败! ' + res.errMsg)
}
}
})
},
})
后台代码
AppSubscriberController层
@Controller
@RequestMapping({ "/jsp/appSubscriber" })
public class AppSubscriberController {
@Autowired
private AppSubscriberService appSubscriberService;
/**
*获取openID
*@return
*/
@ResponseBody
@RequestMapping(value = "getOpenId", method = RequestMethod.GET)
public RestResult getOpenId(HttpServletRequest request, Subscriber subscriber) {
RestResult restResult = null;
Map<String, Object> result = appSubscriberService.getOpenId(request, subscriber);
try {
restResult = new RestResult(RestStatus.SUCCESS, "添加成功", result);
} catch (Exception e) {
e.printStackTrace();
restResult = new RestResult(RestStatus.ERROR, "添加异常");
}
return restResult;
}
}
Service层
@Service
@Transactional //事务处理
public class AppSubscriberService {
@Autowired
private AppSubscriberMapper appSubscriberMapper;
/**
* 通过微信接口获取openid
* @param request
* @param subscriber
* @return
*/
public Map<String, Object> getOpenId(HttpServletRequest request, Subscriber subscriber) {
Map<String, Object> result = new HashMap<String, Object>();
String appid = request.getParameter("appid"); //获取小程序的appid
String secret = request.getParameter("secret"); //获取小程序的秘钥
String js_code = request.getParameter("js_code");
// 固定写法;获取微信的接口路径
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
String param = "appid=" + appid + "&secret=" + secret + "&js_code=" + js_code
+ "&grant_type=authorization_code";
// 接收传回来的值
JSONObject resultJson = JSONObject.fromObject(UsrMngController.sendPost(url, param));
// 获取openid
String openid = resultJson.getString("openid");
request.getSession().setAttribute("openid", openid);
result.put("openid", openid);
return result;
}
}