提高效率!企业短信通道账单拆分一键处理,干货分享

举报
小Tomkk 发表于 2024/03/01 19:49:07 2024/03/01
【摘要】 提高效率!企业短信通道账单拆分一键处理

# 提高效率!企业短信通道账单拆分一键处理,干货分享!

昨天从硬盘里看到2019年写的 账单拆分案列,这里分享给大家


## 背景

**先搞明白 短信通道是什么?**
短信通道是指用于发送和接收短消息服务(SMS)的通信路径或渠道。短信通道允许信息在移动设备之间进行传递,通常用于发送文字消息、通知、验证代码等。这些通道可以通过各种技术和协议实现,包括短信网关、短信API(应用程序接口)、无线电波等。

**那一条短信通常包含以下几个部分**

*   \*\*短信内容 :\*\*这是短信的主要部分,包含你想要传达的信息。短信内容应该简洁明了,能够清楚地传达你的意图。
*   \*\*短信签名 :\*\*短信签名通常位于短信的末尾,用于标识发件人。这可以是一个名字、一个公司名或者一个特定的标识。短信签名的作用是帮助接收者识别短信的来源,特别是当接收者收到来自陌生号码的短信时。
*   \*\*收件人 :\*\*这是短信要发送到的目标,可以是一个或多个手机号码。

\*\*发送日期和时间 :\*\*这是短信被发送的日期和时间。
一般比较多的是验证码,如下【华为云】就是 短信签名

微信图片_20240301194014.jpg

**请注意,不是所有的短信都包含短信签名,这取决于发送者是否选择添加。但是在中国都会有短信签名,因为以前短信诈骗太多了,要商用需要去 中国电信,中国联通,中国广电,和 中国移动备案才可以额!**

## 企业短信通道账单展示

具体可以去百度云下载  


下面是脱敏的数据又是真实的短信明细,

但是还有2个问题

*   第一个问题?一个短信通道会有多个短信签名,可以看到 【某照明品牌】【某动物园】,需要分别结算的
*   第二个问题?短信一直有字数限制,70个字内,只是现在智能手机,会把2个短信拼起来看起来像一条。其实用旧一点的手机是不会解析的,就会是2条。如下

[地址]

## 干货来了用python拆分短信账号

这个应该我之前的写的代码,今天找出来,优化的下代码,我提取了一些功能模块,使用了更具描述性的变量名,并遵循了 PEP 8 的规范。
为能读懂下面的代码这里说明下,

*   dh10856\_gbk.xlsx 是短信服务商发来了短信明细。(以脱敏)
*   dh10856\_gbk\_OKOK.xlsx是执行 python 后 拆分完成的短信明细。

import sys
from openpyxl import load_workbook
import re

def extract_content(text):
    # 使用正则表达式提取【】中的内容
    pattern = r'【(.*?)】'
    matches = set(re.findall(pattern, text))
    return list(matches)

def update_dict_and_ws(ws, dict_data, output_list):
    # 更新字典数据和工作表
    for key, value in dict_data.items():
        SMS_var1 = ws.cell(column=3, row=key + 1).value
        for item in output_list:
            print_words = f"【{item}】"
            # 如果第三列的内容以【item】开头,则更新第七列的值
            if SMS_var1[:len(item) + 2] == print_words:
                for k, v in dict_data.items():
                    ws.cell(column=7, row=k + 1).value = print_words

def update_ws_by_output_list(ws, wb, output_list, rows):
    # 根据提取的内容列表,更新工作表
    for item in output_list:
        print_words = f"【{item}】"
        # 创建新的工作表
        wb.create_sheet(title=print_words)
        x, z = 1, 1

        while x < rows:
            x += 1
            ws1 = wb[print_words]
            ws_title = ws.cell(column=7, row=x).value

            # 如果第七列的内容与当前提取的内容相符,则更新新工作表
            if print_words == ws_title:
                z += 1
                for col in range(1, 6):
                    ws1.cell(column=col, row=z).value = ws.cell(column=col + 1, row=x).value

def main_dictionary(ws, wb, rows, output_list):
    dict_data = {}
    x = 1

    while x < rows:
        x += 1
        mobile = ws.cell(column=2, row=x).value
        number = ws.cell(column=1, row=x).value
        mobile_add = ws.cell(column=2, row=x + 1).value

        # 如果当前行和下一行的手机号相同,更新字典数据
        if mobile == mobile_add:
            dict_data.update({number: mobile})
        else:
            dict_data.update({number: mobile})
            update_dict_and_ws(ws, dict_data, output_list)
            dict_data = {}

    print("---end----" + str(x))
    update_ws_by_output_list(ws, wb, output_list, rows)

    wb.save(filename="dh10856_gbk_OKOK.xlsx")
    print("exit")

def main():
    print("Hello, World!")
    wb = load_workbook("dh10856_gbk.xlsx")
    ws = wb["sheet1"]
    rows = ws.max_row

    x = 1
    text = ""

    while x < rows:
        x += 1
        text += ws.cell(column=3, row=x).value

    output_list = extract_content(text)
    x = 1
    main_dictionary(ws, wb, rows, output_list)

if __name__ == '__main__':
    sys.exit(main())

显示如下
可以看到 自动生成了 4个 短信【签名】了,可以理解一个签名就是需要和客户公司结账的明细,然后自己过滤发送成功的就ok了

## 最后短信通道账单拆分后的处理。

大家都是知道 ,我们手机发短信是 1毛条。但是 公司和公司之间结算不会这个贵,只会便宜比如8分一条,或者 6分,具体需要谈了,哈哈。
那大家会想,用拼夕夕模式跳过中间商赚差价会也会很便宜吗?不好意思,如果你找移动谈好比如 1W条短信可以便宜到 9分,那如果客户的手机是联通的怎么办?所以一般企业短信发客户服务都是找短信平台运营商操作,3网合一,现在应该叫四网合一了。然后就是合作了。

    合作方式1, 约定和 每月多少的量给你打多少折,比如 某东和短信平台运营商约定1个月 8000W条内 ,要求 4分1条。
    合作方式2, 累计折扣,比如 超过 5000条 给  9.5分1条。比如 超过 10000条 给  9分1条。,超过 50000条 给  8分1条。

在中国,一些其他知名的短信接口平台有很多,我这里列举一些共大家参考

*   大汉三通
*   云片网
*   亿美软通
*   云之讯
*   一信通
*   互亿无线
*   聚合数据

## 最后

今天就说到这里,谢谢大家 。

一键三连,福气满堂。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。