添加jsapi获取token

This commit is contained in:
yangjun 2025-06-10 09:10:17 +08:00
parent b14d02e6ef
commit 3727efbb74
10 changed files with 639 additions and 13 deletions

View File

@ -0,0 +1,180 @@
package com.nu.modules.nuEmployeesAdvisoryInfo.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.util.oConvertUtils;
import com.nu.modules.nuEmployeesAdvisoryInfo.entity.NuEmployeesAdvisoryInfo;
import com.nu.modules.nuEmployeesAdvisoryInfo.service.INuEmployeesAdvisoryInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description: 员工咨询信息
* @Author: jeecg-boot
* @Date: 2025-06-09
* @Version: V1.0
*/
@Api(tags="员工咨询信息")
@RestController
@RequestMapping("/nuEmployeesAdvisoryInfo/nuEmployeesAdvisoryInfo")
@Slf4j
public class NuEmployeesAdvisoryInfoController extends JeecgController<NuEmployeesAdvisoryInfo, INuEmployeesAdvisoryInfoService> {
@Autowired
private INuEmployeesAdvisoryInfoService nuEmployeesAdvisoryInfoService;
/**
* 分页列表查询
*
* @param nuEmployeesAdvisoryInfo
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "员工咨询信息-分页列表查询")
@ApiOperation(value="员工咨询信息-分页列表查询", notes="员工咨询信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<NuEmployeesAdvisoryInfo>> queryPageList(NuEmployeesAdvisoryInfo nuEmployeesAdvisoryInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<NuEmployeesAdvisoryInfo> queryWrapper = QueryGenerator.initQueryWrapper(nuEmployeesAdvisoryInfo, req.getParameterMap());
Page<NuEmployeesAdvisoryInfo> page = new Page<NuEmployeesAdvisoryInfo>(pageNo, pageSize);
IPage<NuEmployeesAdvisoryInfo> pageList = nuEmployeesAdvisoryInfoService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param nuEmployeesAdvisoryInfo
* @return
*/
@AutoLog(value = "员工咨询信息-添加")
@ApiOperation(value="员工咨询信息-添加", notes="员工咨询信息-添加")
@RequiresPermissions("nuEmployeesAdvisoryInfo:nu_employees_advisory_info:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody NuEmployeesAdvisoryInfo nuEmployeesAdvisoryInfo) {
nuEmployeesAdvisoryInfoService.save(nuEmployeesAdvisoryInfo);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param nuEmployeesAdvisoryInfo
* @return
*/
@AutoLog(value = "员工咨询信息-编辑")
@ApiOperation(value="员工咨询信息-编辑", notes="员工咨询信息-编辑")
@RequiresPermissions("nuEmployeesAdvisoryInfo:nu_employees_advisory_info:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody NuEmployeesAdvisoryInfo nuEmployeesAdvisoryInfo) {
nuEmployeesAdvisoryInfoService.updateById(nuEmployeesAdvisoryInfo);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "员工咨询信息-通过id删除")
@ApiOperation(value="员工咨询信息-通过id删除", notes="员工咨询信息-通过id删除")
@RequiresPermissions("nuEmployeesAdvisoryInfo:nu_employees_advisory_info:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
nuEmployeesAdvisoryInfoService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "员工咨询信息-批量删除")
@ApiOperation(value="员工咨询信息-批量删除", notes="员工咨询信息-批量删除")
@RequiresPermissions("nuEmployeesAdvisoryInfo:nu_employees_advisory_info:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.nuEmployeesAdvisoryInfoService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "员工咨询信息-通过id查询")
@ApiOperation(value="员工咨询信息-通过id查询", notes="员工咨询信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<NuEmployeesAdvisoryInfo> queryById(@RequestParam(name="id",required=true) String id) {
NuEmployeesAdvisoryInfo nuEmployeesAdvisoryInfo = nuEmployeesAdvisoryInfoService.getById(id);
if(nuEmployeesAdvisoryInfo==null) {
return Result.error("未找到对应数据");
}
return Result.OK(nuEmployeesAdvisoryInfo);
}
/**
* 导出excel
*
* @param request
* @param nuEmployeesAdvisoryInfo
*/
@RequiresPermissions("nuEmployeesAdvisoryInfo:nu_employees_advisory_info:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, NuEmployeesAdvisoryInfo nuEmployeesAdvisoryInfo) {
return super.exportXls(request, nuEmployeesAdvisoryInfo, NuEmployeesAdvisoryInfo.class, "员工咨询信息");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("nuEmployeesAdvisoryInfo:nu_employees_advisory_info:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, NuEmployeesAdvisoryInfo.class);
}
}

View File

@ -0,0 +1,199 @@
package com.nu.modules.nuEmployeesAdvisoryInfo.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 员工咨询信息
* @Author: jeecg-boot
* @Date: 2025-06-09
* @Version: V1.0
*/
@Data
@TableName("nu_employees_advisory_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_employees_advisory_info对象", description="员工咨询信息")
public class NuEmployeesAdvisoryInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**微信id*/
@Excel(name = "微信id", width = 15)
@ApiModelProperty(value = "微信id")
private java.lang.String openId;
/**微信名称*/
@Excel(name = "微信名称", width = 15)
@ApiModelProperty(value = "微信名称")
private java.lang.String wechatName;
/**联系电话*/
@Excel(name = "联系电话", width = 15)
@ApiModelProperty(value = "联系电话")
private java.lang.String tel;
/**状态 1审核中 2审核完成 3驳回 */
@Excel(name = "状态 1审核中 2审核完成 3驳回 ", width = 15)
@ApiModelProperty(value = "状态 1审核中 2审核完成 3驳回 ")
private java.lang.String status;
/**审核备注*/
@Excel(name = "审核备注", width = 15)
@ApiModelProperty(value = "审核备注")
private java.lang.String content;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**机构是否入驻0否 1是(是否入驻过)*/
@Excel(name = "机构是否入驻0否 1是(是否入驻过)", width = 15)
@ApiModelProperty(value = "机构是否入驻0否 1是(是否入驻过)")
private java.lang.String izEntry;
/**咨询人姓名*/
@Excel(name = "咨询人姓名", width = 15)
@ApiModelProperty(value = "咨询人姓名")
private java.lang.String name;
/**性别*/
@Excel(name = "性别", width = 15)
@ApiModelProperty(value = "性别")
private java.lang.String sex;
/**民族*/
@Excel(name = "民族", width = 15)
@ApiModelProperty(value = "民族")
private java.lang.String national;
/**出生日期*/
@Excel(name = "出生日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "出生日期")
private java.util.Date birthDate;
/**住址(身份证上)*/
@Excel(name = "住址(身份证上)", width = 15)
@ApiModelProperty(value = "住址(身份证上)")
private java.lang.String idCardAddress;
/**身份证号*/
@Excel(name = "身份证号", width = 15)
@ApiModelProperty(value = "身份证号")
private java.lang.String idCard;
/**签发机关*/
@Excel(name = "签发机关", width = 15)
@ApiModelProperty(value = "签发机关")
private java.lang.String issuingAuthority;
/**有效开始日期*/
@Excel(name = "有效开始日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "有效开始日期")
private java.util.Date startTime;
/**有效结束日期*/
@Excel(name = "有效结束日期", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "有效结束日期")
private java.util.Date endTime;
/**身份证正面*/
@Excel(name = "身份证正面", width = 15)
@ApiModelProperty(value = "身份证正面")
private java.lang.String cardZmPath;
/**身份证反面*/
@Excel(name = "身份证反面", width = 15)
@ApiModelProperty(value = "身份证反面")
private java.lang.String cardFmPath;
/**婚否0未婚 1已婚*/
@Excel(name = "婚否0未婚 1已婚", width = 15)
@ApiModelProperty(value = "婚否0未婚 1已婚")
private java.lang.String maritalStatus;
/**身高*/
@Excel(name = "身高", width = 15)
@ApiModelProperty(value = "身高")
private java.lang.String height;
/**体重*/
@Excel(name = "体重", width = 15)
@ApiModelProperty(value = "体重")
private java.lang.String weight;
/**健康状况0健康 1患病*/
@Excel(name = "健康状况0健康 1患病", width = 15)
@ApiModelProperty(value = "健康状况0健康 1患病")
private java.lang.String healthStatus;
/**政治面貌0共产党员 1民主党 2国民党 3无党派*/
@Excel(name = "政治面貌0共产党员 1民主党 2国民党 3无党派", width = 15)
@ApiModelProperty(value = "政治面貌0共产党员 1民主党 2国民党 3无党派")
private java.lang.String politicalAppearance;
/**紧急联系人姓名*/
@Excel(name = "紧急联系人姓名", width = 15)
@ApiModelProperty(value = "紧急联系人姓名")
private java.lang.String contactName;
/**紧急联系人电话*/
@Excel(name = "紧急联系人电话", width = 15)
@ApiModelProperty(value = "紧急联系人电话")
private java.lang.String contactTel;
/**紧急联系人与本人关系*/
@Excel(name = "紧急联系人与本人关系", width = 15)
@ApiModelProperty(value = "紧急联系人与本人关系")
private java.lang.String contactRelationship;
/**户口性质0农业 1非农业*/
@Excel(name = "户口性质0农业 1非农业", width = 15)
@ApiModelProperty(value = "户口性质0农业 1非农业")
private java.lang.String hukouType;
/**银行卡正面*/
@Excel(name = "银行卡正面", width = 15)
@ApiModelProperty(value = "银行卡正面")
private java.lang.String bankZmPath;
/**银行卡反面*/
@Excel(name = "银行卡反面", width = 15)
@ApiModelProperty(value = "银行卡反面")
private java.lang.String bankFmPath;
/**开户行*/
@Excel(name = "开户行", width = 15)
@ApiModelProperty(value = "开户行")
private java.lang.String openingBank;
/**银行卡号*/
@Excel(name = "银行卡号", width = 15)
@ApiModelProperty(value = "银行卡号")
private java.lang.String bankCard;
/**健康证正面*/
@Excel(name = "健康证正面", width = 15)
@ApiModelProperty(value = "健康证正面")
private java.lang.String healthZmPath;
/**健康证反面*/
@Excel(name = "健康证反面", width = 15)
@ApiModelProperty(value = "健康证反面")
private java.lang.String healthFmPath;
/**资质证(可多张)*/
@Excel(name = "资质证(可多张)", width = 15)
@ApiModelProperty(value = "资质证(可多张)")
private java.lang.String qualificationPath;
/**无犯罪正面*/
@Excel(name = "无犯罪正面", width = 15)
@ApiModelProperty(value = "无犯罪正面")
private java.lang.String noCrimeCertificate;
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.nuEmployeesAdvisoryInfo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nu.modules.nuEmployeesAdvisoryInfo.entity.NuEmployeesAdvisoryInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 员工咨询信息
* @Author: jeecg-boot
* @Date: 2025-06-09
* @Version: V1.0
*/
public interface NuEmployeesAdvisoryInfoMapper extends BaseMapper<NuEmployeesAdvisoryInfo> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.nuEmployeesAdvisoryInfo.mapper.NuEmployeesAdvisoryInfoMapper">
</mapper>

View File

@ -0,0 +1,14 @@
package com.nu.modules.nuEmployeesAdvisoryInfo.service;
import com.nu.modules.nuEmployeesAdvisoryInfo.entity.NuEmployeesAdvisoryInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 员工咨询信息
* @Author: jeecg-boot
* @Date: 2025-06-09
* @Version: V1.0
*/
public interface INuEmployeesAdvisoryInfoService extends IService<NuEmployeesAdvisoryInfo> {
}

View File

@ -0,0 +1,19 @@
package com.nu.modules.nuEmployeesAdvisoryInfo.service.impl;
import com.nu.modules.nuEmployeesAdvisoryInfo.entity.NuEmployeesAdvisoryInfo;
import com.nu.modules.nuEmployeesAdvisoryInfo.mapper.NuEmployeesAdvisoryInfoMapper;
import com.nu.modules.nuEmployeesAdvisoryInfo.service.INuEmployeesAdvisoryInfoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 员工咨询信息
* @Author: jeecg-boot
* @Date: 2025-06-09
* @Version: V1.0
*/
@Service
public class NuEmployeesAdvisoryInfoServiceImpl extends ServiceImpl<NuEmployeesAdvisoryInfoMapper, NuEmployeesAdvisoryInfo> implements INuEmployeesAdvisoryInfoService {
}

View File

@ -1,15 +1,29 @@
package com.nu.modules.weixin.controller;
import cn.hutool.json.JSONObject;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.nu.modules.appversionconfig.entity.AppVersionConfig;
import com.nu.modules.appversionconfig.service.IAppVersionConfigService;
import com.nu.modules.weixin.utils.SignUtil;
import com.nu.modules.weixin.utils.WechatpayConfig;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
@ -22,6 +36,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@ -43,18 +58,17 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.UUID;
@RestController
@RequestMapping("/weixin")
@Slf4j
public class WeixinController {
@Value("${wechat.appId}")
private String appId;
@Value("${wechat.appSecret:}")
private String appSecret;
@Autowired
public WechatpayConfig wechatpayConfig;
// RestTemplate 用于发送 HTTP 请求
private final RestTemplate restTemplate;
@ -105,7 +119,7 @@ public class WeixinController {
public Map<String,Object> callback(@RequestParam("code") String code, Model model) {
String tokenUrl = String.format(
"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code",
appId, appSecret, code
wechatpayConfig.getAppid(), wechatpayConfig.getAppsecret(), code
);
System.out.println(tokenUrl);
@ -158,4 +172,115 @@ public class WeixinController {
@PostMapping("/getJsApiInfo")
public Map<String,String> getJsApiInfo(@RequestBody Map<String,String> params) throws Exception {
String accessToken = getToken(GET_TOKEN_URL, wechatpayConfig.getAppid(), wechatpayConfig.getAppsecret());// 获取token
String firstUrl = params.get("url");
System.out.println("---------firstUrl-------"+firstUrl);
System.out.println("---------token-------"+accessToken);
// 构造请求URL
String requestUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accessToken + "&type=jsapi";
// 发送HTTP请求并获取返回结果
HttpGet httpGet = new HttpGet(requestUrl);
System.out.println("---------httpGet-------"+httpGet);
CloseableHttpClient httpClient = HttpClients.createDefault();
System.out.println("---------httpClient-------"+httpClient);
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
System.out.println("---------httpResponse-------"+httpResponse);
HttpEntity httpEntity = httpResponse.getEntity();
System.out.println("---------httpEntity-------"+httpEntity);
String responseJson = EntityUtils.toString(httpEntity, "UTF-8");
System.out.println("---------responseJson-------"+responseJson);
// 解析返回结果获取手机号
JSONObject jsonObject = new JSONObject(responseJson);
String ticket = String.valueOf(jsonObject.get("ticket"));
String nonceStr = UUID.randomUUID().toString();
String timestamp = Long.toString(System.currentTimeMillis() / 1000);
String string1 = new StringBuilder("jsapi_ticket=").append(ticket)
.append("&noncestr=")
.append(nonceStr)
.append("&timestamp=")
.append(timestamp)
.append("&url=")
.append(firstUrl)
.toString();// 得到签名
String signature = encryptSHA(string1);
Map<String,String> map = new HashMap<String,String>();
map.put("signature", signature);
map.put("timestamp", timestamp);
map.put("nonceStr", nonceStr);
map.put("firstUrl", firstUrl);
System.out.println("---------jsonObject-------"+signature);
return map;
}
/** * sha */
private static String encryptSHA(String signStr) {
StringBuffer hexValue = new StringBuffer();
try {
MessageDigest sha = MessageDigest.getInstance("SHA-1");
byte[] byteArray = signStr.getBytes("UTF-8");
byte[] md5Bytes = sha.digest(byteArray);
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
} catch (Exception e) {
e.printStackTrace(); return "";
} return hexValue.toString();
}
public static final String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token";// 获取access
// 获取token
public static String getToken(String apiurl, String appid, String secret)
{
String turl = String.format(
"%s?grant_type=client_credential&appid=%s&secret=%s", apiurl,
appid, secret);
System.out.println("turl:" + turl);
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(turl);
System.out.println("get:" + get);
JsonParser jsonparer = new JsonParser();// 初始化解析json格式的对象
String result = null;
try
{
HttpResponse res = client.execute(get);
System.out.println("res:" + res);
String responseContent = null; // 响应内容
HttpEntity entity = res.getEntity();
System.out.println("entity:" + entity);
responseContent = EntityUtils.toString(entity, "UTF-8");
JsonObject json = jsonparer.parse(responseContent)
.getAsJsonObject();
System.out.println("json:" + json);
// 将json字符串转换为json对象
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
if (json.get("errcode") != null)
{// 错误时微信会返回错误码等信息{"errcode":40013,"errmsg":"invalid appid"}
}
else
{// 正常情况下{"access_token":"ACCESS_TOKEN","expires_in":7200}
result = json.get("access_token").getAsString();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
// 关闭连接 ,释放资源
client.getConnectionManager().shutdown();
return result;
}
}
}

View File

@ -0,0 +1,42 @@
package com.nu.modules.weixin.utils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
@Slf4j
@Data
public class WechatpayConfig {
// 商户ID
@Value("${wxpay.mch-id}")
private String mchId;
// 商户API证书序列号
@Value("${wxpay.mch-serial-no}")
private String mchSerialNo;
// 商户私钥文件
@Value("${wxpay.private-key-path}")
private String privateKeyPath;
// APIv3密钥
@Value("${wxpay.api-v3-key}")
private String apiV3Key;
// APPID
@Value("${wxpay.appid}")
private String appid;
// 接收结果通知地址
@Value("${wxpay.notify-domain}")
private String notifyDomain;
// APPID
@Value("${wxpay.appsecret}")
private String appsecret;
}

View File

@ -374,8 +374,20 @@ aliyun:
#文件传输秘钥
downloadkey: hP2K9Z!WLuj"M#8,
# 微信
wechat:
appId: wx8fc3e4305d2fbf0b
appSecret: 3bf3dd4ec72f591432db6b28c2c044e5
# 微信支付
wxpay:
# APIv3密钥
api-v3-key: asdfiuzwe3534565478WETDSAFRWEq1E
# APPID
appid: wx8fc3e4305d2fbf0b
# appsecret
appsecret: 3bf3dd4ec72f591432db6b28c2c044e5
# 商户ID
mch-id: 1717618860
# 商户API证书序列号
mch-serial-no: 3E51C9D24F64CE50E9273E544561D29684AB21C7
# 接收结果通知地址
notify-domain: https://www.focusnu.com/nursing-unit_0010507/weiXinPay/wx/callback
# 商户私钥文件路径
private-key-path: c://apiclient_key.pem

View File

@ -371,7 +371,20 @@ aliyun:
#文件传输秘钥
downloadkey: hP2K9Z!WLuj"M#8,
# 微信
wechat:
appId: wx8fc3e4305d2fbf0b
appSecret: 3bf3dd4ec72f591432db6b28c2c044e5
# 微信支付
wxpay:
# APIv3密钥
api-v3-key: asdfiuzwe3534565478WETDSAFRWEq1E
# APPID
appid: wx8fc3e4305d2fbf0b
# appsecret
appsecret: 3bf3dd4ec72f591432db6b28c2c044e5
# 商户ID
mch-id: 1717618860
# 商户API证书序列号
mch-serial-no: 3E51C9D24F64CE50E9273E544561D29684AB21C7
# 接收结果通知地址
notify-domain: https://www.focusnu.com/nursing-unit_0010507/weiXinPay/wx/callback
# 商户私钥文件路径
private-key-path: c://apiclient_key.pem