sms

package
v1.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2026 License: MIT Imports: 8 Imported by: 0

README

sms

sms 是对阿里云短信 SDK 的业务向封装。它把配置、请求校验和上下文边界整理干净,同时保留原始请求与响应类型。

设计原则

  • 直接复用阿里云 SDK 的请求和响应类型,不重新建模。
  • 请求在发送前会先校验、克隆、清洗,避免调用方对象被内部修改。
  • 所有运行时方法统一要求非 nil context。
  • 保留带 RuntimeOptions 的重载,复杂场景仍可下沉到 SDK 能力。

快速开始

client, err := sms.New(&sms.Config{
    AccessKeyID:     "ak",
    AccessKeySecret: "sk",
    Endpoint:        "dysmsapi.aliyuncs.com",
})
if err != nil {
    panic(err)
}

resp, err := client.SendSms(context.Background(), &sms.SendSmsRequest{
    PhoneNumbers: util.Ptr("13800000000"),
    SignName:     util.Ptr("Bang"),
    TemplateCode: util.Ptr("SMS_123456789"),
    TemplateParam: util.Ptr(`{"code":"9527"}`),
})
if err != nil {
    panic(err)
}

fmt.Println(resp.Body)

API 摘要

type Client interface {
    Raw() *dysmsapi.Client
    SendSms(context.Context, *SendSmsRequest) (*SendSmsResponse, error)
    SendSmsWithOptions(context.Context, *SendSmsRequest, *Option) (*SendSmsResponse, error)
    SendBatchSms(context.Context, *SendBatchSmsRequest) (*SendBatchSmsResponse, error)
    SendBatchSmsWithOptions(context.Context, *SendBatchSmsRequest, *Option) (*SendBatchSmsResponse, error)
    QuerySendDetails(context.Context, *QuerySendDetailsRequest) (*QuerySendDetailsResponse, error)
    QuerySendDetailsWithOptions(context.Context, *QuerySendDetailsRequest, *Option) (*QuerySendDetailsResponse, error)
}

func Open(*Config) (Client, error)
func New(*Config) (Client, error)

默认行为

  • Open(conf)New(conf) 等价
  • PhoneNumbersSignNameTemplateCode 等关键字符串会先 trim
  • 请求缺少关键字段会在进入 SDK 前直接报错

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNilConfig               = errors.New("sms: config is required")
	ErrContextRequired         = errors.New("sms: context is required")
	ErrAccessKeyIDRequired     = errors.New("sms: access key id is required")
	ErrAccessKeySecretRequired = errors.New("sms: access key secret is required")
	ErrSendRequestRequired     = errors.New("sms: send sms request is required")
	ErrBatchRequestRequired    = errors.New("sms: send batch sms request is required")
	ErrQueryRequestRequired    = errors.New("sms: query send details request is required")
	ErrPhoneNumbersRequired    = errors.New("sms: phone numbers are required")
	ErrSignNameRequired        = errors.New("sms: sign name is required")
	ErrTemplateCodeRequired    = errors.New("sms: template code is required")
	ErrPhoneNumberRequired     = errors.New("sms: phone number is required")
	ErrSendDateRequired        = errors.New("sms: send date is required")
)

Functions

This section is empty.

Types

type Client

func New

func New(conf *Config) (Client, error)

func Open added in v1.2.2

func Open(conf *Config) (Client, error)

type Config

type Config struct {
	AccessKeyID     string
	AccessKeySecret string
	Endpoint        string
	RegionID        string
	SecurityToken   string
	UserAgent       string
	// contains filtered or unexported fields
}

type Option

type Option = teaUtil.RuntimeOptions

type QuerySendDetailsRequest

type QuerySendDetailsRequest = dysmsapi.QuerySendDetailsRequest

type QuerySendDetailsResponse

type QuerySendDetailsResponse = dysmsapi.QuerySendDetailsResponse

type SendBatchSmsRequest

type SendBatchSmsRequest = dysmsapi.SendBatchSmsRequest

type SendBatchSmsResponse

type SendBatchSmsResponse = dysmsapi.SendBatchSmsResponse

type SendSmsRequest

type SendSmsRequest = dysmsapi.SendSmsRequest

type SendSmsResponse

type SendSmsResponse = dysmsapi.SendSmsResponse

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL