From f0f58829c5c8dd9b249f594526f01fa957cbdd59 Mon Sep 17 00:00:00 2001 From: yn147 <2270338776@qq.com> Date: 星期三, 12 四月 2023 18:03:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 171 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java b/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java new file mode 100644 index 0000000..cc0fbd5 --- /dev/null +++ b/src/main/java/com/qxueyou/scc/wx/service/impl/WechatService.java @@ -0,0 +1,171 @@ +package com.qxueyou.scc.wx.service.impl; + +import com.alibaba.druid.util.HttpClientUtils; +import com.alibaba.druid.util.StringUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.qxueyou.scc.base.model.Result; +import com.qxueyou.scc.base.service.ICacheService; +import com.qxueyou.scc.teach.student.model.StuStudent; +import com.qxueyou.scc.wx.service.IWechatService; +import com.qxueyou.scc.wx.utils.HttpClientUtil; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.io.IOException; +import java.net.URI; +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +@Service +public class WechatService implements IWechatService { + +// @Autowired +// IUserService userService; + + /** + * 灏忕▼搴廰ppID + */ + @Value("${wx.appId}") + private String appId; + + + /** + * 灏忕▼搴弒ecret + */ + @Value("${wx.secret}") + private String secret; + + + + @Autowired + private ICacheService cacheService; + + private final Logger logger = LogManager.getLogger(); + + + @Override + public JSONObject getSessionKeyOrOpenId(String code) { + String requestUrl = "https://api.weixin.qq.com/sns/jscode2session"; + Map<String, String> requestUrlParam = new HashMap<>(); + // https://mp.weixin.qq.com/wxopen/devprofile?action=get_profile&token=164113089&lang=zh_CN + //灏忕▼搴廰ppId + requestUrlParam.put("appid", appId); + //灏忕▼搴弒ecret + requestUrlParam.put("secret", secret); + //灏忕▼搴忕杩斿洖鐨刢ode + requestUrlParam.put("js_code", code); + //榛樿鍙傛暟 + requestUrlParam.put("grant_type", "authorization_code"); + //鍙戦�乸ost璇锋眰璇诲彇璋冪敤寰俊鎺ュ彛鑾峰彇openid鐢ㄦ埛鍞竴鏍囪瘑 + JSONObject jsonObject = JSON.parseObject(HttpClientUtil.doPost(requestUrl, requestUrlParam)); + return jsonObject; + } + + @Override + public Result getNumber(String tonken, String number) { + JSONObject jsonCode = new JSONObject(); + + jsonCode.put("code",number); + + + String resPhone = HttpClientUtil.doPostUrl("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + tonken, jsonCode); + + if(StringUtils.isEmpty(resPhone) || !resPhone.contains("phone_info") || !resPhone.contains("phoneNumber")){ + return new Result(false,"寰俊瀹樻柟淇敼浜嗗皬绋嬪簭鑾峰彇鐢ㄦ埛鎵嬫満鍙风爜鐩稿叧鎺ュ彛锛�"); + } + JSONObject resPhoneInfo = JSON.parseObject(resPhone); + JSONObject phoneInfo=resPhoneInfo.getJSONObject("phone_info"); + System.out.println(resPhoneInfo); + System.out.println(phoneInfo); + String phoneNumber = phoneInfo.get("phoneNumber").toString(); + + return new Result(true,"鑾峰彇鎵嬫満鍙锋垚鍔�",phoneNumber); +// String requestUrl = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="+tonken+jsonObject.toJSONString(); + +// Map<String, String> requestUrlParam = new HashMap<>(); + + + +// requestUrlParam.put("code", number); + +// JSONObject s =JSON.parseObject(HttpClientUtil.doPost(requestUrl)); + +// return s; + } + + @Override + public JSONObject gettoken(String appid, String secret) { + String requestUrl = "https://api.weixin.qq.com/cgi-bin/token"; + + Map<String, String> requestUrlParam = new HashMap<>(); + + requestUrlParam.put("grant_type", "client_credential"); + + requestUrlParam.put("appid", appid); + + requestUrlParam.put("secret", secret); + + JSONObject s = JSON.parseObject(HttpClientUtil.doGet(requestUrl, requestUrlParam)); + + return s; + } +// private String getWechatHeadImgUrl(String unionId) { +// WechatUserDO wxUser = this.template.findOne(Query.query(condition().and("unionId").is(unionId)), WechatUserDO.class); +// return wxUser.getHeadImgUrl(); +// } + +// @Override +// public Result isBindWx(String userId) { +// UserStudentDO studentDO = read(UserStudentDO.class, userId); +// boolean status = false; +// if (StringUtils.isNotBlank(studentDO.getUnionId())) { +// status = true; +// } +// String url = ""; +// if (status) { +// url = getWechatHeadImgUrl(studentDO.getUnionId()); +// } +// return new Result(true, "status", status, "url", url); +// } +// +// public Result getSignature(String url) { +// try { +// long timestamp = System.currentTimeMillis() / 1000; +// String randomStr = RandomUtils.getRandomStr(); +// //杩滅▼璋冪敤鑾峰彇ticket +//// String jsapiTicket ="";//getJsapiTicket(false); +// RestTemplate restTemplate = new RestTemplate(); +// +// String jsapiTicket = restTemplate.getForObject("http://192.168.1.111/job/ticket", String.class); +// +// String signature = SHA1.genWithAmple("jsapi_ticket=" + jsapiTicket, +// "noncestr=" + randomStr, "timestamp=" + timestamp, "url=" + url); +// WxJsapiSignature jsapiSignature = new WxJsapiSignature(); +// jsapiSignature.setAppId(wxProperties.getAppId()); +// jsapiSignature.setTimestamp(timestamp); +// jsapiSignature.setNonceStr(randomStr); +// jsapiSignature.setUrl(url); +// jsapiSignature.setSignature(signature); +// return new Result(true, jsapiSignature); +// } catch (Exception e) { +// log.error(e, e); +// return new Result(false, "鑾峰彇绛惧悕澶辫触"); +// } +// } + +// @Override +// public String getOpenId(String userId) { +// UserStudentDO user = read(UserStudentDO.class, userId); +// +// return user.getOpenId(); +// } + + +} -- Gitblit v1.8.0