@Service
public class WCTestService {
@Autowired
WeChatService weChatService = new WeChatService();
public SchemeDto getSchemeTest() {
WechatSchemeReq req = new WechatSchemeReq();
SchemeDto schemeDto = new SchemeDto();
// 第一步 校验时间是否合法
// Long now = System.currentTimeMillis();
// if (req.getCurrentTime() == null || (now - req.getCurrentTime()) > 5000) {
// schemeDto.setCode(1001);
// schemeDto.setMsg("time expire");
// return schemeDto;
// }
// 第二步 校验 originId 是否是业务方自己的
// String originId = "1222"; // 此处是业务方自己的小程序原始 id
// if (!originId.equals(req.getOriginId())) {
// schemeDto.setCode(1002);
// schemeDto.setMsg("origin error");
// return schemeDto;
// }
//
// // 第三步 校验 sign 是否合法
// String str="currentTime="+req.getCurrentTime()+"&originId="+req.getOriginId();
// String sign= DigestUtils.md5Hex(str.toLowerCase());
// if (!sign.equals(req.getSign())) {
// schemeDto.setCode(1003);
// schemeDto.setMsg("sign error");
// return schemeDto;
// }
// 第四步 调用微信 API1 获取 accessToken
//
// String accessToken = "";
// accessToken = weChatService.getAccessToken();
// System.out.println(accessToken+"12312312");
// try {
// Map<String, String> httpParamMap = new HashMap<>();
// httpParamMap.put("grant_type", "client_credential");
// httpParamMap.put("appid", "123"); // 请填写业务方自己的
// httpParamMap.put("secret", "123123");
// // 请填写业务方的
// String response = HttpUtils.getRequest("https://api.weixin.qq.com/cgi-bin/token",
// httpParamMap);
// JSONObject object = JSON.parseObject(response);
// if (!object.containsKey("access_token")) {
// accessToken = object.getString("access_token");
// }
// } catch (Exception e) {
// log.error("sendMessage error.", e);
// }
// 第五步 调用微信 API2 获取 scheme
// String host = "https://api.weixin.qq.com/wxa/generatescheme?access_token=" + accessToken;
//accessToken 为第四步调用微信的结果
Map<String, Object> map = new HashMap<>();
JumpInfo jumpInfo = new JumpInfo();
String Path = req.getPath();
String query = req.getQuery();
jumpInfo.setPath(Path);
jumpInfo.setQuery(query);
map.put("jump_wxa", jumpInfo);
map.put("expire_time", (System.currentTimeMillis() / 1000) + 24 * 60 * 60);
map.put("is_expire", true);
String result = weChatService.getURLScheme();
System.out.println(result);
JSONObject resultJsonObject = JSON.parseObject(result);
System.out.println("这是obj对象"+resultJsonObject);
if (resultJsonObject != null &&
resultJsonObject.containsKey("errcode") && resultJsonObject.get("errcode").equals(0)) {
if (resultJsonObject.get("openlink") != null) {
String scheme = resultJsonObject.get("openlink").toString();
schemeDto.setCode(0);
schemeDto.setMsg("success");
SchemeDto.Result r = new SchemeDto.Result();
r.setScheme(scheme);
schemeDto.setResult(r);
// Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
// String json = gson.toJson(schemeDto, new TypeToken<SchemeDto>(){}.getType());
System.out.println(schemeDto);
return schemeDto;
}
}
//如果走到这里 没有拿到微信的结果 辛苦分析您微信结果的返回
schemeDto.setCode(1005);
schemeDto.setMsg("error");
return schemeDto;
}
}
微信小程序获取urlscheme解决办法
最新推荐文章于 2024-07-12 14:58:50 发布