# -*- coding: utf-8 -*-
import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse
from datetime import datetime
# todo
# 消费成功推动通知,并记录到与云文档
# 全局参数配置
# 接收的号码
phone_numbers='13123456701'
# 端口号和号码的映射
phone_num_map={
01:'13123456701',
02:'13123456702',
}
wifi410_list=[
13123456701,
13123456702,
13123456703,
13123456704
]
# 签名的
secret='123456789'
# 定义中文日期时间格式
chinese_format = "%Y年%m月%d日 %H时%M分%S秒"
# 存放结果信息
msg =datetime.now().month+'月份消费情况\n生成时间:'+datetime.now().strftime(chinese_format)+'\n'
msg_failed=''
# todo 优化
# 获取当前月份
# 根据端口获取发送的短信内容
# def getSmsContent(port):
# # 获取当前日期和时间
# now = datetime.now()
# # 格式化日期和时间
# formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
# print("当前日期和时间:", formatted_date)
# phone_num= phone_num_map[port]
# print("phone_num:",phone_num)
# sms_content= '{}\n{}\n执行消费'.format(formatted_date,phone_num)
# print("sms_content:",sms_content)
# return sms_content
# 根据手机号获取发送的短信内容
def getSmsContent(phone_num):
# 获取当前日期和时间
now = datetime.now()
# 格式化日期和时间
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("当前日期和时间:", formatted_date)
# phone_num= phone_num_map[port]
# print("phone_num:",phone_num)
sms_content= '{}\n{}\n执行消费'.format(formatted_date,phone_num)
print("sms_content:",sms_content)
return sms_content
# 根据时间戳和signStr得到真正的校验串
def getSignStr(timestamp,secret):
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
print("sign:",sign)
return sign
# 发短信
def send_sms(port):
print("执行-send_sms")
domain='frp11111.1024123.xyz'
url ='{}:{}/sms/send'.format(domain,port)
print("url:",url)
phone_num= phone_num_map[port]
# 获取当前时间的UNIX时间戳(秒)
timestamp = str(round(time.time() * 1000))
json_text = {
"data": {
"sim_slot": 1,
"phone_numbers": phone_numbers,
"msg_content": getSmsContent(phone_num)
},
"timestamp": timestamp,
"sign": getSignStr(timestamp, secret)
}
headers = {'Content-Type': 'application/json;charset=utf-8'}
# res =requests.post(url, json.dumps(json_text), headers=headers)
# print("res:",res)
# response_str = requests.post(url, json.dumps(json_text), headers=headers)
# {
# "code": 200,
# "msg": "success",
# "data": "success",
# "timestamp": 1653982995002,
# "":sign "NGxleev7ZZ%2Bd2KYCPHGw9XuoDo6Y6u7y1Pe3AZmsw6k%3D"
# }
# '''
response_dict = json.loads(response_str)
if response_dict['code'] == 200 and response_dict['msg'] == 'success':
print("请求成功")
msg+'[frp]\t'+ phone_num+ "\t发短信成功\t消费成功\n"
else:
print("请求失败")
msg_failed+ '[frp]\t'+phone_num+ "\t发短信失败\t消费失败\n"
# 遍历执行
def do_work():
for key, value in phone_num_map.items():
print(f"Key: {key}, Value: {value}")
send_sms(key)
print("==============")
# =====
# 开始410 部分
def send_sms_410(phone_num):
# 使用切片截取后四位
pre= phone_num[-4:]
print('pre:',pre)
domain='f11111.vvv.xyz'
url = 'http://{}.{}:8003/api?telnum={}&smstext={}'.format(pre,domain,phone_numbers,getSmsContent(phone_num))
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url, headers=headers)
print("send_sms_410.response,",response)
response_dict = json.loads(response)
print("response_dict,",response_dict)
if response_dict['code'] == 200 and response_dict['msg'] == 'success':
print("请求成功")
msg+ '[410]\t'+ phone_num+ "\t发短信成功\t消费成功\n"
else:
print("请求失败")
msg_failed+ '[410]\t'+phone_num+ "\t发短信失败\t消费失败\n"
# 410循环执行
def do_work_410():
for index, item in enumerate(my_list):
print(f"Index: {index}, Item: {item}")
send_sms_410(item)
print("==============")
if __name__ == '__main__':
print("111111")
# 调用函数发送消息
# result =getSmsContent(01)
# result =send_sms(01)
# 打印返回结果
# print("result:\n",result)
do_work()
410呆瓜版本
最新推荐文章于 2024-06-14 11:20:52 发布