业务中有调用微信接口的地方,没有学习过,看着官方文档知道该如何调用了
需要传入appid及app_secret进行校验
RestTemplate 是由 Spring 提供的一个 HTTP 请求工具,在传统的项目架构中,因为不涉及到服务之间的调用,RestTemplate 的使用可能比较少,但是现在大部分项目是微服务项目
//get请求
String url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+request.getAppId()+"&secret="+request.getAppSecret();
String resultStr = new RestTemplate().getForObject(url,String.class);
/*
(tokenUrl, paramsMap, String.class)这三个参数分别代表 请求地址、请求参数、HTTP响应转换被转换成的对象类型。
*/
//post带请求参数
String tokenUrl="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token="+token;
String str = restTemplate.postForObject(tokenUrl, paramsMap, String.class);
/*编辑*/
@Override
public Object updateOff(WechatOfficialAccounts request) {
//调用接口
String url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+request.getAppId()+"&secret="+request.getAppSecret();
String resultStr = new RestTemplate().getForObject(url,String.class);
if (resultStr.contains("7200")){
//判断chooseStatus是否为选中状态
if (request.getChooseStatus().equals("1")){
UpdateWrapper<WechatOfficialAccounts> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("choose_status","1").set("choose_status", "0");
wechatOfficialAccountsMapper.update(null,updateWrapper);
}
//执行更新方法
wechatOfficialAccountsMapper.updateById(request);
return WebTools.returnVal(1000,Sys.SUCCESS);
}else {
return WebTools.returnVal(9997,"当前所属appid及app_secret不正确,请确认后再填!");
}
}
/**
* 创建临时带参数二维码(数字)
*/
@Override
public Object addTemporaryQRcodeN(WechatQrcode request){
RestTemplate restTemplate = new RestTemplate();
//获取accessToken
String token="48_fF173Gv3yj8Q_2D9stkSAODbz5CZQM505Soln0m3Pk5Z7Q_mVXhAHEnLpOeNT5E-zgCDyycIgr1Jok-5vP_TAJiuOsT1bKAmud7Ij5t3wApAbdtG1vljIYW7DzyC86uATyoouwagMtu3nPbOIJJjAGAOPP";
String tokenUrl="https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token="+token;
Map<String, Integer> intMap = new HashMap<String, Integer>();
intMap.put("scene_id", request.getSceneId());
Map<String, Map<String, Integer>> mapMap = new HashMap<String, Map<String, Integer>>();
mapMap.put("scene", intMap);
Map<String, Object> paramsMap = new HashMap<String, Object>();
paramsMap.put("expire_seconds", request.getExpireSeconds());
paramsMap.put("action_name", "QR_SCENE");
paramsMap.put("action_info", mapMap);
String str = restTemplate.postForObject(tokenUrl, paramsMap, String.class);
JSONObject qrcode = JSONObject.parseObject(str);
String ticket = (String)qrcode.get("ticket");
String url="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="+ticket;
request.setTicket(ticket);
request.setUrl(url);
log.info(String.valueOf(request));
return wechatQrcodeMapper.insert(request);
}