92 lines
2.2 KiB
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"}, "", 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)),
|
|
"remaining_budget": strconv.Itoa(int(req.RemainingBudget)),
|
|
"remaining_stock": strconv.Itoa(int(req.AvailableStock)),
|
|
"budget_usage_rate": fmt.Sprintf("%.1f", req.StockUsageRate),
|
|
}
|
|
}
|