xuhy
2025-01-09 c16f3bf0b16707214c3ad8acadbe5b77d35d4ccf
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package com.stylefeng.guns.modular.system.kaipiao.email;
 
import com.alibaba.fastjson.JSONObject;
import com.stylefeng.guns.modular.system.kaipiao.entity.GlobalInfo;
import com.stylefeng.guns.modular.system.kaipiao.util.CreatAndSendUtil;
import org.springframework.util.Base64Utils;
import org.springframework.web.client.RestTemplate;
 
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;
 
public class KaiPiaoEmail {
    /** 带格式的正文内容 */
    public static String emailContent(){
        StringBuilder contentBuilder = new StringBuilder();
        contentBuilder.append("<h2>尊敬的友商,您好!</h2>");
        contentBuilder.append("<br/>");
        contentBuilder.append("<br/>");
        contentBuilder.append("购买方名称:某某某公司<br/>");
        contentBuilder.append("发票号码 : 11223344<br/>");
        contentBuilder.append("开具日期 : 2023-09-26<br/>");
        contentBuilder.append("价税合计 : 100¥<br/>");
        contentBuilder.append("<br/>");
        contentBuilder.append("<br/>");
        contentBuilder.append("<br/>");
        contentBuilder.append("<hr>");
        contentBuilder.append("您好!您已接收到全面数字化的电子发票。目前,全面数字化的电子发票在全国部分省(区、市)试点推广," +
                "其法律效力、基本用途等与现有纸质发票相同。如您在办理涉及数电票业务的过程中遇到问题," +
                "可以拨打当地12366纳税服务热线或到就近办税服务厅进行咨询或反馈意见建议,我们将竭诚帮助您解决相关问题。");
        return contentBuilder.toString();
    }
    // 调用邮件代发接口时,需要的内层数据
    public static String agentEmailData(){
        JSONObject str = new JSONObject();
        str.put("subject","由power项目代发qq邮箱,经由jxfw项目,到163邮箱的的邮件");
        str.put("content",emailContent());
        str.put("nsrsbh","91440400MA4WKU0K8A");
        str.put("agentEmail","2855143437@qq.com");
        str.put("targetEmail","420516635@qq.com");
        str.put("host","smtp.qq.com");
        str.put("port","587");
//        str.put("fileBytes",fjBytes);
//        str.put("fileName","通用蓝票.pdf");
        str.put("agentPasscode","rzkoxcfzwtizddaj");
// base64编码
        String data = Base64Utils.encodeToString(str.toString().getBytes());
        return data;
    }
    /**
     * 构建通用请求信息体
     * @param interfaceCode 接口code
     * @param innerData 内部请求信息
     *
     * */
    public static JSONObject createParam(String interfaceCode, String innerData){
 
        // 对报名信息做签名认证操作
 
        //生成报文globalInfo
        GlobalInfo globalInfo = CreatAndSendUtil.createGlobalInfo(interfaceCode, "31s1m151s161");
        //生成数据签名
        String dataSign = CreatAndSendUtil.createDataSign(globalInfo.toString(), innerData, "43b9ef0799534e298ca2b6b73a6cab48");
 
        JSONObject param = new JSONObject();
        param.put("global_info",globalInfo);
        // 具体接口需要的报文信息
        param.put("data",innerData);
        param.put("data_sign",dataSign);
        return param;
    }
    public static JSONObject sendEmail() throws IOException {
        RestTemplate restTemplate = new RestTemplate();
// url换成真实地址,这里用的是本地地址
        String url = "https://csfw.jsaisino.com/csapp/invincomeservice";
// 附件文件经过一次编码,byte[]类型数据经过一次编码
//        String enCodeData =  Base64.getEncoder().encodeToString(Files.readAllBytes(Paths.get("D:\\MyText\\正常蓝票.pdf")));
// createParam()方法是构建post请求的方法,自由实现
        JSONObject param = createParam("SALE.DZSJSENDEMAIL",agentEmailData());
        String result = restTemplate.postForObject(url, param, String.class);
        System.err.println(result);
        JSONObject resultJsonObject = JSONObject.parseObject(result);
        return resultJsonObject;
    }
}