Commit 2250347a authored by 以墨为白's avatar 以墨为白 🎧

Merge remote-tracking branch 'origin/master'

parents 148b3928 e0869171
package com.zksy.szpt;
import cn.hutool.crypto.digest.DigestUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zksy.szpt.domain.dto.SzptClockInDTO;
import com.zksy.szpt.service.AppStoreService;
import com.zksy.szpt.util.EncryptUtil;
import com.zksy.szpt.util.SignatureUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
import javax.annotation.Resource;
@SpringBootTest()
public class MainTestX {
String nonce = "2";
String timestampStr = "21";
String appId = "1872576325743943682";
@Resource
private ObjectMapper objectMapper;
@Resource
private AppStoreService appStoreService;
/**
* 任务完成情况
*/
@Test
@DisplayName("考勤")
public void szptClockInTest() {
timestampStr = String.valueOf(System.currentTimeMillis() / 1000);
nonce = String.valueOf(System.currentTimeMillis() / 1000);
String secretKey = this.appStoreService.getAppSecretByAppKey(appId);
Assertions.assertNotNull(secretKey, "appId不存在");//断言appId存在,为空直接抛出异常不进行下一步测试,提高测试效率
//请求参数
SzptClockInDTO szptClockInDTO = new SzptClockInDTO();
szptClockInDTO.setId(100);
szptClockInDTO.setCsid("123456");
szptClockInDTO.setSbqd("123456");
szptClockInDTO.setXbqt("123456");
szptClockInDTO.setXcqk("1");
szptClockInDTO.setSbsj("1");
szptClockInDTO.setSbr("123456");
szptClockInDTO.setQdr("123456");
szptClockInDTO.setQdrlxdh("123456");
szptClockInDTO.setQddkdd("1");
szptClockInDTO.setQddkzp("1");
szptClockInDTO.setQtdkdd("1");
szptClockInDTO.setQtdkzp("1");
szptClockInDTO.setGkdj("1");
String json = null;
try {
json = objectMapper.writeValueAsString(szptClockInDTO);
} catch (JsonProcessingException e) {
Assertions.fail("json序列化失败");
}
//请求体加密
json = EncryptUtil.getInstance().AESEncode(json, secretKey);
//签名appId+nonce+timestampStr+aes(body)
String data = String.format("%s%s%s%s", appId, nonce, timestampStr, json);
String generatedSignature = DigestUtil.md5Hex(data);
//请求
WebClient webClient = WebClient.builder()
.baseUrl("http://localhost:8086")
.defaultHeader("Content-Type", "application/json")
.build();
String response = webClient.post().uri("/rest/index/addSzptClockIn")
.header(SignatureUtil.APPID, appId)
.header(SignatureUtil.NONCE, nonce)
.header(SignatureUtil.TIMESTAMP, timestampStr)
.header(SignatureUtil.SIGNATURE, generatedSignature)
.body(Mono.just(szptClockInDTO), SzptClockInDTO.class)
.retrieve()
.bodyToMono(String.class)
.block();
System.out.println(response);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment