微信小程序二维码获取
This commit is contained in:
parent
be11078984
commit
09623068b6
|
|
@ -14,6 +14,8 @@ import com.ghy.system.domain.SysDeptConfig;
|
||||||
import com.ghy.system.service.ISysDeptConfigService;
|
import com.ghy.system.service.ISysDeptConfigService;
|
||||||
import com.ghy.worker.domain.Worker;
|
import com.ghy.worker.domain.Worker;
|
||||||
import com.ghy.worker.service.WorkerService;
|
import com.ghy.worker.service.WorkerService;
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
@ -157,6 +159,41 @@ public class WxController extends BaseController {
|
||||||
return wxUser.getString("openid");
|
return wxUser.getString("openid");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/unlimited/wxacode")
|
||||||
|
@ResponseBody
|
||||||
|
public AjaxResult getUnlimitedWxacode(@RequestBody JSONObject requestObj, HttpServletRequest request) throws Exception {
|
||||||
|
String base64Code = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
String scene = requestObj.getString("scene");
|
||||||
|
String envVersion = requestObj.getString("env_version");
|
||||||
|
String from = request.getHeader("from");
|
||||||
|
String deptId = request.getHeader("deptId");
|
||||||
|
|
||||||
|
SysDeptConfig sysDeptConfig = sysDeptConfigService.selectByDeptId(Long.parseLong(deptId));
|
||||||
|
String token = null;
|
||||||
|
if("customer".equals(from)) {
|
||||||
|
token = getAccessToken(sysDeptConfig.getWxAppId(), sysDeptConfig.getWxSecret());
|
||||||
|
} else {
|
||||||
|
token = getAccessToken(sysDeptConfig.getServWxAppId(), sysDeptConfig.getServWxSecret());
|
||||||
|
}
|
||||||
|
String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token;
|
||||||
|
JSONObject params = new JSONObject();
|
||||||
|
// params.put("access_token", token);
|
||||||
|
params.put("scene", scene);
|
||||||
|
params.put("env_version", envVersion);
|
||||||
|
|
||||||
|
byte[] byteRes = HttpUtils.sendPostForBuffer(url, params.toJSONString());
|
||||||
|
base64Code = new String(Base64.encodeBase64(byteRes));
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
logger.error(ExceptionUtils.getStackTrace(e));
|
||||||
|
return AjaxResult.error(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return AjaxResult.success("", base64Code);
|
||||||
|
}
|
||||||
|
|
||||||
private static String getAccessToken(String appId, String appSecret){
|
private static String getAccessToken(String appId, String appSecret){
|
||||||
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appSecret;
|
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appSecret;
|
||||||
String result = HttpUtils.sendGet(url);
|
String result = HttpUtils.sendGet(url);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
package com.ghy.common.utils.http;
|
package com.ghy.common.utils.http;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.*;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.net.ConnectException;
|
import java.net.ConnectException;
|
||||||
import java.net.SocketTimeoutException;
|
import java.net.SocketTimeoutException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
@ -23,7 +19,7 @@ import com.ghy.common.utils.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用http发送方法
|
* 通用http发送方法
|
||||||
*
|
*
|
||||||
* @author clunt
|
* @author clunt
|
||||||
*/
|
*/
|
||||||
public class HttpUtils
|
public class HttpUtils
|
||||||
|
|
@ -189,6 +185,63 @@ public class HttpUtils
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 向指定 URL 发送POST方法的请求
|
||||||
|
*
|
||||||
|
* @param url 发送请求的 URL
|
||||||
|
* @param param 请求体内容
|
||||||
|
* @return 字节数组
|
||||||
|
*/
|
||||||
|
public static byte[] sendPostForBuffer(String url, String param) {
|
||||||
|
PrintWriter out = null;
|
||||||
|
InputStream in = null;
|
||||||
|
byte[] result = null;
|
||||||
|
try {
|
||||||
|
String urlNameString = url;
|
||||||
|
log.info("sendPost - {}", urlNameString);
|
||||||
|
URL realUrl = new URL(urlNameString);
|
||||||
|
URLConnection conn = realUrl.openConnection();
|
||||||
|
conn.setRequestProperty("accept", "*/*");
|
||||||
|
conn.setRequestProperty("connection", "Keep-Alive");
|
||||||
|
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||||||
|
conn.setRequestProperty("Accept-Charset", "utf-8");
|
||||||
|
conn.setRequestProperty("contentType", "utf-8");
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setDoInput(true);
|
||||||
|
out = new PrintWriter(conn.getOutputStream());
|
||||||
|
out.print(param);
|
||||||
|
out.flush();
|
||||||
|
in = conn.getInputStream();
|
||||||
|
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
|
||||||
|
byte[] data = new byte[1024];
|
||||||
|
int readLength = 0;
|
||||||
|
while ((readLength = in.read(data, 0, data.length)) > 0) {
|
||||||
|
swapStream.write(data, 0, readLength);
|
||||||
|
}
|
||||||
|
result = swapStream.toByteArray();
|
||||||
|
} catch (ConnectException e) {
|
||||||
|
log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
|
||||||
|
} catch (SocketTimeoutException e) {
|
||||||
|
log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
if (out != null) {
|
||||||
|
out.close();
|
||||||
|
}
|
||||||
|
if (in != null) {
|
||||||
|
in.close();
|
||||||
|
}
|
||||||
|
} catch (IOException ex) {
|
||||||
|
log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public static String sendSSLPost(String url, String param)
|
public static String sendSSLPost(String url, String param)
|
||||||
{
|
{
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
|
|
@ -271,4 +324,4 @@ public class HttpUtils
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue