Documentation ¶
Index ¶
- Constants
- Variables
- func AddressToIPAndPort(addr string) (string, int)
- func CheckDomain(addr string) bool
- func CryptPwd(userid string, pwd string, strtime string) string
- func FormatContent(content string) string
- func FormatCurrentTime() string
- func GetCustid() (custid string)
- func GetExdata() (exdata string)
- func GetExno() string
- func GetSvrtype() string
- func HttpPostOnce(url string, data []byte, content_type string) (int, []byte, error)
- func PkgToJson(pkg interface{}) []byte
- func RemoveAddressElement(s []string, element string) []string
- func SendAndRecvOnce(postobj PostObj) bool
- func ValidateCustId(custId string) bool
- func ValidateExData(exData string) bool
- func ValidateIpAndPort(ipAddress string) int
- func ValidateMessage(content string) bool
- func ValidateMobile(mobile string) bool
- func ValidateMobiles(mobiles string) string
- func ValidatePwd(pwd string) bool
- func ValidateSubPort(strSubPort string) bool
- func ValidateSvrType(svrType string) bool
- func ValidateUserId(userid string) bool
- type BatchSend
- type CheckAddress
- type ConfigManager
- type GetBalance
- type GetMo
- type GetRpt
- type Mo
- type MoRet
- type MultiSend
- type PostObj
- type PushMo
- type PushRpt
- type Remains
- type Rpt
- type RptRet
- type SMData
- type SingleSend
- type TemplateSend
- type UserInfo
- type VoiceData
Constants ¶
View Source
const ( // 参数类错误-30开头 // 账号格式不合法 ERROR_300001 = -300001 // 密码格式不合法 ERROR_300002 = -300002 // IP和端口信息不合法 ERROR_300003 = -300003 // IP不合法 ERROR_300004 = -300004 // 端口不合法 ERROR_300005 = -300005 // 手机号码格式不合法 ERROR_300006 = -300006 // 短信内容长度不合法 ERROR_300007 = -300007 // 扩展子号不合法 ERROR_300008 = -300008 // 流水号不合法 ERROR_300009 = -300009 // 密码加密失败 ERROR_300010 = -300010 // 业务类型不合法 ERROR_300011 = -300011 // exdata不合法 ERROR_300012 = -300012 // 发送优先级不合法 ERROR_300013 = -300013 // 个性化群发发送条数不在0到100之间 ERROR_300014 = -300014 // Message对象为空 ERROR_300015 = -300015 // msgId参数为空或者msgId长度不为0 ERROR_300016 = -300016 // 账号或者密码错误 ERROR_300017 = -300017 // 发送类型错误 ERROR_300018 = -300018 // 上行mos为空或者mos集合大于0 ERROR_300019 = -300019 // 状态报告rpts为空或者rpts集合大于0 ERROR_300020 = -300020 // 请求路径为空 ERROR_300021 = -300021 // 是否需要日志设置不合法 ERROR_300023 = -300023 //手机号码超过最大支持数量(1000) ERROR_300024 = -300024 //短信内容编码失败 ERROR_300025 = -300025 // 业务类错误-31开头 // 单条发送失败 ERROR_310001 = -310001 // 相同内容发送失败 ERROR_310002 = -310002 // 个性发送失败 ERROR_310003 = -310003 // 获取余额失败 ERROR_310006 = -310006 // 获取上行失败 ERROR_310004 = -310004 // 获取状态报告失败 ERROR_310005 = -310005 // 设置账号信息失败 ERROR_310007 = -310007 // 账号不存在或者账号不可用 ERROR_310008 = -310008 // 无可用的账号 ERROR_310009 = -310009 // 设置账号检查线程启动失败 ERROR_310010 = -310010 // 设置账号检查线程停止失败 ERROR_310011 = -310011 // 设置全局参数失败 ERROR_310012 = -310012 //移除账号失败 ERROR_310013 = -310013 //该账号在账号列表不存在,无需移除 ERROR_310014 = -310014 // http请求失败 ERROR_310099 = -310099 // 成功编码 SUCCESS_CODE = 0 // 相关超时时间配置 // 空闲超时判断 SPARE_TIMEOUT = 25 * 1000 // 请求超时时间(毫秒) 5秒 HTTP_REQUEST_TIMEOUT = 5 * 1000 // 响应超时时间(毫秒) 60秒 HTTP_RESPONSE_TIMEOUT = 60 * 1000 // 检测IP 请求超时时间(毫秒) 3秒 CHECK_HTTP_REQUEST_TIMEOUT = 3 * 1000 // 检测IP 响应超时时间(毫秒) 30秒 CHECK_HTTP_RESPONSE_TIMEOUT = 30 * 1000 //HTTP默认端口 HTTP_DEFAULT_PORT = 80 //需要日志 STATIC_NEED_LOG = true ////检查多次主IP打印一次日志 LOG_COUNT = 30 )
*
- @功能概要: 全局静态变量类
- @项目名称: JavaEmpSmsDemo
- @初创作者: tanglili <jack860127@126.com>
- @公司名称: ShenZhen Montnets Technology CO.,LTD.
- @创建时间: 2016-7-6 下午12:24:53
- <p>
- 修改记录1:
- </p> *
- <pre>
- 修改日期:
- 修改人:
- 修改内容:
- </pre>
Variables ¶
View Source
var Logger *log.Logger
日志
Functions ¶
func AddressToIPAndPort ¶
*
- 将域名替换成IP
- @param doMain 域名
- @return ip, err 如果成功返回IP, 1, 解析不成功返回 addr, 0, 格式错误 "", -1
func FormatCurrentTime ¶
func FormatCurrentTime() string
*
- 格式化输出赶时间,如时间是:2017-5-11 14:22:30 输出为:0511142230
- @return 返回时间串
func GetCustid ¶
func GetCustid() (custid string)
*
- 取用户自定义流水号:该条短信在您业务系统内的ID,比如订单号或者
- 短信发送记录的流水号。填写后发送状态返回值内将包含用户自定义流
- 水号。最大可支持64位的ASCII字符串:字母、数字、下划线、减号,如
- 不需要则不用提交此字段或填空, 用户可以改写里面的内容。
- @return 返回用户自定义流水号
func GetExdata ¶
func GetExdata() (exdata string)
*
- 自定义扩展数据:额外提供的最大64个长度的ASCII字符串:字母、数字、
- 下划线、减号,作为自定义扩展数据,填写后,状态报告返回时将会包含
- 这部分数据,如不需要则不用提交此字段或填空, 用户可以改写里面的内容。
- @return 返回自定义扩展数据
func GetExno ¶
func GetExno() string
*
- 取扩展号:长度不能超过6位,注意通道号+扩展号的总长度不能超过20
- 位,若超出则exno无效,如不需要扩展号则不用提交此字段或填空, 用户
- 可以改写里面的内容。
- @return 返回扩展号
func GetSvrtype ¶
func GetSvrtype() string
*
- 取业务类型:最大可支持10个长度的英文字母、数字组合的字符串, 用户
- 可以改写里面的内容。
- @return 返回业务类型
func HttpPostOnce ¶
*
- 短连接发送http post 请求,并返回结果。
- @param url 请求的URL, data发送的数据, content_type数据格式
- @return http返回码, 内容,出错信息
func PkgToJson ¶
func PkgToJson(pkg interface{}) []byte
*
- 将数据打包在JSON格式
- @param pkg 数据
- @return 返回JSON格式的字符数组
func SendAndRecvOnce ¶
func ValidateIpAndPort ¶
*
- @description 验证IP和端口信息是否合法
- @param ipAddress
- IP和端口信息 IP和端口号以:号连接
- @return 0:合法;非0:不合法
- @author tanglili <jack860127@126.com>
- @datetime 2016-9-22 下午05:02:33
func ValidateMobile ¶
*
- 验证手机单个号码是否合法
- 手机号码可能是国际号码,暂时不验证手机号码长度 *
- @param mobile
- 手机号码
- @return true:合法;false:非法
func ValidateMobiles ¶
*
- 验证是否是以英文逗号隔开的1000个手机号码
- 手机号码可能是国际号码,暂时不验证手机号码长度 **
- @param strMobiles
- 手机号码
- @return success:合法;fail:检测失败;illegalFormat:格式非法;overNum:超过最大支持号码1000个
Types ¶
type BatchSend ¶
func NewBatchSend ¶
type CheckAddress ¶
type CheckAddress struct {
Cm *ConfigManager
}
func (*CheckAddress) GetAddressByUserID ¶
func (c *CheckAddress) GetAddressByUserID(userid string, password string, timestamp string) string
type ConfigManager ¶
type ConfigManager struct { // 请求路径 RequestPath string //主IP和端口 MasterIpAndPort string //主域名和端口 主域名和端口可能为空 MasterDomainAndPort string // 备用IP端口信息 IP和端口号以:号连接 IpAndPortBak []string //备IP和备域名的对应关系。key:备用IP和端口 value:域名和端口 IpAndDomainBakMap map[string]string // 主IP状态 0正常 1异常 MasterIPState int //可用IP AvailableIpAndPort string //主IP最近检测时间 1970年距今的毫秒数 LastCheckTime int64 //主IP异常检测时间间隔 5分钟 CheckTimeInterval int64 //IP是否设置 IpIsSet bool //密码是否加密 默认加密 IsEncryptPwd bool }
*
- 配置管理类
- @author Administrator *
func (*ConfigManager) AddressToIPAndPort ¶
func (cm *ConfigManager) AddressToIPAndPort(addr string) (string, bool)
*
- 将域名替换成IP
- @param doMain 域名
- @return ip, err 如果成功返回首IP,不成功返回错误信息
func (*ConfigManager) RemoveAllIpInfo ¶
func (cm *ConfigManager) RemoveAllIpInfo()
*
- 清除所有设置的IP
- @description
- @return
type GetBalance ¶
type GetBalance struct {
*UserInfo
}
func NewGetBalance ¶
func NewGetBalance(userid string, pwd string) *GetBalance
func (*GetBalance) GetName ¶
func (s *GetBalance) GetName() string
type GetRpt ¶
func (*GetRpt) ParseRecvData ¶
type PostObj ¶
type PostObj interface { GetUserid() string GetPwd() string GetTimestemp() string GetName() string ParseRecvData([]byte) bool }
*
- HTTP POST 短连接发送指定类型的数据并接收返回数据
- @param postobj 指定类型
- @return true 如果成功返回TRUE,不成功返回FALSE
type PushMo ¶
type PushMo struct { *UserInfo // 推送上行请求命令:必须填MO_REQ Cmd string // 请求消息流水号:匹配回应请求的短信包,每次网络请求加1 Seqid string // 上行信息 Mos []Mo }
推送上行接口, 接收云通迅平台推送的MO状态报告
func (*PushMo) GetUrlencode ¶
type PushRpt ¶
type PushRpt struct { *UserInfo // 推送上行请求命令:必须填MO_REQ Cmd string // 请求消息流水号:匹配回应请求的短信包,每次网络请求加1 Seqid string // contains filtered or unexported fields }
推送上行接口, 接收云通迅平台推送的MO状态报告
func (*PushRpt) GetUrlencode ¶
type Remains ¶
type Remains struct {
// contains filtered or unexported fields
}
*
* * @功能概要:余额对象 * @项目名称: GoSmsSdk5.3 * @初创作者: wangdongyu * @公司名称: ShenZhen Montnets Technology CO.,LTD. * @创建时间: 2017-4-28 上午10:13 * <p>修改记录1:</p> * <pre> * 修改日期: * 修改人: * 修改内容: * </pre>
func NewRemains ¶
func NewRemains() *Remains
type Rpt ¶
type Rpt struct { // 平台流水编号 Msgid uint64 `json:"msgid"` // 用户自定义流水编号 Custid string `json:"custid"` // 当前条数 Pknum int `json:"pknum"` // 总条数 Pktotal int `json:"pktotal"` // 短信接收手机号 Mobile string `json:"mobile"` // 完整的通道号 Spno string `json:"spno"` // 扩展号 Exno string `json:"exno"` // 状态报告对应的下行发送时间 Stime string `json:"stime"` // 状态报告返回时间 Rtime string `json:"rtime"` // 接收状态,0:成功 非0:失败 Status int `json:"status"` // 状态报告错误代码 Errcode string `json:"errcode"` // 状态报告错误代码的描述 Errdesc string `json:"errdesc"` // 下行时填写的exdata Exdata string `json:"exdata"` }
type SMData ¶
type SMData struct { //短信接收的手机号,用英文逗号(,)分隔,最大1000个号码。一次提交的号码类型不受限制,但手机会做验证,若有不合法的手机号将会被退回。号码段类型分为:移动、联通、电信手机 // 注意:请不要使用中文的逗号 Mobile string `json:"mobile"` //最大支持350个字,一个字母或一个汉字都视为一个字 Content string `json:"content"` // 扩展号 // 长度由账号类型定4-6位,通道号总长度不能超过20位。如:10657****主通道号,3321绑定的扩展端口,主+扩展+子端口总长度不能超过20位。 Exno string `json:"exno"` // 该条短信在您业务系统内的用户自定义流水编号,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID.最大可支持64位的字符串 Custid string `json:"custid"` // 额外提供的最大64个长度的自定义扩展数据.填写后发送状态返回值内将会包含这部分数据 Exdata string `json:"exdata"` //业务类型 SvrType string `json:"svrtype"` }
type SingleSend ¶
func NewSingleSend ¶
func NewSingleSend(userid string, pwd string, mobile string, content string) *SingleSend
func (*SingleSend) GetName ¶
func (s *SingleSend) GetName() string
func (*SingleSend) GetPwd ¶
func (s *SingleSend) GetPwd() string
func (*SingleSend) GetTimestemp ¶
func (s *SingleSend) GetTimestemp() string
func (*SingleSend) GetUserid ¶
func (s *SingleSend) GetUserid() string
func (*SingleSend) ParseRecvData ¶
func (s *SingleSend) ParseRecvData([]byte) bool
type TemplateSend ¶
func NewTemplateSend ¶
func (*TemplateSend) GetName ¶
func (s *TemplateSend) GetName() string
type UserInfo ¶
type UserInfo struct { // 用户账号:长度最大6个字符,统一大写,如提交参数中包含apikey, // 则可以不用填写该参数及pwd,两种鉴权方式中只能选择一种方式来 Userid string `json:"userid"` // 用户密码:定长小写32位字符, 如提交参数中包含apikey,则可以 // 不用填写该参数及userid,两种鉴权方式中只能选择一种方式来进 // 行鉴权。 Pwd string `json:"pwd"` // 时间戳,格式为:MMDDHHMMSS,即月日时分秒,定长10位,月日时分秒不足2位时左补0.时间戳请获取您真实的服务器时间,不要填写固定的时间,否则pwd参数起不到加密作用 Timestamp string `json:"timestamp"` }
func NewUserInfo ¶
func (*UserInfo) GetTimestemp ¶
func (*UserInfo) ParseRecvData ¶
type VoiceData ¶
type VoiceData struct { //短信接收的手机号,用英文逗号(,)分隔,最大1000个号码。一次提交的号码类型不受限制,但手机会做验证,若有不合法的手机号将会被退回。号码段类型分为:移动、联通、电信手机 // 注意:请不要使用中文的逗号 Mobile string `json:"mobile"` //最大支持350个字,一个字母或一个汉字都视为一个字 Content string `json:"content"` // 消息类型: // 1:语音验证码 // 3:语音通知:只有当显号为12590时,实际发出的消息类型仍为语音验证码,并且使用梦网自带的语音模板发送语音验证码,其他显号下仍然使用语音模板编号对应的模板发送语音通知。 Msgtype string `json:"msgtype"` // 语音模版编号: // 当msgtype为1时,语音模板编号为非必须项,如提交此字段则使用与提交模板编号对应的模板发送语音验证码,如不提交此字段或填空则使用梦网自带的语音模板发送语音验证码 // 当msgtype为3时,语音模板编号为必填项 Tmplid string `json:"tmplid"` // 扩展号 // 长度由账号类型定4-6位,通道号总长度不能超过20位。如:10657****主通道号,3321绑定的扩展端口,主+扩展+子端口总长度不能超过20位。 Exno string `json:"exno"` // 该条短信在您业务系统内的用户自定义流水编号,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID.最大可支持64位的字符串 Custid string `json:"custid"` }
Click to show internal directories.
Click to hide internal directories.