Пример #1
0
// 发送
func (this *phoneMessageImpl) Send(d mss.Data) error {
	err := this.messageImpl.Send(d)
	if err == nil {
		v := *this._val
		v = notify.PhoneMessage(Transplate(string(v), d))
		var contentId int //内容编号
		if contentId, err = this.saveContent(string(v)); err == nil {
			this.saveUserMsg(contentId, 1) //短信默认已读
		}
	}
	return err
}
Пример #2
0
// 创建消息模版对象
func (this *messageManagerImpl) GetMessage(id int) mss.IMessage {
	if msg := this._rep.GetMessage(id); msg != nil {
		con := this._rep.GetMessageContent(msg.Id)
		switch msg.Type {
		case notify.TypePhoneMessage:
			v := notify.PhoneMessage(con.Data)
			return this.CreateMessage(msg, &v)
		case notify.TypeEmailMessage:
			v := notify.MailMessage{}
			json.Unmarshal([]byte(con.Data), &v)
			return this.CreateMessage(msg, &v)
		case notify.TypeSiteMessage:
			v := notify.SiteMessage{}
			json.Unmarshal([]byte(con.Data), &v)
			return this.CreateMessage(msg, &v)
		}
	}
	return nil
}
Пример #3
0
// 发送验证码,并返回验证码
func (this *memberImpl) SendCheckCode(operation string, mssType int) (string, error) {
	const expiresMinutes = 10 //10分钟生效
	code := domain.NewCheckCode()
	this._value.CheckCode = code
	this._value.CheckExpires = time.Now().Add(time.Minute * expiresMinutes).Unix()
	_, err := this.Save()
	if err == nil {
		mgr := this._mssRep.NotifyManager()
		pro := this.Profile().GetProfile()

		// 创建参数
		data := map[string]interface{}{
			"code":      code,
			"operation": operation,
			"minutes":   expiresMinutes,
		}

		// 根据消息类型发送信息
		switch mssType {
		case notify.TypePhoneMessage:
			// 某些短信平台要求传入模板ID,在这里附加参数
			provider, _ := this._valRep.GetDefaultSmsApiPerm()
			data = sms.AppendCheckPhoneParams(provider, data)

			// 构造并发送短信
			n := mgr.GetNotifyItem("验证手机")
			c := notify.PhoneMessage(n.Content)
			err = mgr.SendPhoneMessage(pro.Phone, c, data)

		default:
		case notify.TypeEmailMessage:
			n := mgr.GetNotifyItem("验证邮箱")
			c := &notify.MailMessage{
				Subject: operation + "验证码",
				Body:    n.Content,
			}
			err = mgr.SendEmail(pro.Phone, c, data)
		}
	}
	return code, err
}