联系官方销售客服

1835022288

028-61286886

应用插件 版主:官方插件技术组
写一个发送短信的代码
类型:迅睿CMS 更新时间:2021-09-05 00:18:00
插件 API接口 V7.6
应用作者 迅睿官方团队
发布时间 2019-03-14 09:57:26
更新时间 2024-03-02 03:29:47

求大神帮忙写一个发送短信的代码


我想达到效果是,宝塔任务执行API,时间字段到期前15天发送短信给管理员{$t.glydh}与用户{$t.khlxr}。

短信内容:{$t.kehuxingming}您好,您的{$t.sccp}将于{$t.daoqishijian}到期,请您及时联系{$t.glydh}续费!

短信是官方短信接口。


现有API代码如下:

<?php

/**

 * api 示例文件

 * 变量介绍

 * $return 表示标准返回变量

 */


$return = []; // 返回数据

$data = \Phpcmf\Service::M()->table('dr_1_news')->order_by("id desc")->getAll();

if ($data) {

    foreach ($data as $r) {

        $return[] = [

            'daoqishijian' => date("m-d",$r['daoqishijian']),

            'sccp' => $r['sccp'],

            'kehuxingming' => $r['kehuxingming'],

            'khlxr' => $r['khlxr'],

            'glydh' => $r['glydh'],

            

        ];

    }

}


字段说明:

售出产品:标准输出:{$t.sccp}

客户姓名标准输出:{$t.kehuxingming}

到期时间:默认输出:{$t.daoqishijian}

客户电话标准输出:{$t.khlxr}

管理员电话:标准输出:{$t.glydh}



插件版权:官方插件
插件名称:API接口

插件教程:https://www.xunruicms.com/doc/app-361.html

回帖
  • 官方插件技术-刘题羽
    #1楼    官方插件技术-刘题羽
    2021-09-04 22:19:01
    Chrome 0
    循环数据已经写好了,你只需要在循环体里面做时间段的判断,判断15天时执行发送;注意的是需要在新建一个字段来标记已发短信,这样就防止重复循环发送短信发送函数
    \Phpcmf\Service::M('member')->sendsms_text($mobile, $string); // 用于发送文本内容
    我只能帮你这么多了,学习是一个过程,不太熟悉二开的话,可以找官方开发或者其他开发者开发,然后再分析分析他们的开发代码,这样自己也学会了开发技巧。
  • 陈银
    #2楼    陈银
    2021-09-04 22:24:44
    Chrome 0
    增加悬赏(设置悬赏)金:10元,希望大家给予帮助!
  • 陈银
    #3楼    陈银
    2021-09-04 22:39:37
    Chrome 0
    官方插件技术-刘题羽 这个代码我照上次的写的。不会转弯,比如$data = \Phpcmf\Service::M()->table('dr_1_news')->order_by("id desc")->getAll();我需要catid=1都不知道怎么写
  • 二开/定制/使用解答专家
    #4楼    二开/定制/使用解答专家
    2021-09-04 22:46:57
    Chrome 0
    官方的思路没问题呢,按照这个方向开发就是了
  • 陈银
    #5楼    陈银
    2021-09-04 22:49:27
    Chrome 0
    二开/定制/使用解答专家 我知道的官方的思路没问题呢,求代码。
  • 二开/定制/使用解答专家
    #6楼    二开/定制/使用解答专家
    2021-09-04 23:36:46
    Chrome 0
    按照官方思路,建立字段控制发送状态
    <?php
    
    $data = \Phpcmf\Service::M()->table('1_news')
    ->where('sftz', 0)->where("daoqishijian BETWEEN unix_timestamp(now()) and unix_timestamp(DATE_SUB(CURDATE(), INTERVAL -15 DAY))")
    ->getAll();
    
    if ($data) {
        foreach ($data as $t) {
    		$txt = $t['kehuxingming'].'您好,您的'.$t['sccp'].'将于'.dr_date($t['daoqishijian']).'到期,请您及时联系'.$t['glydh'].'续费!';
    		$rt = \Phpcmf\Service::M('member')->sendsms_text($t['khlxr'], $txt); // 用于发送文本内容
    		if ($rt['code']) {
    		    \Phpcmf\Service::M()->table('1_news')->update($t['id'], [
        			'sftz' => 1,
        		]);
    		} else {
    		    log_message("error", "任务短信发送失败:".$rt['msg']);
    		}
        }
    
    }
    满意答案
  • 小黄人 18html
    #7楼    小黄人 18html
    2021-09-04 23:45:42
    Chrome 0
    参考文档:《数据库操作》二次开发熟读这篇文章,保证你每次开发都要看的手册
  • 陈银
    #8楼    陈银
    2021-09-04 23:57:14
    Chrome 0
    二开/定制/使用解答专家 1、如果catid=1该加在那里;2、你这个代码只发送给了用户,同时发送给管理员怎么办。
  • 陈银
    #9楼    陈银
    2021-09-05 00:18:00
    Chrome 0
    @二开/定制/使用解答专家:不错,感谢,谢谢你!