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;
|
}
|
}
|