办学质量监测教学评价系统
ageerle
2025-05-26 abcde9e36e8cb6e80bc091532d6e11789b9eb085
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package org.ruoyi.common.service.impl;
 
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.ruoyi.common.config.PayConfig;
import org.ruoyi.common.service.PayService;
import org.ruoyi.common.utils.MD5Util;
import org.springframework.stereotype.Service;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * 支付服务
 * @author Admin
 */
@Service
@RequiredArgsConstructor
@Slf4j
public class PayServiceImpl implements PayService {
 
    private final PayConfig payConfig;
 
    @Override
    public String getPayUrl(String orderNo, String name, double money, String clientIp) {
        String out_trade_no = orderNo, sign = "";
        //封装请求参数
        String mdString = "clientip=" + clientIp + "&device=" + payConfig.getDevice() + "&money=" + money + "&name=" + name + "&" +
            "notify_url=" + payConfig.getNotify_url() + "&out_trade_no=" + out_trade_no + "&pid=" + payConfig.getPid() + "&return_url=" + payConfig.getReturn_url() +
            "&type=" + payConfig.getType() + payConfig.getKey();
        sign = MD5Util.GetMD5Code(mdString);
        Map<String, Object> map = new HashMap<>(10);
        map.put("clientip", clientIp);
        map.put("device", payConfig.getDevice());
        map.put("money", money);
        map.put("name", name);
        map.put("notify_url", payConfig.getNotify_url());
        map.put("out_trade_no", out_trade_no);
        map.put("pid", payConfig.getPid());
        map.put("return_url", payConfig.getReturn_url());
        map.put("sign_type", payConfig.getSign_type());
        map.put("type", payConfig.getType());
        map.put("sign", sign);
        String body = HttpUtil.post(payConfig.getPayUrl(), map);
        log.info("支付返回信息:{},配置信息: {}",body,payConfig);
        JSONObject jsonObject = new JSONObject(body);
        return (String) jsonObject.get("qrcode");
    }
 
}