在做小程序中,有时候需要前端调用后端的接口,后端调用微信的API。以达到微信认证,授权,获取用户的信息等。
现在对java后端微信小程序接口做一下总结。加深记忆,大家一起参考学习。
一、微信接口:https://api.weixin.qq.com/
1、获取微信的access_token接口
/**
* 获取微信token
* @param appid
* @param secret
* @return
*/
@GetMapping("cgi-bin/token")
Map gettoken(@RequestParam("appid") String appid, @RequestParam("secret") String secret, @RequestParam("grant_type") String grant_type);
2、授权登录接口
/**
* 小程序登录
*
* @param appid
* @param secret
* @param grant_type
* @param jsCode
* @return map {"session_key": "", "openid": ""}
*/
@GetMapping("sns/jscode2session")
Map jscode2session(@RequestParam("appid") String appid, @RequestParam("secret") String secret, @RequestParam("grant_type") String grant_type, @RequestParam("js_code") String jsCode);
3、获取微信用户信息接口
/**
* 根据access_token和code获取微信登录信息
* @param access_token
* @param code
* @return
*/
@GetMapping("cgi-bin/user/getUserInfo")
Map getuserinfo(@RequestParam("access_token") String access_token, @RequestParam("code") String code);
4、获取微信绑定手机号接口
/**
* 获取微信用户手机号
*
* @param bodyMap
* @param accessToken
* @return
*/
@PostMapping("wxa/business/getuserphonenumber")
Map getPhone(@RequestParam("access_token") String accessToken, @RequestBody Map bodyMap);
5、生成特定路径微信二维码,用户通过微信扫描跳转
/**
* 创建特定路径的微信小程序二维码
*
* @param bodyMap {"path":"", "with": 430}
* @param accessToken
* @return 返回的图片 Buffer
*/
@PostMapping("cgi-bin/wxaapp/createwxaqrcode")
Response createwxaqrcode(@RequestParam("access_token") String accessToken, @RequestBody Map bodyMap);
6、生成短链接接口,用户可以点击链接进行跳转。
/**
* 通过短信链接跳转
* 获取generate_urllink
* @param accessToken
* @param bodyMap
* @return
*/
@PostMapping("wxa/generate_urllink")
Map generateUrllink(@RequestParam("access_token") String accessToken, @RequestBody Map bodyMap);
二企业微信接口:https://qyapi.weixin.qq.com/cgi-bin
1、获取企业微信access_token接口
/**
* 获取微信token
* @param corpid
* @param corpsecret
* @return
*/
@GetMapping("gettoken")
Map gettoken(@RequestParam("corpid")String corpid, @RequestParam("corpsecret")String corpsecret);
2、授权登录接口
/**
* 授权登录接口
* @param access_token
* @param code
* @param grant_type
* @return
*/
@GetMapping("/miniprogram/jscode2session")
Map getJscode2session(@RequestParam("access_token") String access_token,
@RequestParam("js_code") String code , @RequestParam("grant_type") String grant_type);
3、获取企业微信用户信息接口
/**
* 根据access_token和code获取企业微信登录信息
* @param access_token
* @param code
* @return
*/
@GetMapping("user/getuserinfo")
Map getuserinfo(@RequestParam("access_token") String access_token, @RequestParam("code") String code);