voucher/internal/pkg/sms/sms_test.go

92 lines
2.2 KiB
Go

package sms
import (
"context"
"encoding/json"
"fmt"
"strconv"
"testing"
"voucher/internal/biz/do"
)
var config = Config{
AccessKeyID: "LTAI5tM1X4HuqUwT8D74qXAH",
AccessKeySecret: "gxsC1QK12NSKH1HkCqKR1EnMdAy3ad",
Endpoint: "dysmsapi.aliyuncs.com",
SignName: "蓝色兄弟",
RetryTimes: 0,
Timeout: 15,
}
func TestSendSMS(t *testing.T) {
smsService, err := NewService(config)
if err != nil {
t.Errorf("创建短信服务失败: %v", err)
return
}
phoneNumber := "" // 替换为实际手机号
templateCode := "SMS_274900579" // 替换为实际模板ID
params := map[string]string{
"code": "123456",
}
err = smsService.SendSMS(context.Background(), []string{phoneNumber}, templateCode, params)
if err != nil {
t.Errorf("发送短信失败: %v", err)
return
}
t.Logf("已发送至 %s\n", phoneNumber)
}
func TestWarningSend(t *testing.T) {
req := do.WarningBudget{
StockName: "招行2元立减金",
StockId: "20627186",
StockNo: "CMB20627186",
Amount: 2,
AllBudget: 70010,
AllStock: 35005,
UsedStock: 9390,
UsedBudget: 18780,
AvailableStock: 25615,
RemainingBudget: 51230,
StockUsageRate: 20,
}
params := buildTemplateParams(&req)
js, _ := json.Marshal(params)
t.Log(string(js))
smsService, err := NewService(config)
if err != nil {
t.Errorf("创建短信服务失败: %v", err)
return
}
err = smsService.SendSMS(context.Background(), []string{"18666173766"}, "SMS_489660721", params)
if err != nil {
t.Errorf("发送短信失败: %v", err)
return
}
}
func buildTemplateParams(req *do.WarningBudget) map[string]string {
return map[string]string{
"stock_name": req.StockName,
"stock_no": req.StockNo,
"amount": strconv.Itoa(int(req.Amount)),
"all_budget": strconv.Itoa(int(req.AllBudget)),
"all_stock": strconv.Itoa(int(req.AllStock)),
"used_stock": strconv.Itoa(int(req.UsedStock)),
"used_budget": strconv.Itoa(int(req.UsedBudget)),
"available_budget": strconv.Itoa(int(req.RemainingBudget)),
"available_stock": strconv.Itoa(int(req.AvailableStock)),
"budget_usage_rate": fmt.Sprintf("%.1f", req.StockUsageRate),
}
}