各大短信平台接入方法

您所在的位置:网站首页 短信网关设备有哪些 各大短信平台接入方法

各大短信平台接入方法

2024-07-13 13:49| 来源: 网络整理| 查看: 265

短信平台有哪些

最为著名的三大平台:华为短信、阿里短信、腾讯短信;根据各家官网的接入文档进行使用

短信平台接入流程

需要具备哪些信息

各家所需信息不太相同,大致如下:

1.app key 2.app 秘钥 3.app 签名 3.发送者id 4.模版,替换符 5.调用接口 6.异步回调接口

华为云接入代码 /** * 异步发送华为云短信 */ @Async @Override public void sendSmsMsg(SsoSms sms) throws Exception { if (sms.getPhone() == null || sms.getPhone().length() < 11) { log.info("手机号不符合规则:" + sms.getPhone()); } //必填,全局号码格式(包含国家码),示例:+8615123456789,多个号码之间用英文逗号分隔 String receiver = sms.getPhone(); //短信接收人号码 /** * 选填,使用无变量模板时请赋空值 String templateParas = ""; * 单变量模板示例:模板内容为"您的验证码是${1}"时,templateParas可填写为"[\"369751\"]" * 双变量模板示例:模板内容为"您有${1}件快递请到${2}领取"时,templateParas可填写为"[\"3\",\"人民公园正门\"]" * 模板中的每个变量都必须赋值,且取值不能为空 * 查看更多模板和变量规范:产品介绍>模板和变量规范 */ String templateParas = "[" + sms.getCode() + "]"; //模板变量,此处以单变量验证码短信为例,请客户自行生成6位验证码,并定义为字符串类型,以杜绝首位0丢失的问题(例如:002569变成了2569)。 //请求Body,不携带签名名称时,signature请填null String body = SmsUtils.buildRequestBody(sender, receiver, templateId, templateParas, statusCallBack, signature); if (null == body || body.isEmpty()) { log.error(sms.getPhone() + ":消息体为空"); return; } //请求Headers中的X-WSSE参数值 String wsseHeader = SmsUtils.buildWsseHeader(appKey, appSecret); if (null == wsseHeader || wsseHeader.isEmpty()) { log.error(sms.getPhone() + ":消息头为空"); return; } //为防止因HTTPS证书认证失败造成API调用失败,需要先忽略证书信任问题 CloseableHttpClient client = HttpClients.custom() .setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, (x509CertChain, authType) -> true).build()) .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) .build(); HttpResponse response = client.execute(RequestBuilder.create("POST")//请求方法POST .setUri(url) .addHeader(HttpHeaders.CONTENT_TYPE, "application/x-www-form-urlencoded") .addHeader(HttpHeaders.AUTHORIZATION, SmsUtils.AUTH_HEADER_VALUE) .addHeader("X-WSSE", wsseHeader) .setEntity(new StringEntity(body)).build()); String result = EntityUtils.toString(response.getEntity()); log.info("返回码:" + response.getStatusLine().getStatusCode() + "|返回体:" + result); //打印响应消息实体 sms.setCode(response.getStatusLine().getStatusCode() + ""); sms.setMessage(result); sms.setBizId("弃用"); ssoSmsMapper.updateById(sms); }  阿里云接入代码 /** * 异步发送阿里云短信 * * @param sms * @return */ @Async @Override public SendSmsResponse sendSmsMsg(Sms sms) { if (sms.getSignName() == null) { sms.setSignName(this.signName); } if (sms.getTemplateCode() == null) { sms.setTemplateCode(this.templateCode); } // 阿里云短信官网demo代码 SendSmsRequest request = new SendSmsRequest(); request.setMethod(MethodType.POST); request.setPhoneNumbers(sms.getPhone()); request.setSignName(sms.getSignName()); request.setTemplateCode(sms.getTemplateCode()); request.setTemplateParam(sms.getParams()); request.setOutId(sms.getId().toString()); SendSmsResponse response = null; try { response = acsClient.getAcsResponse(request); if (response != null) { log.info("发送短信结果:code:{},message:{},requestId:{},bizId:{}", response.getCode(), response.getMessage(), response.getRequestId(), response.getBizId()); sms.setCode(response.getCode()); sms.setMessage(response.getMessage()); sms.setBizId(response.getBizId()); } } catch (ClientException e) { e.printStackTrace(); } update(sms); return response; } 腾讯云接入代码 /** * 异步发送腾讯云短信 */ @Async @Override public SmsSingleSenderResult sendSmsMsg(SsoSms sms) { if (sms.getSignName() == null) { sms.setSignName(this.txYunAppId + ""); } if (sms.getTemplateCode() == null) { sms.setTemplateCode(this.templateCode + ""); } SmsSingleSender e = new SmsSingleSender(txYunAppId, txYunAppKey); SmsSingleSenderResult result = null; try { ArrayList params = new ArrayList(); params.add(sms.getCode()); result = e.sendWithParam("86", sms.getPhone(), templateCode, params, (String)null, "", ""); log.info("发送短信结果:result:{},message:{},bizId:{}", result.result, result.errMsg, result.sid); } catch (JSONException e1) { e1.printStackTrace(); } catch (HTTPException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } ssoSmsMapper.updateById(sms); return result; }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3