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

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

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

背景

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

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

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

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

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

企业短信通道账单展示

具体可以去百度云下载 pan.baidu.com/s/1WfUtroVA...

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

但是还有2个问题

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

地址

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

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

  • dh10856_gbk.xlsx 是短信服务商发来了短信明细。(以脱敏)
  • dh10856_gbk_OKOK.xlsx是执行 python 后 拆分完成的短信明细。
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网合一,现在应该叫四网合一了。然后就是合作了。

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

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

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

最后

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

一键三连,福气满堂。

相关推荐
小黑随笔15 分钟前
【Golang 实战 ELK 日志系统全流程教程(一):ELK 是什么?为什么要用 ELK?】
后端·elk·golang
Code季风23 分钟前
深入实战 —— Protobuf 的序列化与反序列化详解(Go + Java 示例)
java·后端·学习·rpc·golang·go
深栈解码36 分钟前
OpenIM 源码深度解析系列(十二):群聊读扩散机制场景解析
后端
love530love38 分钟前
【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载缓存占满 C 盘问题:更改缓存位置全流程
开发语言·人工智能·windows·笔记·python·缓存·uv
狐凄39 分钟前
Python实例题:基于 Apache Kafka 的实时数据流处理平台
开发语言·python
MrWho不迷糊1 小时前
模板方法与工厂模式实践——一套通用交易执行模型
后端·设计模式
我想说一句1 小时前
WEUI Uploader源码学习笔记:从CSS到Stylus
前端·后端
武子康1 小时前
大数据-18 Flume HelloWorld 实现Source Channel Sink 控制台流式收集
大数据·后端·apache flume
OnlyLowG1 小时前
头痛的旧技术:低版本dubbo接入otel、低版本Logstash接入otel
后端
Jooolin1 小时前
【Python】Python可以用来做游戏吗?
python·ai编程·游戏开发