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