package com.boying.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.boying.common.WeChatConfig; import com.boying.service.WXService; import com.boying.util.CommonUtil; import com.ruim.ifsp.signature.IfspSdkSecurityAtureUtil; import com.ruim.ifsp.signature.cert.IfspSdkConstants; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; /** * @author kdq * @version 1.0.0 * @ClassName WXServiceImpl.java * @Description TODO * @createTime 2023年09月11日 08:35:00 */ @Service public class WXServiceImpl implements WXService { private String APPID= WeChatConfig.APPID; private String APPSECRECT= WeChatConfig.APPSECRECT; private String GRANTTYPE= WeChatConfig.GRANTTYPE; @Override public String getOpenIdByCode(String code) { String WX_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; try { if (StringUtils.isBlank(code)) { System.out.println("code为空"); return "code为空"; } else { String requestUrl = WX_URL.replace("APPID", WeChatConfig.APPID).replace("SECRET", WeChatConfig.APPSECRECT) .replace("CODE", code).replace("authorization_code", WeChatConfig.GRANTTYPE); JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "GET", null); if (jsonObject != null) { try { // 业务操作 String access_token = jsonObject.getString("access_token"); String openId = jsonObject.getString("openid"); //拉取用户信息 //getUserMsg(access_token, openId); System.out.println("codeOpen:"+code); System.out.println("openid:"+openId); return openId; } catch (Exception e) { e.printStackTrace(); } } else { System.out.println("code无效"); return "code无效"; } } } catch (Exception e) { e.printStackTrace(); } return "error"; } @Override public Map addSign(Map map) { /* *加签 */ try { IfspSdkSecurityAtureUtil.RSASigndata(map, // "D:\\sa\\certificate09.pfx", "xtbanktest"); //测试环境 "D:\\sa\\32145bbf03c404218275bf1be2532b63.pfx", "123456"); //正式环境 } catch (Exception e) { e.printStackTrace(); } System.out.println("signAture: "+map.get(IfspSdkConstants.param_signature)); System.out.println("certId: "+map.get(IfspSdkConstants.param_certId)); Map map1 = new HashMap<>(); map1.put("signAture",map.get(IfspSdkConstants.param_signature).toString()); map1.put("certId",map.get(IfspSdkConstants.param_certId).toString()); return map1; } }