PetAgent/backend/utils/sendSMS.py

96 lines
3.6 KiB
Python
Raw Normal View History

2026-04-12 11:32:37 +08:00
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys
import json
from typing import List
from alibabacloud_dypnsapi20170525.client import Client as Dypnsapi20170525Client
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_credentials.models import Config as CredentialConfig # 补充正确导入
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dypnsapi20170525 import models as dypnsapi_20170525_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> Dypnsapi20170525Client:
"""
使用凭据初始化账号Client
@return: Client
@throws Exception
"""
# 方案1直接传入明文AK/SK测试用生产环境禁止
credentialsConfig = CredentialConfig(
type='access_key',
# 直接传入明文AccessKey ID替换为你的真实AK
access_key_id='LTAI5tAxWRqns3nK8kR6PsMW',
# 直接传入明文AccessKey Secret替换为你的真实SK
access_key_secret='tZ7ZAn7k1vkY4amavGeloEU0JzHIsb'
)
credentialsClient = CredentialClient(credentialsConfig)
# 可选获取凭证详情普通AK的security_token为None不影响使用
credential = credentialsClient.get_credential()
access_key_id = credential.get_access_key_id()
access_key_secret = credential.get_access_key_secret()
security_token = credential.get_security_token()
# 配置OpenAPI替换占位符为真实Endpoint
config = open_api_models.Config(
credential=credentialsClient,
endpoint='dypnsapi.aliyuncs.com' # 修正:真实短信验证端点
)
return Dypnsapi20170525Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client()
send_sms_verify_code_request = dypnsapi_20170525_models.SendSmsVerifyCodeRequest(
sign_name='速通互联验证码',
template_code='100001',
phone_number='17536133913',
template_param='{"code":"##code##","min":"5"}'
)
runtime = util_models.RuntimeOptions()
try:
resp = client.send_sms_verify_code_with_options(send_sms_verify_code_request, runtime)
print(json.dumps(resp, default=str, indent=2))
except Exception as error:
# 增强:避免空指针异常
print(error.message)
if error.data:
print(error.data.get("Recommend"))
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
send_sms_verify_code_request = dypnsapi_20170525_models.SendSmsVerifyCodeRequest(
sign_name='速通互联验证码',
template_code='100001',
phone_number='19922573675',
template_param='{"code":"##code##","min":"5"}'
)
runtime = util_models.RuntimeOptions()
try:
resp = await client.send_sms_verify_code_with_options_async(send_sms_verify_code_request, runtime)
print(json.dumps(resp, default=str, indent=2))
except Exception as error:
# 增强:避免空指针异常
print(error.message)
if error.data:
print(error.data.get("Recommend"))
if __name__ == '__main__':
Sample.main(sys.argv[1:])