消息&短信 MSGSMS-Python:接收状态报告

时间: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
# -*- coding: utf-8 -*-
import urllib.parse

# 短信平台上报状态报告数据样例(urlencode)
#success_body = "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";

'''
解析状态报告数据
@param data: 短信平台上报的状态报告数据
@return: 
'''
def onSmsStatusReport(data):
    keyValues = urllib.parse.parse_qs(data); #解析状态报告数据

    '''
    Example: 此处已解析status为例,请按需解析所需参数并自行实现相关处理

    'smsMsgId': 短信唯一标识
    'total': 长短信拆分条数
    'sequence': 拆分后短信序号
    'source': 状态报告来源
    'updateTime': 资源更新时间
    'status': 状态码
    '''
    status = keyValues.get('status'); #状态报告枚举值
    # 通过status判断短信是否发送成功
    if 'DELIVRD' == str.upper(status[0]):
        print('Send sms success. smsMsgId: ', keyValues.get('smsMsgId')[0]);
    else:
        # 发送失败,打印status和orgCode
        print('Send sms failed. smsMsgId: ', keyValues.get('smsMsgId')[0]);
        print('Failed status: ', status[0]);

if __name__ == '__main__':
#     onSmsStatusReport(success_body)
    onSmsStatusReport(failed_body)
support.huaweicloud.com/devg-msgsms/sms_04_0014.html