wangchuanjin пре 2 година
родитељ
комит
39dc6a853e
1 измењених фајлова са 56 додато и 0 уклоњено
  1. 56 0
      sms/sms.go_yunpian_del

+ 56 - 0
sms/sms.go_yunpian_del

@@ -0,0 +1,56 @@
+/*
+短信发送工具类
+暂定使用云片短信发送平台,
+后期确定下来后,再修改此工具类即可
+TODO 发送短信应作一下发送记录,并在前台(action层)控制单一用户发送次数,如每天发送5次。发送多浪费大家成本啊。
+*/
+package sms
+
+import (
+	"io/ioutil"
+	"log"
+	"net/http"
+	"net/url"
+)
+
+const (
+	//取用户信息地址
+	getUserInfoUrl = "http://yunpian.com/v1/user/get.json"
+	//发送短信地址
+	sendSmsUrl = "http://yunpian.com/v1/sms/tpl_send.json" //"http://yunpian.com/v1/sms/send.json"
+	//购买服务后,提供的KEY
+	key = "950090a3dfefb4f821ed8f0221482fcd "
+)
+
+//开启多协程发送短信
+func SendSms(tomobile, tpl, params string) {
+	go sendTextSms(tomobile, tpl, params)
+}
+
+//发短信
+func sendTextSms(tomobile, tpl /*模板标识*/, params /*url参数模板*/ string) error {
+	content, _ := url.Parse(params)
+	param := url.Values{"apikey": []string{key}, "mobile": []string{tomobile}, "tpl_id": []string{tpl}, "tpl_value": []string{content.String()}}
+	res, err := http.PostForm(sendSmsUrl, param)
+	if err != nil {
+		log.Println(tomobile, err.Error())
+		return err
+	}
+	defer res.Body.Close()
+	bs, _ := ioutil.ReadAll(res.Body)
+	log.Println(tomobile, "返回内容:"+string(bs))
+	return nil
+}
+
+//取得用户信息
+func GetUserInfo() (string, error) {
+	param := url.Values{"apikey": []string{key}}
+	res, err := http.PostForm(getUserInfoUrl, param)
+	if err != nil {
+		log.Println(err.Error())
+		return "", err
+	}
+	defer res.Body.Close()
+	bs, _ := ioutil.ReadAll(res.Body)
+	return string(bs), nil
+}