| | |
| | | package com.stylefeng.guns.modular.system.util; |
| | | |
| | | |
| | | import cn.hutool.http.ContentType; |
| | | import cn.hutool.http.HttpRequest; |
| | | import cn.hutool.http.HttpResponse; |
| | | import cn.hutool.http.HttpUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.twilio.Twilio; |
| | | import com.twilio.rest.api.v2010.account.Message; |
| | | import com.twilio.type.PhoneNumber; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.net.ssl.*; |
| | | import java.io.*; |
| | | import java.net.URL; |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | @Component |
| | | public class SMSUtil { |
| | | |
| | | //无需修改,用于格式化鉴权头域,给"X-WSSE"参数赋值 |
| | |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | /** |
| | | * 发送Twilio短信 |
| | | * @param toPhone |
| | | * @param msg |
| | | * @return |
| | | */ |
| | | public static boolean sendTwilioMessage(String toPhone, String msg){ |
| | | String ACCOUNT_SID = "AC1fd05e898bd59d17ba72db621afca537"; |
| | | String AUTH_TOKEN = "7cee1a6cb0e2936a9037be577b1ffe57"; |
| | | String formPhone = "+16672740015"; |
| | | try { |
| | | SMSUtil.send_huawei_sms("b793ae3d41a049059197bfe92cf8bc83", "+233500666666", "[\"1234\"]"); |
| | | } catch (Exception e) { |
| | | Twilio.init(ACCOUNT_SID, AUTH_TOKEN); |
| | | Message message = Message.creator( |
| | | new PhoneNumber(toPhone), |
| | | new PhoneNumber(formPhone), |
| | | msg |
| | | ).create(); |
| | | System.out.println(message.getSid()); |
| | | Message.Status status = message.getStatus(); |
| | | switch (status.toString()){ |
| | | case "canceled": |
| | | return false; |
| | | case "undelivered": |
| | | return false; |
| | | case "failed": |
| | | return false; |
| | | } |
| | | return true; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 短信 : https://www.nalosolutions.com/ |
| | | * @param toPhone |
| | | * @param msg |
| | | * @return |
| | | */ |
| | | public boolean sendCellulantMessage(String toPhone, String msg){ |
| | | String url = "https://sms.nalosolutions.com/smsbackend/clientapi/Cell_resl/send-message/"; |
| | | HttpRequest post = HttpUtil.createPost(url); |
| | | post.contentType(ContentType.JSON.toString()); |
| | | JSONObject params = new JSONObject(); |
| | | params.put("key", "ru#0flkf3993qh!!rg!@y4)nhwi08c#tg_vasek!ja)kvfnfjyoljoz(@nai(jkf"); |
| | | params.put("msisdn", toPhone); |
| | | params.put("message", msg); |
| | | params.put("sender_id", "I-GO"); |
| | | System.err.println(params.toJSONString()); |
| | | post.body(params.toJSONString()); |
| | | HttpResponse execute = post.execute(); |
| | | String body = execute.body(); |
| | | execute.close(); |
| | | JSONObject jsonObject = JSON.parseObject(body); |
| | | System.err.println(body); |
| | | Integer status = jsonObject.getInteger("status"); |
| | | if(null != status && 1701 == status){ |
| | | return true; |
| | | }else{ |
| | | System.err.println("短信发送失败:" + jsonObject.toJSONString()); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] ages){ |
| | | SMSUtil smsUtil = new SMSUtil(); |
| | | smsUtil.sendCellulantMessage("233244915521", "Votre code de validation est 123456 et il est valide pendant 5 minutes. Veuillez ne pas le révéler à d’autres personnes."); |
| | | } |
| | | } |