| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package smsplat
- import (
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
- "github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
- "net/http"
- "git.wanbits.io/joe/kettle/sms"
- "git.wanbits.io/joe/kettle/utl"
- "time"
- )
- const (
- aliyun_SCHEME = "https"
- aliyun_DOMAIN = "dysmsapi.aliyuncs.com"
- aliyun_VERSION = "2017-05-25"
- aliyun_API_NAME = "SendSms"
- )
- type aliyunSms struct {
- region, accessKey, accessSecret string
- signName string
- }
- func NewAliyunSms(region, accessKey, accessSecret, signName string) sms.ISms {
- return &aliyunSms{
- region: region,
- accessKey: accessKey,
- accessSecret: accessSecret,
- signName: signName,
- }
- }
- func (self *aliyunSms) Send(phone, msg string) error {
- return utl.ErrNotImplement
- }
- func (self *aliyunSms) SendTpl(phone, tpl string, params []byte) error {
- c, err := dysmsapi.NewClientWithAccessKey(self.region, self.accessKey, self.accessSecret)
- if err != nil {
- return err
- }
- c.SetConnectTimeout(3 * time.Second)
- c.SetReadTimeout(3 * time.Second)
- req := requests.NewCommonRequest()
- req.Method = http.MethodPost
- req.Scheme = aliyun_SCHEME
- req.Domain = aliyun_DOMAIN
- req.Version = aliyun_VERSION
- req.ApiName = aliyun_API_NAME
- req.QueryParams["RegionId"] = self.region
- req.QueryParams["PhoneNumbers"] = phone
- req.QueryParams["SignName"] = self.signName
- req.QueryParams["TemplateCode"] = tpl
- req.QueryParams["TemplateParam"] = string(params)
- _, err = c.ProcessCommonRequest(req)
- return err
- }
- func (self *aliyunSms) GetBalance() (float64, error) {
- return 0.0, utl.ErrNotImplement
- }
- func (self *aliyunSms) GetAvailable() (int64, error) {
- return 0, utl.ErrNotImplement
- }
- func (self *aliyunSms) Name() string {
- return "aliyuncs.com"
- }
|