aligosms

package module
v0.0.0-...-e6d0bbb Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2020 License: Apache-2.0 Imports: 13 Imported by: 0

README

aligosms

An Aliyun Short Message SDK by golang.

阿里云短信服务 Go语言SDK

How to use

Way 1
    import "github.com/leonzhangxf/aligosms"

    sender := aligosms.DefaultMessageSender
	sender.AccessKeyId = accKeyId
	sender.AccessSecret = accSecret
	res := sender.SendMsg(signName, tempCode, phone, outId, tempParam)
	fmt.Println(res.String())
Way 2
    import "github.com/leonzhangxf/aligosms"
    

    aligosms.SendMsg(protocol, domain, regionId, accKey, 
    	    accSecret, signName, tempCode, phones, outId,
        	params)

Remark

https://github.com/leonzhangxf/aligosms

Documentation

Index

Constants

View Source
const (
	//系统参数KEY
	//System parameter key.
	KeySignatureMethod  = "SignatureMethod"
	KeySignatureNonce   = "SignatureNonce"
	KeyAccessKeyId      = "AccessKeyId"
	KeySignatureVersion = "SignatureVersion"
	KeyTimestamp        = "Timestamp"
	KeyFormat           = "Format"

	//业务API参数KEY
	//Business API parameter key.
	KeyAction        = "Action"
	KeyVersion       = "Version"
	KeyRegionId      = "RegionId"
	KeyPhoneNumbers  = "PhoneNumbers"
	KeySignName      = "SignName"
	KeyTemplateParam = "TemplateParam"
	KeyTemplateCode  = "TemplateCode"
	KeyOutId         = "OutId"

	//签名参数KEY
	//Signature parameter key.
	KeySignature = "Signature"
)

参数Key列表 The parameters key list.

View Source
const (
	DefaultSignatureMethod  = "HMAC-SHA1"
	DefaultSignatureVersion = "1.0"
	DefaultFormat           = "XML"
	DefaultAction           = "SendSMS"
	DefaultVersion          = "2017-05-25"
	DefaultRegionId         = "cn-hangzhou"
	DefaultDomain           = "dysmsapi.aliyuncs.com"
	DefaultProtocol         = "http"
)

参数默认值列表 Default value of parameters.

Variables

View Source
var (
	ParamsMarshallError     = errors.New("params marshall error")
	GetTimeLocationError    = errors.New("get time location error")
	ResponseUnMarshallError = errors.New("response unMarshall error")
	ResponseReadError       = errors.New("response read error")
	HttpRequestError        = errors.New("request error")
)

请求调用异常列表

View Source
var DefaultMessageSender = &MessageSender{
	Protocol: DefaultProtocol,
	Domain:   DefaultDomain,
	RegionId: DefaultRegionId,
}

默认短信发送器 需要设置 AccessKeyId 和 AccessSecret 参数

Functions

func Sign

func Sign(accessSecret, stringToSign string) (sign string)

签名采用HmacSHA1算法 + Base64,编码采用:UTF-8 增加签名结果到请求参数中,发送请求 注意:签名也要做特殊URL编码 @param accessSecret:你的AccessKeyId对应的秘钥AccessSecret,

特别说明:POP要求需要后面多加一个“&”字符,即accessSecret + “&”

@param stringToSign:即第三步生成的待签名请求串 @return 签名

func SpecialUrlEncode

func SpecialUrlEncode(value string) (urlEncodeStr string)

特殊URL编码 这个是POP特殊的一种规则,即在一般的URLEncode后再增加三种字符替换: 加号(+)替换成 %20、星号(*)替换成 %2A、%7E 替换回波浪号(~) @param value 待编码字符串 @return POP编码完成字符串

Types

type MessageSender

type MessageSender struct {
	Protocol     string
	Domain       string
	RegionId     string
	AccessKeyId  string
	AccessSecret string
}

消息发送器

func NewMessageSender

func NewMessageSender(protocol, domain, regionId, accKey, accSecret string) MessageSender

创建短信发送器

func (*MessageSender) SendMsg

func (sender *MessageSender) SendMsg(signName, tempCode, phones, outId string,
	params map[string]string) SendSmsResponse

调用发送短信 需要设置 AccessKeyId 和 AccessSecret 参数 @param signName 短信签名 @param tempCode 短信模板Code @param phones 15123279507 短信接收号码

支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,
批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;
发送国际/港澳台消息时,接收号码格式为:国际区号+号码,如“85200000000”

@param outId 调用方回调唯一识别ID @param params 短信模板内的参数 @return 请求调用响应

type SendSmsResponse

type SendSmsResponse struct {
	XMLNameSendSMSResponse xml.Name `xml:"SendSMSResponse"`
	XMLNameError           xml.Name `xml:"Error"`
	RequestId              string   `xml:"RequestId"` //请求唯一识别ID
	BizId                  string   `xml:"BizId"`     //业务调用方唯一识别ID
	Code                   string   `xml:"Code"`      //响应码,正常返回“OK”
	Message                string   `xml:"Message"`   //响应信息,正常返回“OK”
	HostId                 string   `xml:"HostId"`    //请求异常时,返回的请求域名
	Recommend              string   `xml:"Recommend"` //异常时的提示
}

发送短信响应 正常时,为"OK" http状态码为200 出现异常时将出现以下值:HostId,Recommend

func SendMsg

func SendMsg(protocol, domain, regionId, accKey, accSecret, signName, tempCode, phones, outId string,
	params map[string]string) SendSmsResponse

使用部分默认配置进行短信请求发送 @param protocol 请求协议 @param domain 请求域名 @param regionId 请求地区节点ID @param accKey AccessKey @param accSecret AccessSecret @param signName 短信签名 @param tempCode 短信模板Code @param phones 15123279507 短信接收号码

支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,
批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;
发送国际/港澳台消息时,接收号码格式为:国际区号+号码,如“85200000000”

@param outId 调用方回调唯一识别ID @param params 短信模板内的参数 @return 请求调用响应

func (*SendSmsResponse) String

func (resp *SendSmsResponse) String() string

输出请求响应详情

Jump to

Keyboard shortcuts

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