Commit dbedbfb6 authored by Smile's avatar Smile
parents 1219be5a dc9561e9
package cn.iocoder.yudao.framework.http.sms;
import cn.iocoder.yudao.framework.http.core.Request;
import cn.iocoder.yudao.framework.http.core.Response;
import cn.iocoder.yudao.framework.http.core.client.HttpClient;
import cn.iocoder.yudao.framework.http.core.client.HttpClientFactory;
import java.util.HashMap;
import java.util.Map;
/**
* @author wuxian
* @since 2024-11-27
**/
public class BulksmsHttp {
private static final String REQ_URL = "https://portal.nigeriabulksms.com/api/";
public void sendReq(Map<String, Object> param, Map<String, String> header) {
HttpClient client = HttpClientFactory.get(Request.Util.OkHttp);
Request req = Request.create(REQ_URL, Request.Method.POST, param);
req.setParamFormat(Request.ParamFormat.FORM);
try {
Response res = client.execute(req, Request.Option.create(0, 0, header));
System.out.println("response code ---------------------------->" + res.getCode());
System.out.println("response content is --------------------》" + res.getBody());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Map<String, String> setHeader(String accept, String contentType) {
Map<String, String> header = new HashMap<>();
//header.put("Accept","application/json,text/plain,*/*");
//header.put("Content-Type", "application/json");
header.put("Accept", accept);
header.put("Content-Type", contentType);
return header;
}
public static void main(String[] args){
BulksmsHttp test = new BulksmsHttp();
Map<String,String> header = setHeader("text/html,application/xhtml+xml,application/xml","application/json");
String mobiles = "18102810628";
String sender = "ECLogistics";
String message = "Good day This is E&C logistics(ship from China to Nigeria),It has been a while since we last worked together,and we would like to reestablish our partnership. Our main service:GROUPAGE/FULL CONTAINER/AIR CARGO/COMPRESSING/CONSOLITAION .We value your business and would appreciate the opportunity to serve you once again.Have a Nice day! My WA :+861 592 035 652 7";
Map<String, Object> param = new HashMap<>();
param.put("username","ecit@ewchina.net");
param.put("password","0z@@vtj1h");
test.sendReq(param,header);
}
}
package cn.iocoder.yudao.module.system.controller.admin.sms;
import cn.hutool.core.util.URLUtil;
import cn.hutool.extra.servlet.ServletUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import cn.iocoder.yudao.framework.sms.core.client.impl.sendchamp.SendChampSmsClient;
import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
import cn.iocoder.yudao.module.system.service.sms.SmsLogService;
import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
* @author ECIT-2
*/
@Api(tags = "管理后台 - 短信回调")
@RestController
@RequestMapping("/system/sms/callback")
public class SmsCallbackController {
@Resource
private SmsSendService smsSendService;
@Resource
private SmsLogService smsLogService;
@PostMapping("/yunpian")
@ApiOperation(value = "云片短信的回调", notes = "参见 https://www.yunpian.com/official/document/sms/zh_cn/domestic_push_report 文档")
@ApiImplicitParam(name = "sms_status", value = "发送状态", required = true, example = "[{具体内容}]", dataTypeClass = String.class)
@OperateLog(enable = false)
public String receiveYunpianSmsStatus(@RequestParam("sms_status") String smsStatus) throws Throwable {
String text = URLUtil.decode(smsStatus); // decode 解码参数,因为它被 encode
smsSendService.receiveSmsStatus(SmsChannelEnum.YUN_PIAN.getCode(), text);
return "SUCCESS"; // 约定返回 SUCCESS 为成功
}
@PostMapping("/aliyun")
@ApiOperation(value = "阿里云短信的回调", notes = "参见 https://help.aliyun.com/document_detail/120998.html 文档")
@OperateLog(enable = false)
public CommonResult<Boolean> receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable {
String text = ServletUtil.getBody(request);
smsSendService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text);
return success(true);
}
@PostMapping("/sendchamp")
@ApiOperation(value = "sendchamp短信的回调")
@OperateLog(enable = false)
public CommonResult<Boolean> receiveSendchampSmsStatus(HttpServletRequest request) {
String text = ServletUtil.getBody(request);
SendChampSmsClient.SmsReceiveStatus smsReceiveStatus = JsonUtils.parseObject(text, SendChampSmsClient.SmsReceiveStatus.class);
smsLogService.updateSendChampReceive(smsReceiveStatus);
return success(true);
}
}
//package cn.iocoder.yudao.module.system.controller.admin.sms;
//
//import cn.hutool.core.util.URLUtil;
//import cn.hutool.extra.servlet.ServletUtil;
//import cn.iocoder.yudao.framework.common.pojo.CommonResult;
//import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
//import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
//import cn.iocoder.yudao.framework.sms.core.client.impl.sendchamp.SendChampSmsClient;
//import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
//import cn.iocoder.yudao.module.system.service.sms.SmsLogService;
//import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//
//import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
//
///**
// * @author ECIT-2
// */
//@Api(tags = "管理后台 - 短信回调")
//@RestController
//@RequestMapping("/system/sms/callback")
//public class SmsCallbackController {
//
// @Resource
// private SmsSendService smsSendService;
//
// @Resource
// private SmsLogService smsLogService;
//
// @PostMapping("/yunpian")
// @ApiOperation(value = "云片短信的回调", notes = "参见 https://www.yunpian.com/official/document/sms/zh_cn/domestic_push_report 文档")
// @ApiImplicitParam(name = "sms_status", value = "发送状态", required = true, example = "[{具体内容}]", dataTypeClass = String.class)
// @OperateLog(enable = false)
// public String receiveYunpianSmsStatus(@RequestParam("sms_status") String smsStatus) throws Throwable {
// String text = URLUtil.decode(smsStatus); // decode 解码参数,因为它被 encode
// smsSendService.receiveSmsStatus(SmsChannelEnum.YUN_PIAN.getCode(), text);
// return "SUCCESS"; // 约定返回 SUCCESS 为成功
// }
//
// @PostMapping("/aliyun")
// @ApiOperation(value = "阿里云短信的回调", notes = "参见 https://help.aliyun.com/document_detail/120998.html 文档")
// @OperateLog(enable = false)
// public CommonResult<Boolean> receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable {
// String text = ServletUtil.getBody(request);
// smsSendService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text);
// return success(true);
// }
//
// @PostMapping("/sendchamp")
// @ApiOperation(value = "sendchamp短信的回调")
// @OperateLog(enable = false)
// public CommonResult<Boolean> receiveSendchampSmsStatus(HttpServletRequest request) {
// String text = ServletUtil.getBody(request);
// SendChampSmsClient.SmsReceiveStatus smsReceiveStatus = JsonUtils.parseObject(text, SendChampSmsClient.SmsReceiveStatus.class);
// smsLogService.updateSendChampReceive(smsReceiveStatus);
// return success(true);
// }
//}
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