大家好,今天给大家介绍一个可以免费发送短信的方法,喜欢记得点赞、一定要收藏 目录 介绍兼容性和适配 SDK/插件;使用代码使用代码pythonPHPZKey SDK/插件python
大家好,今天给大家介绍一个可以免费发送短信的方法,喜欢记得点赞、一定要收藏
使用 泉鸣网络 的api接口进行短信发送
请根据自己的需求,选择对应语言的SDK。
语言/系统 | 发送请求 | 签名 | 多模板 | 多参数模板 |
---|---|---|---|---|
python | √ | √ | √ | √ |
PHP | √ | √ | √ | × |
js | √ | √ | – | √ |
Java | – | – | – | – |
Zkey | √ | √ | √ | × |
魔方 | – | – | – | – |
WordPress | – | – | – | – |
sms = SDK() # 实例化SDK# 这里演示了一个简单的验证码功能check_code = random.randint(100000, 999999) # 生成验证码results, info = sms.send('接受者的手机号', sms.def_model_id, {'code': check_code}) # 发送print(info)
$sms = new QuanmSmsSDK();$result = $sms->sendSms('15666666666', ['code' => '1234']);var_dump($result);
11 => [ // 下载地址 https://gitee.com/chengdu-quanming-network/quanmwl-sms-sdk/tree/master/SMS-SDK/zKey-SDK "className": "QuanmSmsSDK", "channelName": "泉鸣短信",]
打包下载:点击跳转
# -*- coding: utf-8 -*-# author:Tiper(邱鹏)# 文件所属项目:QDC SMS SDK# 文件描述:QuanmSMS SDK (泉鸣开放平台sms接口SDK),包含执行短信业务所需的方法# Python版本要求:python3及以上(可自行修改兼容Python2)# 官网:dev.quanmwl.com# 发布日期:2022-7-31import randomimport hashlibimport requestshl = hashlib.md5()class SDK: def __init__(self): # 请开发者修改下列三行配置信息 self.open_id = '修改为自己的' # 开发者ID self.api_key = '修改为自己的' # 能力列表的apiKey self.def_model_id = 0 # 默认情况下使用的模板ID self.api_host = 'Http://dev.quanmwl.com' # Api Host【默认,api支持https,如有需要请修改】 self.state_code = { '200': '短信发送成功', '201': '表单信息或接口信息有误', '202': '信息重复', '203': '服务器异常,请稍后重试', '204': '找不到数据', '205': '本次请求不安全', '206': '接口版本过低', '207': '余额不足', '208': '验签失败', '209': '功能被禁用', '210': '账户被禁用', '211': '参数过长', '212': '权限不足', '213': '参数调用状态异常', '214': '版本过高', '215': '内容受限', '216': '内容违规', '???': '严重未知错误,请联系服务提供商' } # 更多状态:https://quanmwl.yuque.com/docs/share/9fbd5429-6575-403D-8a3d-7081b2977eda?#8sz4 《平台状态码处理指引》 def sign(self, _tel, model_id, model_args): # type:(str, str, str) -> str """ 签名方法 :param _tel: 接收者手机号 :param model_id: 短信模板ID :param model_args: 短信模板变量参数字典 :return: """ server_sign_data = f"{self.open_id}{self.api_key}{_tel}{model_id}{model_args}" hl.update(server_sign_data.encode("utf-8")) return hl.hexdigest() def send(self, tel, model_id, model_args): # type:(str, int, dict) -> tuple[bool, str] """ 发送短信 :param tel: 接收者手机号 :param model_id: 短信模板ID :param model_args: 短信模板变量参数字典 :return: """ headers = { 'User-Agent': 'QuanmOpenApi_Python_SDK-Sms_0.1.0', # 非必要,但推荐传入用于兼容性统计 } data = { 'openID': self.open_id, 'tel': tel, 'sign': self.sign(tel, str(model_id), str(model_args).replace(' ', '')), 'model_id': model_id, 'model_args': f'{model_args}' } try: response = requests.post(f'{self.api_host}/v1/sms', headers=headers, data=data) # http_status = response.status_code 几乎可以不依赖http状态码,如有需要请自行修改 except: return False, 'Server Error' _mess = 'Not Find' if response is None or 'HTML>' in response.text: print("Requests Fail") return False, _mess else: redata = eval(response.text) http_state = response.status_code if http_state != 200 and 'state' not in redata: return False, _mess api_state = redata['state'] if api_state in self.state_code: _mess = self.state_code[api_state] if api_state == '200': return True, _mess else: return True, _messif __name__ == '__main__': sms = SDK() # 实例化SDK # 这里演示了一个简单的验证码功能 check_code = random.randint(100000, 999999) # 生成验证码 results, info = sms.send('接受者的手机号', sms.def_model_id, {'code': check_code}) # 发送 print(info)
// 示例代码(修改29-30行的配置后可解除注释进行测试)$sms = new QuanmSmsSDK();$result = $sms->sendSms('15666666666', ['code' => '1234']);var_dump($result);class QuanmSmsSDK{ //泉明开放平台openId private $appId; //泉明开放平台apiKey private $apiKey; //泉明开放平台接口地址 private $apiUrl; //泉明开放平台短信模板ID private $templateId; public function __construct() { $this->appId = ''; // 从平台控制面板获取 $this->apiKey = ''; // 从平台控制面板-能力管理-短信接口(SMS)页面开通后获取 $this->apiUrl = 'http://dev.quanmwl.com/'; // 接口网关地址(host)一般不需要修改,已支持https,如有需要请自行修改 $this->templateId = '0'; //短信模板ID,从平台申请,SDK默认使用0号公用模板测试 } private $stateCode = [ 200 => '短信发送成功', 201 => '表单信息或接口信息有误', 202 => '信息重复', 203 => '服务器异常,请稍后重拾', 204 => '找不到数据', 205 => '本次请求不安全', 206 => '接口版本过低', 207 => '余额不足', 208 => '验签失败', 209 => '功能被禁用', 210 => '账户被禁用', 211 => '参数过长', 212 => '权限不足', 213 => '参数调用状态异常', 214 => '版本过高', 215 => '内容受限', 216 => '内容违规', '???' => '严重未知错误,请联系服务提供商' ]; public function sendSms($tel, $args = []): array { $data = [ 'openID' => $this->appId, 'tel' => $tel, 'model_args' => JSON_encode($args), 'sign' => $this->generateSign($tel,json_encode($args)), 'model_id' => $this->templateId ]; return $this->curlPost('v1/sms', $data); } private function generateSign($mobile,$model_args) { return md5($this->appId.$this->apiKey.$mobile.$this->templateId.$model_args); } private function curlPost($path, $body) { $curl = curl_init(); $resquest_api = $this->apiUrl . $path; curl_setopt($curl, CURLOPT_URL, $resquest_api); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $body); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_NOBODY, FALSE); $response = curl_exec($curl); curl_close($curl); $response = json_decode($response, true); if (array_key_exists($response['state'], $this->stateCode)) { return ['code' => $response['state'], 'msg' => $response['mess']]; } else { return ['code' => '-1', 'msg' => '请求结果错误,请联系开发人员核实']; } }}
文件下载地址:点击跳转(https://gitee.com/chengdu-quanming-network/sms-gsa-web/tree/master/)
namespace Niaoyun\Common\Sms;class QuanmSmsSDK extends BaseSms implements ISms{ //开放平台openId private $appId; //开放平台apiKey private $apiKey; //开放平台接口地址 private $apiUrl; //开放平台短信模板ID private $templateId; public function __construct($appId, $apiKey, $apiUrl, $templateId) { $this->appId = '修改为自己的OpenID'; // 控制台 (A1轮测试中需要向官方群群主申请开通获取) $this->apiKey = '修改为自己的ApiKey'; // 控制台-能力管理-短信接口(SMS) (A1轮测试中需要向官方群群主申请开通获取) $this->apiUrl = 'http://dev.quanmwl.com/'; $this->templateId = '0'; // 平台申请到的模板ID (A1轮测试中需要向官方群群主申请开通获取) } public function send($tel, $content, $id = null, $type = 2, $param = [], $handleResult = true) { preg_match('/\d+/', $content, $number); $data = [ 'openID' => $this->appId, 'tel' => $tel, 'sign' => $this->generateSign($tel), 'model_id' => $this->templateId, 'model_args' => json_encode(['code' => $number[0]]) ]; $result = $this->curlPost('v1/sms', $data); if ($result['state'] = 200) { return true; } else { return false; } } private function generateSign($mobile) { return md5('sign-' . $this->appId . $this->apiKey . $mobile); } private function curlPost($path, $body) { $curl = curl_init(); $resquest_api = $this->apiUrl . $path; curl_setopt($curl, CURLOPT_URL, $resquest_api); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $body); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_NOBODY, FALSE); $response = curl_exec($curl); curl_close($curl); return json_decode($response, true); }}
进入 泉鸣网络开放平台
如果没有账号点击注册进行注册
注册后会自动登录
如以有账号点击登录
每天点击签到可以领取1~5的短信额度
tips:有时候可能会签到失败,需重复签到
可以在用户首页进行账号充值或者进入SMS短信进行单独购买
官方文档 点击跳转
来源地址:https://blog.csdn.net/m0_61093868/article/details/127461229
--结束END--
本文标题: 免费发送短信
本文链接: https://www.lsjlt.com/news/408626.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0