Compare commits
2 Commits
f71695a81b
...
e62fdd9e34
| Author | SHA1 | Date |
|---|---|---|
|
|
e62fdd9e34 | |
|
|
ccd9988589 |
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.ruoyi.database.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.database.service.ParkingPointsService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description ParkingScoreController
|
||||||
|
* @Author lijingtong
|
||||||
|
* @Date 2026-01-19
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ParkingScore")
|
||||||
|
@Api(tags = "积分")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ParkingScoreController {
|
||||||
|
private final ParkingPointsService service;
|
||||||
|
|
||||||
|
@RequestMapping("/queryScore")
|
||||||
|
@ApiOperation("查询积分")
|
||||||
|
public String queryScore(String phone) throws Exception {
|
||||||
|
return service.queryScore(phone);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping("/payScore")
|
||||||
|
@ApiOperation("积分支付")
|
||||||
|
public String payScore(String phone, int money) throws Exception {
|
||||||
|
return service.payScore(phone, money);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* private final ParkingScoreService parkingScoreService;
|
||||||
|
|
||||||
|
@RequestMapping("/queryScore")
|
||||||
|
@ApiOperation("查询积分")
|
||||||
|
public QueryScoreResponse queryScore(String phone) {
|
||||||
|
return parkingScoreService.queryScore(phone);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,125 @@
|
||||||
|
package com.ruoyi.database.service;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class ParkingPointsService {
|
||||||
|
|
||||||
|
// 常量定义
|
||||||
|
private static final String TOKEN = "VAR21UEUjhHmeMqiAvA7VYvQLPn5rO2z";
|
||||||
|
private static final String QUERY_SCORE_URL = "https://yxphp.ckldzsw.com/index/score/search";
|
||||||
|
private static final String PAY_SCORE_URL = "https://yxphp.ckldzsw.com/index/score/reduce";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成签名
|
||||||
|
* 签名规则:md5(phone + timestamp + TOKEN)
|
||||||
|
*/
|
||||||
|
public String generateSign(String phone, String timestamp) throws NoSuchAlgorithmException {
|
||||||
|
String data = phone + timestamp + TOKEN;
|
||||||
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||||
|
md.update(data.getBytes());
|
||||||
|
byte[] digest = md.digest();
|
||||||
|
StringBuilder hexString = new StringBuilder();
|
||||||
|
for (byte b : digest) {
|
||||||
|
hexString.append(String.format("%02x", b));
|
||||||
|
}
|
||||||
|
return hexString.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询积分
|
||||||
|
*/
|
||||||
|
public String queryScore(String phone) throws Exception {
|
||||||
|
// 生成时间戳(Unix时间戳,秒级)
|
||||||
|
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
|
||||||
|
// 生成签名
|
||||||
|
String sign = generateSign(phone, timestamp);
|
||||||
|
|
||||||
|
// 构建请求参数
|
||||||
|
String params = "phone=" + phone + "×tamp=" + timestamp + "&sign=" + sign;
|
||||||
|
|
||||||
|
// 发送POST请求
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) new URL(QUERY_SCORE_URL).openConnection();
|
||||||
|
conn.setRequestMethod("POST");
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
os.write(params.getBytes());
|
||||||
|
os.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 读取响应
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
|
||||||
|
String line;
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
response.append(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 停车积分支付
|
||||||
|
*/
|
||||||
|
public String payScore(String phone, int money) throws Exception {
|
||||||
|
// 生成时间戳(Unix时间戳,秒级)
|
||||||
|
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
|
||||||
|
// 生成签名
|
||||||
|
String sign = generateSign(phone, timestamp);
|
||||||
|
|
||||||
|
// 构建请求参数
|
||||||
|
String params = "phone=" + phone + "×tamp=" + timestamp + "&sign=" + sign + "&money=" + money;
|
||||||
|
|
||||||
|
// 发送POST请求
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) new URL(PAY_SCORE_URL).openConnection();
|
||||||
|
conn.setRequestMethod("POST");
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
os.write(params.getBytes());
|
||||||
|
os.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 读取响应
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
|
||||||
|
String line;
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
response.append(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*public static void main(String[] args) {
|
||||||
|
try {
|
||||||
|
// 示例:查询积分
|
||||||
|
String phone = "15599026928";
|
||||||
|
String queryResult = queryScore(phone);
|
||||||
|
System.out.println("查询积分结果:" + queryResult);
|
||||||
|
|
||||||
|
// 示例:停车积分支付(支付1积分)
|
||||||
|
String payResult = payScore(phone, 1);
|
||||||
|
System.out.println("停车积分支付结果:" + payResult);
|
||||||
|
|
||||||
|
|
||||||
|
String queryResult1 = queryScore(phone);
|
||||||
|
System.out.println("查询积分结果1:" + queryResult1);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue