github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/third/kmgSubmail/kmgSubMessage.go (about)

     1  package kmgSubmail
     2  
     3  import (
     4  	"github.com/bronze1man/kmg/encoding/kmgJson"
     5  	"github.com/bronze1man/kmg/errors"
     6  	"github.com/bronze1man/kmg/kmgDebug"
     7  	"github.com/bronze1man/kmg/kmgLog"
     8  	"github.com/bronze1man/kmg/kmgStrconv"
     9  	"io/ioutil"
    10  	"net/http"
    11  	"net/url"
    12  )
    13  
    14  type Message struct {
    15  	Project MessageProject
    16  	To      string //手机号
    17  	Vars    string // 也可用json传入多个变量名哟
    18  
    19  }
    20  
    21  type SubMessage struct {
    22  	Appid     string
    23  	Signature string
    24  }
    25  
    26  var MessageConfig = SubMessage{}
    27  
    28  type MessageProject string
    29  
    30  func XSendMessage(message Message) (err error) {
    31  	subMessageUrl := "https://api.submail.cn/message/xsend.json"
    32  	kmgDebug.Println(message.Vars)
    33  	response, err := http.PostForm(subMessageUrl, url.Values{
    34  		"appid":     {MessageConfig.Appid},
    35  		"signature": {MessageConfig.Signature},
    36  		"to":        {message.To},
    37  		"project":   {kmgStrconv.InterfaceToString(message.Project)},
    38  		"vars":      {message.Vars},
    39  	})
    40  	defer response.Body.Close()
    41  	if err != nil {
    42  		return err
    43  	}
    44  	body, err := ioutil.ReadAll(response.Body)
    45  	if err != nil {
    46  		return err
    47  	}
    48  	kmgLog.Log("SubMessage", string(body), message)
    49  	data := kmgJson.MustUnmarshalToMapDeleteBOM(body)
    50  	if data["status"] == "error" {
    51  		return errors.New(kmgStrconv.InterfaceToString(data["msg"]))
    52  	}
    53  	return nil
    54  
    55  }
    56  
    57  func MustXSendMessage(message Message) {
    58  	err := XSendMessage(message)
    59  	if err != nil {
    60  		panic(err)
    61  	}
    62  }