• 容联云短信接口使用


    官方接口: [容联云短信接口

    ](https://doc.yuntongxun.com/p/5a533de33b8496dd00dce07c)

    1. 统一请求包头
    2. HTTP标准包头字段
    3. 请求包体
    4. 响应
      statusCode/smsMessageSid/dateCreated三个字段说明:
      • 当请求失败时,响应中只有statusCode和statusMsg
      • 当请求成功时,响应中有statusCode和smsMessageSid, dateCreated

    注:对响应解析后,statusCode为"000000"表示请求发送成功。statusCode不是"000000",表示请求发送失败。

    call API

    const fetch = require('node-fetch');
    const CryptoJS = require('crypto-js');
    const moment = require('moment');
    
    const BASE_URL = 'https://app.cloopen.com:8883';
    const ACCOUNT_SID = '';//查询平台自己的key值
    const AUTH_TOKEN = '';//查询平台自己的key值
    const APP_ID = '';//查询平台自己的key值
    const TEMPLATE_ID = '';//查询平台自己的key值
    let timeStamp;
    
    const getTimeStamp = () => moment().format('YYYYMMDDhhmmss');
    const getSigParameter = () => {
      timeStamp = getTimeStamp();
      const message = `${ACCOUNT_SID}${AUTH_TOKEN}${timeStamp}`;
      const encodedMessgae = CryptoJS.MD5(message).toString();
      return encodedMessgae.toUpperCase();
    };
    const getAuthorization = () => {
      const str = `${ACCOUNT_SID}:${timeStamp}`;
      const wordArray = CryptoJS.enc.Utf8.parse(str);
      const encodedMessgae = CryptoJS.enc.Base64.stringify(wordArray);
      return encodedMessgae;
    };
    const getUrl = () => {
      const SigParameter = getSigParameter();
      return `${BASE_URL}/2013-12-26/Accounts/${ACCOUNT_SID}/SMS/TemplateSMS?sig=${SigParameter}`;
    };
    
    const parseJSON = (response) => {
      return response.json ? response.json() : response;
    };
    const checkStatus = (response) => {
      if (response.status >= 200 && response.status < 300) {
        return response;
      }
    
      return parseJSON(response).then((responseFormatted) => {
        return {
          error: true,
          message: responseFormatted.message || response.statusText || 'Fail.',
        };
      });
    };
    
    exports.submitPhoneNumberVerification = (phoneNumber, code) => {
      const url = getUrl();
      const authorization = getAuthorization();
    
      return fetch(url, {
        method: 'POST',
        headers: {
          Accept: 'application/json',
          'Content-Type': 'application/json;charset=utf-8;',
          'Content-Length': 256,
          Authorization: authorization,
        },
        body: JSON.stringify({
          to: phoneNumber.toString(),
          appId: APP_ID,
          templateId: TEMPLATE_ID,
          datas: [code],
        }),
      })
      .then(checkStatus)
      .then(parseJSON);
    };
    
    
  • 相关阅读:
    JadConfig 注解驱动的java 配置管理包
    coroot 开源微服务架构监控以及问题解决工具
    observIQ 开源的OpenTelemetry collector 实现
    graylog MessageOutput 简单说明
    graylog 的schema
    【职场】辞职的时间节点有讲究,你知道吗?
    【精选】面试官:聊下常见设计模式有哪些?
    今日头条架构千字分析,这一篇就够了
    【收藏分享】2022年PHP中高级面试题(三)
    四种策略确保 RabbitMQ 消息发送可靠性
  • 原文地址:https://www.cnblogs.com/qiqi715/p/9623631.html
Copyright © 2020-2023  润新知