消息&短信 MSGSMS-Node.js:接收状态报告

时间:2024-11-15 09:18:56

接收状态报告

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*jshint esversion: 6 */

// 短信平台上报状态报告数据样例(urlencode)
//var success_body = "sequence=1&total=1&updateTime=2018-10-31T08%3A43%3A41Z&source=2&smsMsgId=2ea20735-f856-4376-afbf-570bd70a46ee_11840135&status=DELIVRD";
var failed_body = "sequence=1&total=1&updateTime=2018-10-31T08%3A43%3A41Z&source=2&smsMsgId=2ea20735-f856-4376-afbf-570bd70a46ee_11840135&status=E200027";

/**
 * 解析状态报告数据
 * 
 * @param data 短信平台上报的状态报告数据
 * @returns
 */
function onSmsStatusReport(data) {
    var querystring = require('querystring');
    var keyValues = querystring.parse(data); // 解析状态报告数据

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

// onSmsStatusReport(success_body);
onSmsStatusReport(failed_body);
support.huaweicloud.com/devg-msgsms/sms_04_0016.html