后端短信服务接口扩展说明

平台提供了短信服务接口,通过实现短信服务接口,可以扩展接入第三方的短信平台,用于系统下发短信。

短信服务接口扩展

步骤 操作方法 注意项
1 实现接口: com.kdayun.z1.core.sms.service.SmsService
2 在实现类中使用@Override注解重写短信下发方法: public SendSmsResVo sendSms(String phone, String smsType) throws Exception 功能:根据业务场景类型调用第三方短信平台下发短信 @param phone 有效的手机号 @param 短信的类型 用于区分该短信是在什么业务场景下需要发送的,详细说明见下文 @return SendSmsResVo 详细说明见下文
3 在实现类中使用@Override注解重写短信验证码校验方法: RetVo checkSmsCode(String phone, String smsCode,String smsType) throws Exception 功能:校验短信验证码 @param phone 11位的有效手机号 @param smsCode 待验证的短信验证码 @param smsType 短信的类型 用于区分该短信是在什么业务场景下发送的,详细说明见下文
4 (必须)定义短信服务接口实现类说明字段DESC: public static final String DESC = “XXX短信服务平台” DESC字段用于描述短信服务接口的实现类
4 (必须)定义短信服务接口实现类帮助信息字段HELP: public static final String HELP = “该字段用于描述接口实现类的使用需要配置的数据” HELP字段用于描述短信服务接口实现类帮助信息

短信下发方法:sendSms

类型 参数名 参数类型 说明
入参 phone String 接收短信的手机号
smsType String 短信的类型 用于区分该短信是在什么业务场景下发送的,接口实现类中必须实现以下四种场景: login:登录场景,手机号登录时的短信验证码 regedit:注册场景,注册时的短信验证码 forgetpwd:忘记密码场景,忘记密码时的短信验证码 resetpwd:重置密码场景,重置密码时的短信验证码 除了以上四种场景外,短信服务接口实现类可以自行扩展其他业务场景
返回 SendSmsResVo com.kdayun.z1.core.sms.vo.SendSmsResVo
state 枚举类型: com.kdayun.z1.core.base.RetVo.retstate 短信发送状态码:  retstate.OK 表示短信发送接口请求成功  retstate.ERROR 表示短信发送接口请求失败
smsCode String 短信验证码
msg String 短信发送状态码描述
obj Object 扩展属性

短信验证码校验方法:checkSmsCode

类型 参数名 参数类型 说明
入参 phone String 接收短信的手机号
smsCode String 短信验证码
smsType String 短信的类型 用于区分该短信是在什么业务场景下发送的,接口实现类中必须实现以下四种场景: login:登录场景,手机号登录时的短信验证码 regedit:注册场景,注册时的短信验证码 forgetpwd:忘记密码场景,忘记密码时的短信验证码 resetpwd:重置密码场景,重置密码时的短信验证码 除了以上四种场景外,短信服务接口实现类可以自行扩展其他业务场景
返回 RetVo com.kdayun.z1.core.base.RetVo
state 枚举类型: com.kdayun.z1.core.base.RetVo.retstate 短信验证码校验结果: retstate.OK 表示短信验证码校验通过 retstate.ERROR 表示短信验证码校验不通过
msg String 短信验证码校验结果描述
obj Object 扩展属性

平台配置

获取密钥 accessKeyId/accessKeySecret


设置平台短信配置 accessKeyId/accessKeySecret


2023-12-20 15:58:45 星期三

设置平台短信类型模板配置

前端调用接口

  • 通用短信接口(这个使用 [短信服务配置->common下的配置] )

    • URL : http://xxx.com/kdayun/core/sms/send/common/smscode

    • 请求方式: get

    • 参数: phone 电话号码

    • 参数: vcodekey 图像验证码唯一标志(发送短信验证时候需要输入的图像验证码) [当开启是否开启手机短信验证码选项时候必填非空,否则传递空串]

    • 参数: vcode 短信图像验证码 [当开启是否开启手机短信验证码选项时候必填非空,否则传递空串]

    • 参数: orgid 机构id [可选参数,为空时候取当前用户的机构id]

    • 返回: 返回发送结果RetVo

    • Content-Type :application/json;charset=UTF-8

    • 例子:

      function Button1_onClickScript(cxt: ScriptContext, btn: Button) {
      if (Common.isEmpty(btn.getPage().components.InputEdit1.getValue())) {
        Common.errorMsg('请输入电话号码')
        return;
      }
      Common.get(Common.getContextPath() + '/core/sms/send/common/smscode',
        {
            phone: btn.getPage().components.InputEdit1.getValue(),
            vcodekey:'',
            vcode:''
        },
        function (res) {
            if (res.state == 'ERROR') {
                Common.errorMsg(res.msg)
            } else {
                Common.successMsg('发送成功')
            }
        })
      }
      
  • 具体短信的配置
    数据字典 -> 短信服务配置

    • resetpwd 重设密码短信验证

    • forgetpwd 忘记密码短信验证

    • login 登录短信验证

    • regedit 注册短信验证

    • bind 绑定微信短信验证

    • common 通用短信验证,(一般是自定义短信验证使用. 短信组件使用此配置)

      配置的json如下:

      {
        "forgetpwd:{
            //验证码在短信模板内的变量名
            "varName": "code",
            //验证码的类型(smsCode 验证码类短信, notice 通知类短信 )
            "type": "smsCode",
            //模板id (需要在短信平台获取短信模板)
            "templateIds": [
                "SMS_152431105"
            ],
            //短信签名(需要在短信平台获取短信签名)
            "signNames": [
                "快搭"
            ]
        },
        ...
      }

      如:

      {
      "resetpwd": {
        "varName": "code",
        "type": "smsCode",
        "templateIds": [
            "SMS_152431105"
        ],
        "signNames": [
            "快搭"
        ]
      },
      "forgetpwd": {
        "varName": "code",
        "type": "smsCode",
        "templateIds": [
            "SMS_152543822"
        ],
        "signNames": [
            "快搭"
        ]
      },
      "login": {
        "varName": "code",
        "type": "smsCode",
        "templateIds": [
            "SMS_152431108"
        ],
        "signNames": [
            "快搭"
        ]
      },
      "regedit": {
        "varName": "code",
        "type": "smsCode",
        "templateIds": [
            "SMS_152431106"
        ],
        "signNames": [
            "快搭"
        ]
      },
      "bind": {
        "varName": "code",
        "signNames": [
            "快搭"
        ],
        "templateIds": [
            "SMS_172595379"
        ],
        "type": "smsCode"
      },
      "common": {
        "varName": "code",
        "signNames": [
            "快搭"
        ],
        "templateIds": [
            "SMS_172595370"
        ],
        "type": "smsCode"
      }
      }

      上面的json内的key分别对应短信平台内设置的模板 templateIds. 不同的类型如下:

    • resetpwd 重设密码短信验证配置

    • forgetpwd 忘记密码短信验证配置

    • login 登录短信验证配置

    • regedit 注册短信验证配置

    • common 通用短信验证配置

      阿里云的短信模板设置

      阿里云的签名管理

  • 注意:

    • 签名修改和新增都需要审核;审核时长:一般2小时内完成,涉及政企签名一般2个工作日内完成,近期平均完成审核时长约1小时,如遇升级核验、审核任务较多时、非工作时间,审核时间可能会延长,请耐心等待。
      审核工作时间: 周一至周日9:00-21:00(法定节假日顺延)


作者:admin  创建时间:2022-12-05 17:00
最后编辑:admin  更新时间:2024-04-26 09:11