探索者的博客
2021-01-11 10:58:08 1216

华为云短信发送短信状态回调php代码

作者头像 探索者
$sms_url_callback = file_get_contents("php://input");
// 短信平台上报状态报告数据样例(urlencode)
$success_body = 'http://www.baidu.cn/sequence=1&total=1&updateTime=2018-10-31T08%3A43%3A41Z&source=2&smsMsgId=2ea20735-f856-4376-afbf-570bd70a46ee_11840135&status=DELIVRD';
// $failed_body = 'sequence=1&total=1&updateTime=2018-10-31T08%3A43%3A41Z&source=2&smsMsgId=2ea20735-f856-4376-afbf-570bd70a46ee_11840135&status=E200027';
file_put_contents("test.txt", $sms_url_callback.PHP_EOL, FILE_APPEND);

onSmsStatusReport($sms_url_callback);
// onSmsStatusReport($failed_body);

/**
 * 解析状态报告数据
 *
 * @param string $data 短信平台上报的状态报告数据
 */
function onSmsStatusReport(string $data)
{
    $keyValues = [];
    parse_str(urldecode($data), $keyValues); //解析状态报告数据

    /**
     * Example: 此处已解析status为例,请按需解析所需参数并自行实现相关处理
     *
     * 'smsMsgId': 短信唯一标识
     * 'total': 长短信拆分条数
     * 'sequence': 拆分后短信序号
     * 'source': 状态报告来源
     * 'updateTime': 资源更新时间
     * 'status': 状态码
     */
    $status = $keyValues['status']; // 状态报告枚举值
    // 通过status判断短信是否发送成功
    if ('DELIVRD' === strtoupper($status)) {
        file_put_contents("test.txt", 'Send sms success. smsMsgId: ' . $keyValues['smsMsgId'] . PHP_EOL, FILE_APPEND);
        //print 'Send sms success. smsMsgId: ' . $keyValues['smsMsgId'] . PHP_EOL;
    } else {
        // 发送失败,打印status和orgCode
        file_put_contents("test.txt", '====Failed status: ' . $status . PHP_EOL .'Send sms success. smsMsgId: ' . $keyValues['smsMsgId'] . PHP_EOL, FILE_APPEND);
       // print 'Send sms failed. smsMsgId: ' . $keyValues['smsMsgId'] . PHP_EOL;
       // print 'Failed status: ' . $status . PHP_EOL;
    }
}

华为云短信发送短信状态回调php代码

评论区

评论者头像

张三

2025-06-16

非常实用的文章,我学到了很多关于前端性能优化的知识。特别是缓存策略部分,对我帮助很大。

评论者头像

李四

2025-06-15

代码分割确实是提高前端性能的重要手段,请问作者有没有实际项目中遇到的代码分割最佳实践可以分享?

作者头像
探索者 作者
2025-06-16

感谢提问!在实际项目中,我通常会根据路由、组件和第三方库进行代码分割。对于大型组件库,可以考虑使用动态导入来实现按需加载。