| | |
| | | import com.dy.pipIrrGlobal.pojoSe.SeCodeVerify; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeOpenId; |
| | | import com.dy.pipIrrGlobal.voSe.VoClientWechat; |
| | | import com.dy.pipIrrSell.wechatpay.PayInfo; |
| | | import com.dy.pipIrrWechat.client.dto.CodeLoginDTO; |
| | | import com.dy.pipIrrWechat.client.dto.CodeVerifyDTO; |
| | | import com.dy.pipIrrWechat.result.WechatResultCode; |
| | | import com.dy.pipIrrWechat.sms.AliyunSmsSv; |
| | | import com.dy.pipIrrWechat.sms.RandomCode; |
| | | import com.dy.pipIrrWechat.util.RestTemplateUtil; |
| | | import com.dy.pipIrrWechat.wechatpay.PayInfo; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import jakarta.validation.Valid; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | private final ClientSv clientSv; |
| | | private final AliyunSmsSv aliyunSmsSv; |
| | | private final RestTemplateUtil restTemplateUtil; |
| | | private final String privateCertFileName = PayInfo.privateCertFileName; |
| | | private final String appid = PayInfo.appid; |
| | | private final String secret = PayInfo.secret; |
| | | //private final String appid = PayInfo.appid; |
| | | //private final String secret = PayInfo.secret; |
| | | private final String mchid = PayInfo.mchid; |
| | | private final String schema = PayInfo.schema; |
| | | private final String signType = PayInfo.signType; |
| | |
| | | * @throws IOException |
| | | */ |
| | | @PostMapping(path = "code_login", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | public BaseResponse<VoClientWechat> codeLogin(@RequestBody @Valid CodeLoginDTO po, BindingResult bindingResult) throws IOException { |
| | | public BaseResponse<JSONObject> codeLogin(@RequestBody @Valid CodeLoginDTO po, BindingResult bindingResult) throws IOException { |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | |
| | | |
| | | // 登录凭证校验 |
| | | Map<String, Object> queryParams = new HashMap<>(); |
| | | queryParams.put("appid", appid); |
| | | queryParams.put("secret", secret); |
| | | queryParams.put("appid", PayInfo.appid); |
| | | queryParams.put("secret", PayInfo.secret); |
| | | queryParams.put("js_code", code); |
| | | queryParams.put("grant_type", grantType); |
| | | Map<String, String> headerParams = new HashMap<>(); |
| | | JSONObject job = restTemplateUtil.get(loginUrl, queryParams, headerParams); |
| | | |
| | | if(job.containsKey("errmsg ")) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.INVALID_CODE.getMessage()); |
| | | } |
| | | |
| | | String openId = job.getString("openid"); |
| | | if(openId == null) { |
| | |
| | | } |
| | | |
| | | try { |
| | | JSONObject job_client = new JSONObject(); |
| | | VoClientWechat res = clientSv.getSimpleClientInfo(null, openId); |
| | | return BaseResponseUtils.buildSuccess(res); |
| | | if(res != null) { |
| | | job_client.put("client", res); |
| | | } else { |
| | | VoClientWechat voClientWechat = new VoClientWechat(); |
| | | job_client.put("client", voClientWechat); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(job_client); |
| | | } catch (Exception e) { |
| | | log.error("查询农户异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | |
| | | if(phoneNumber == null || phoneNumber.length() <= 0) { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.PHONE_NUMBER_CANNOT_BE_NULL.getMessage()); |
| | | } |
| | | |
| | | Long clientId = clientSv.getClientIdByPhone(phoneNumber); |
| | | if(clientId == null) { |
| | | return BaseResponseUtils.buildErrorMsg("该手机号对应的农户不存在"); |
| | | } |
| | | |
| | | |
| | | // 生成6位验证码并转为Json格式 |
| | | String securityCode = String.valueOf(RandomCode.genCode()); |
| | |
| | | |
| | | // 校验通过,进行登录凭证校验 |
| | | Map<String, Object> queryParams = new HashMap<>(); |
| | | queryParams.put("appid", appid); |
| | | queryParams.put("secret", secret); |
| | | queryParams.put("appid", PayInfo.appid); |
| | | queryParams.put("secret", PayInfo.secret); |
| | | queryParams.put("js_code", code); |
| | | queryParams.put("grant_type", grantType); |
| | | Map<String, String> headerParams = new HashMap<>(); |
| | |
| | | String sessionKey = job.getString("session_key"); |
| | | |
| | | Long clientId = clientSv.getClientIdByPhone(phoneNumber); |
| | | String SessionId = ""; |
| | | String sessionId = ""; |
| | | if(clientId != null) { |
| | | // 添加微信用户账户记录 |
| | | SeOpenId seOpenId = new SeOpenId(); |
| | |
| | | //Long SessionId = clientSv.addOpenId(seOpenId); |
| | | Long rec = clientSv.addOpenId(seOpenId); |
| | | if(rec != null) { |
| | | SessionId = String.valueOf(rec); |
| | | sessionId = String.valueOf(rec); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(SessionId); |
| | | |
| | | JSONObject job_result = new JSONObject(); |
| | | job_result.put("clientId", clientId); |
| | | job_result.put("sessionId", sessionId); |
| | | return BaseResponseUtils.buildSuccess(job_result); |
| | | |
| | | } else { |
| | | return BaseResponseUtils.buildErrorMsg(WechatResultCode.PHONE_NUMBER_IS_ERROR.getMessage()); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 解绑农户与微信的绑定,根据sessionId删除绑定记录 |
| | | * @param sessionId |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "unbind") |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public BaseResponse<Boolean> unbindWechat(@RequestParam("sessionId")Long sessionId) { |
| | | if(sessionId == null || sessionId <=0) { |
| | | return BaseResponseUtils.buildErrorMsg("sessionId无效"); |
| | | } |
| | | |
| | | Integer rec = clientSv.unbindWechat(sessionId); |
| | | if(rec == null || rec == 0) { |
| | | return BaseResponseUtils.buildErrorMsg("sessionId错误"); |
| | | } |
| | | |
| | | return BaseResponseUtils.buildSuccess(); |
| | | } |
| | | |
| | | /** |
| | | * 获取农户基本信息,小程序首页使用 |
| | | * @param sessionId |
| | | * @return |