帝国论坛帝国网站管理系统交流区帝国CMS 7.5与8.0专版8.0beta官方短信插件使用阿里云接口bug反馈 【本版专题贴子】  
主题:8.0beta官方短信插件使用阿里云接口bug反馈 [加入收藏夹]   

jiuyue
用户头衔:秀才 *

精华贴   :0
发贴数   :32
经验值   :528
注册时间:2010-04-26
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
8.0beta官方短信插件使用阿里云接口bug反馈
阿里云短信插件按此修改后,阿里云短信插件才可以正常发送短信,同时用户绑定手机号码后,可实现三张用户表的手机号同步更新。

1. 发送验证码请求的触发时间不对,需要修改esmsfun.php的esms_eShowSendButton() 函数代码,让 fetch() 立即发送请求,而不是等倒计时结束后才触发。


<script type="text/javascript">
var ephmcountdown<?=$vpre?>=<?=$sec?>; // 设置倒计时

function ephmsettime<?=$vpre?>(obj) {
    var emtype = <?=$mtype?>;
    var ephno = document.getElementById('esendphmno<?=$vpre?>').value;
    var eprtype = document.getElementById('esendphmprt<?=$vpre?>').value;
    var timestrjs = Math.floor(Date.now() / 1000); // 当前时间戳

    <?php if(!$public_r['phmckst']) { ?>
    var eformkey = document.getElementById('<?=$formkey_varname?>na<?=$vpre?>').value;
    <?php } ?>

    if (!ephno) {
        alert('请输入手机号');
        return;
    }

    // &#9989; **立即发送请求,而不是等倒计时结束**
    document.getElementById('esendphmpage<?=$vpre?>').src = '<?=$public_r['newsurl']?>e/extenddef/esms/doaction.php?enews=DoSendPhm&smtype=' + emtype + '&sphno=' + ephno + '&stime=' + timestrjs + '&<?=$formkey_varname?>na=' + eformkey + '&prtype=' + eprtype;
   
    console.log("发送验证码请求已触发:", document.getElementById('esendphmpage<?=$vpre?>').src);

    // **开始倒计时**
    obj.disabled = true;
    function countdown() {
        if (ephmcountdown<?=$vpre?> == 0) {
            obj.disabled = false;
            obj.value = "发送验证码";
            ephmcountdown<?=$vpre?> = <?=$sec?>; // 重置倒计时
        } else {
            obj.value = "重新发送 (" + ephmcountdown<?=$vpre?> + ")";
            ephmcountdown<?=$vpre?>--;
            setTimeout(countdown, 1000);
        }
    }
    countdown();
}
</script>


2.TemplateParam 里多了 "product": "",但验证码的短信模板不需要 product 变量,导致阿里云api报错{"Code":"isv.TEMPLATE_PARAMS_ILLEGAL","Message":"params must be [a-zA-Z0-9] for verification sms"}。

需要把esmsplus.php大概85行的代码注释掉。


//$esmsr['smstempvar']['product']=$esmsconfig['smssitename'];                //网站名称


3.后台手机短信设置:验证码超时时间和短信发送间隔时间两个参数应该弄反了。


4.后台管理会员资料,已绑定的手机号不能正常显示。应在插件esmsfun.php488行//新增:同步更新两个关联表的手机号码字段**


        $empire->query("UPDATE {$dbtbpre}enewsmemberadd SET phone='$phno' WHERE userid='$uid'");
        $empire->query("UPDATE {$dbtbpre}enewsmember SET phno='$phno' WHERE userid='$uid'");




[该贴被修改 4 次,最后修改时间 2025-02-09 22:58:38 ]



2025-02-09 22:10:24 已设置保密 顶部 回复 引用 报告 编辑 删除

pw8
用户头衔:探花

精华贴   :0
发贴数   :8848
经验值   :22797
注册时间:2008-10-10
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持下




2025-02-10 08:33:57 已设置保密 顶部 回复 引用 报告 编辑 删除

tm2014
用户头衔:探花

精华贴   :0
发贴数   :2582
经验值   :7345
注册时间:2014-11-13
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

支持一下




2025-02-11 07:42:30 已设置保密 顶部 回复 引用 报告 编辑 删除

时节
用户头衔:进士

精华贴   :0
发贴数   :1938
经验值   :5206
注册时间:2014-05-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

支持下




2025-02-13 08:06:07 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1