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

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

昨天从硬盘里看到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条。

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

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

最后

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

一键三连,福气满堂。

相关推荐
OneWind7 分钟前
使用CloudFlare R2上传图片慢怎么解决
后端
River41610 分钟前
Javer 学 c++(十六):对象特性篇(上)
c++·后端
文心快码BaiduComate17 分钟前
轻松实践:用Python实现“名字大作战”游戏,表白Zulu!
前端·后端·微信小程序
bobz96518 分钟前
tc 的锁问题
后端
空想兔20 分钟前
JeecgBoot SkyWalking 分布式链路跟踪配置
后端·elasticsearch
sunbin37 分钟前
稀土掘金我要吐槽你
后端
GarrettGao2 小时前
Frida常见用法
javascript·python·逆向
程序员鱼皮2 小时前
我代表编程导航,向大家道歉!
前端·后端·程序员
zjjuejin2 小时前
Maven 生命周期与插件机制
后端·maven
Juchecar2 小时前
Pandas技巧:利用 category 类型节省内存
python