sdk

package
v0.0.0-...-99f5a6d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2017 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FLOW  = "flow"
	SIGN  = "sign"
	SMS   = "sms"
	TPL   = "tpl"
	USER  = "user"
	VOICE = "voice"
)

Yunpian APIs' names

View Source
const (
	V1 = "v1"
	V2 = "v2"
)
View Source
const (
	CODE   = "code"
	MSG    = "msg"
	DETAIL = "detail"

	APIKEY            = "apikey"
	FLOW_PACKAGE      = "flow_package"
	MOBILE            = "mobile"
	SN                = "sn"
	RESULT            = "result"
	FLOW_STATUS       = "flow_status"
	OLD_SIGN          = "old_sign"
	NOTIFY            = "notify"
	APPLYVIP          = "applyvip"
	ISONLYGLOBAL      = "isonlyglobal"
	INDUSTRYTYPE      = "industrytype"
	PAGE_NUM          = "page_num"
	PAGE_SIZE         = "page_size"
	TEXT              = "text"
	SMS_STATUS        = "sms_status"
	SMS_REPLY         = "sms_reply"
	START_TIME        = "start_time"
	END_TIME          = "end_time"
	TOTAL             = "total"
	TPL_ID            = "tpl_id"
	TPL_VALUE         = "tpl_value"
	TEMPLATE          = "template"
	TPL_CONTENT       = "tpl_content"
	EMERGENCY_CONTACT = "emergency_contact"
	EMERGENCY_MOBILE  = "emergency_mobile"
	ALARM_BALANCE     = "alarm_balance"
	VOICE_STATUS      = "voice_status"
)
View Source
const (
	SUCC   = 0
	UNKOWN = -50
)

Code definition

Variables

View Source
var DefHeaders = map[string]string{
	"Api-Lang":   "go",
	"Connection": "keep-alive",
}
View Source
var DefOnlineConf = &YunpianConf{
	Version:   "v2",
	UserHost:  "https://sms.yunpian.com",
	SignHost:  "https://sms.yunpian.com",
	TplHost:   "https://sms.yunpian.com",
	SmsHost:   "https://sms.yunpian.com",
	VoiceHost: "https://voice.yunpian.com",
	FlowHost:  "https://flow.yunpian.com",

	Http: &HttpConf{Timeout: 30, KeepAlive: 30, MaxIdleConns: 100, IdleConnTimeout: 30, TLSHandshakeTimeout: 10,
		Charset: "utf-8"},
}

Functions

func NewParam

func NewParam(capacity int) map[string]string

func UrlEncodedAndJoin

func UrlEncodedAndJoin(req ...string) string

Types

type FlowApi

type FlowApi interface {
	YunpianApi
	GetPackage(param map[string]string) *Result
	Recharge(param map[string]string) *Result
	PullStatus(param map[string]string) *Result
}

func NewFlow

func NewFlow() FlowApi

type FlowApiOption

type FlowApiOption struct {
	YunpianApiOption
}

func (*FlowApiOption) GetPackage

func (flow *FlowApiOption) GetPackage(param map[string]string) (r *Result)

<h1>查询流量包</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> carrier String 否 运营商ID 传入该参数则获取指定运营商的流量包, 否则获取所有运营商的流量包 移动:10086 联通:10010 电信:10000 </p>

func (*FlowApiOption) PullStatus

func (flow *FlowApiOption) PullStatus(param map[string]string) (r *Result)

<h1>获取状态报告</h1> <p> 参数名 是否必须 描述 示例 </p> <p> apikey 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> page_size 否 每页个数,最大100个,默认20个 20 </p>

func (*FlowApiOption) Recharge

func (flow *FlowApiOption) Recharge(param map[string]string) (r *Result)

<h1>充值流量</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号(仅支持大陆号码) 15205201314 </p> <p> sn String 是 流量包的唯一ID 点击查看 1008601 </p> <p> callback_url String 否 本条流量充值的状态报告推送地址 http: //your_receive_url_address </p> <p> encrypt String 否 加密方式 使用加密 tea (不再使用) </p> <p> _sign String 否 签名字段 参考使用加密 393d079e0a00912335adfe46f4a2e10f (不再使用) </p>

type HttpClnt

type HttpClnt struct {
	// contains filtered or unexported fields
}

func (*HttpClnt) Apikey

func (clnt *HttpClnt) Apikey() string

func (*HttpClnt) Close

func (clnt *HttpClnt) Close()

func (*HttpClnt) Conf

func (clnt *HttpClnt) Conf() *YunpianConf

func (*HttpClnt) Flow

func (clnt *HttpClnt) Flow() FlowApi

func (*HttpClnt) HttpClnt

func (clnt *HttpClnt) HttpClnt() *http.Client

func (*HttpClnt) Post

func (clnt *HttpClnt) Post(url string, data string, headers map[string]string, charset string) (*http.Response, error)

func (*HttpClnt) Sign

func (clnt *HttpClnt) Sign() SignApi

func (*HttpClnt) Sms

func (clnt *HttpClnt) Sms() SmsApi

func (*HttpClnt) Tpl

func (clnt *HttpClnt) Tpl() TplApi

func (*HttpClnt) User

func (clnt *HttpClnt) User() UserApi

func (*HttpClnt) Voice

func (clnt *HttpClnt) Voice() VoiceApi

func (*HttpClnt) WithConf

func (clnt *HttpClnt) WithConf(conf *YunpianConf) YunpianClient

func (*HttpClnt) WithHttp

func (clnt *HttpClnt) WithHttp(http *http.Client) YunpianClient

type HttpConf

type HttpConf struct {
	Timeout   time.Duration
	KeepAlive time.Duration

	MaxIdleConns        int
	IdleConnTimeout     time.Duration // second
	TLSHandshakeTimeout time.Duration

	Charset string
}

type Result

type Result struct {
	Code   int         `json:"code,omitempty" `
	Msg    string      `json:"msg,omitempty" `
	Detail string      `json:"detail,omitempty" `
	Data   interface{} `json:"data,omitempty" `
}

func RspMsgDetail

func RspMsgDetail(rsp interface{}, r *Result) *Result

func (*Result) Error

func (r *Result) Error(err error) *Result

func (*Result) IsSucc

func (r *Result) IsSucc() bool

func (*Result) SetCode

func (r *Result) SetCode(code int) *Result

func (*Result) SetData

func (r *Result) SetData(data interface{}) *Result

func (*Result) SetDetail

func (r *Result) SetDetail(detail string) *Result

func (*Result) SetMsg

func (r *Result) SetMsg(msg string) *Result

func (*Result) String

func (r *Result) String() string

type ResultHandler

type ResultHandler interface {
	Parse(rsp []byte) interface{}

	Code(rsp interface{}, version string) int

	Succ(code int, rsp interface{}, r *Result)
	Fail(code int, rsp interface{}, r *Result)
}

type SignApi

type SignApi interface {
	YunpianApi
	Add(param map[string]string) (r *Result)
	Update(param map[string]string) (r *Result)
	Get(param map[string]string) (r *Result)
}

func NewSign

func NewSign() SignApi

type SignApiOption

type SignApiOption struct {
	YunpianApiOption
}

func (*SignApiOption) Add

func (sign *SignApiOption) Add(param map[string]string) (r *Result)

<h1>添加签名API</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> sign String 是 签名内容 云片网 </p> <p> notify Boolean 否 是否短信通知结果,默认true true </p> <p> apply_vip Boolean 否 是否申请专用通道,默认false false </p> <p> is_only_global Boolean 否 是否仅发国际短信,默认false false </p> <p> industry_type String 否 所属行业,默认“其它” 物联网 其他值例如:1. 游戏 2. 移动应用 3. 视频 4. 教育 5. IT/通信/电子服务 6. 电子商务 7. 金融 8. 网站 9. 商业服务 10. 房地产/建筑 11. 零售/租赁/贸易 12. 生产/加工/制造 13. 交通/物流 14. 文化传媒 15. 能源/电气 16. 政府企业 17. 农业 18. 物联网 19. 其它 </p>

@param param

sign notify apply_vip is_only_global industry_type

func (*SignApiOption) Get

func (sign *SignApiOption) Get(param map[string]string) (r *Result)

<h1>获取签名API</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> id Long 否 签名id,暂未开放,如果传入此参数将会指定获取某个签名 9527 </p> <p> sign String 否 签名内容 云片网 </p> <p> page_num Integer 否 页码,1开始,不带或者格式错误返回全部 1 </p> <p> page_size Integer 否 返回条数,必须大于0,不带或者格式错误返回全部 20 </p>

@param param

sign notify page_num page_size

func (*SignApiOption) Update

func (sign *SignApiOption) Update(param map[string]string) (r *Result)

<h1>修改签名API</h1> <p> 仅“审核中”或者“审核失败”的签名可以进行修改,修改后会重新提交给客服审核。 </p> <p> 参数notify,apply_vip,is_only_global如果没有将会修改为默认值 </p>

<p> <p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> old_sign String 是 完整签名内容,用于指定修改哪个签名,可以加【】也可不加 云片网 </p> <p> sign String 否 修改后的签名内容(如果要改签名内容) 云片网 </p> <p> notify Boolean 否 是否短信通知结果,无此参数默认true true </p> <p> apply_vip Boolean 否 是否申请专用通道,无此参数默认false false </p> <p> is_only_global Boolean 否 是否仅发国际短信,无此参数默认false false </p> <p> industry_type String 否 所属行业,默认“其它” 物联网 其他值例如:1. 游戏 2. 移动应用 3. 视频 4. 教育 5. IT/通信/电子服务 6. 电子商务 7. 金融 8. 网站 9. 商业服务 10. 房地产/建筑 11. 零售/租赁/贸易 12. 生产/加工/制造 13. 交通/物流 14. 文化传媒 15. 能源/电气 16. 政府企业 17. 农业 18. 物联网 19. 其它 </p>

@param param

old_sign sign notify apply_vip is_only_global industry_type

type SmsApi

type SmsApi interface {
	YunpianApi
	Send(param map[string]string) (r *Result)
	SingleSend(param map[string]string) (r *Result)
	BatchSend(param map[string]string) (r *Result)
	MultiSend(param map[string]string) (r *Result)
	MultiSendV1(param map[string]string) (r *Result)
	PullStatus(param map[string]string) (r *Result)
	PullReply(param map[string]string) (r *Result)
	GetReply(param map[string]string) (r *Result)
	GetBlackWord(param map[string]string) (r *Result)
	GetRecord(param map[string]string) (r *Result)
	Count(param map[string]string) (r *Result)
	TplSend(param map[string]string) (r *Result)
	TplSingleSend(param map[string]string) (r *Result)
	TplBatchSend(param map[string]string) (r *Result)
}

func NewSms

func NewSms() SmsApi

type SmsApiOption

type SmsApiOption struct {
	YunpianApiOption
}

func (*SmsApiOption) BatchSend

func (sms *SmsApiOption) BatchSend(param map[string]string) (r *Result)

<h1>批量发送</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个。 单号码:15205201314 多号码:15205201314,15205201315 </p> <p> text String 是 短信内容 【云片网】您的验证码是1234 </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 该条短信在您业务系统内的ID,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID 默认不开放,如有需要请联系客服申请 10001 </p> <p> callback_url String 否 本条短信状态报告推送地址。短信发送后将向这个地址推送短信发送报告。"后台-系统设置-数据推送与获取”可以做批量设置。如果后台已经设置地址的情况下,单次请求内也包含此参数,将以请求内的推送地址为准。 http://your_receive_url_address </p>

func (*SmsApiOption) Count

func (sms *SmsApiOption) Count(param map[string]string) (r *Result)

<h1>统计短信条数</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> start_time String 是 短信发送开始时间 2013-08-11 00:00:00 </p> <p> end_time String 是 短信发送结束时间 2013-08-12 00:00:00 </p> <p> mobile String 否 需要查询的手机号 15205201314 </p> <p> page_num Integer 否 页码,默认值为1 1 </p> <p> page_size Integer 否 每页个数,最大100个 20 </p>

func (*SmsApiOption) GetBlackWord

func (sms *SmsApiOption) GetBlackWord(param map[string]string) (r *Result)

<h1>查屏蔽词</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> text String 是 要检查的短信模板或者内容 这是一条测试短信 </p>

func (*SmsApiOption) GetRecord

func (sms *SmsApiOption) GetRecord(param map[string]string) (r *Result)

<h1>查短信发送记录</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 否 需要查询的手机号 15205201314 </p> <p> start_time String 是 短信发送开始时间 2013-08-11 00:00:00 </p> <p> end_time String 是 短信发送结束时间 2013-08-12 00:00:00 </p> <p> page_num Integer 否 页码,默认值为1 1 </p> <p> page_size Integer 否 每页个数,最大100个 20 </p>

func (*SmsApiOption) GetReply

func (sms *SmsApiOption) GetReply(param map[string]string) (r *Result)

<h1>查回复的短信</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> start_time String 是 短信回复开始时间 2013-08-11 00:00:00 </p> <p> end_time String 是 短信回复结束时间 2013-08-12 00:00:00 </p> <p> page_num Integer 是 页码,默认值为1 1 </p> <p> page_size Integer 是 每页个数,最大100个 20 </p> <p> mobile String 否 填写时只查该手机号的回复,不填时查所有的回复 15205201314 </p> <p> return_fields 否 返回字段(暂未开放 </p> <p> sort_fields 否 排序字段(暂未开放) 默认按提交时间降序 </p>

func (*SmsApiOption) MultiSend

func (sms *SmsApiOption) MultiSend(param map[string]string) (r *Result)

<h1>个性化发送</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号;多个手机号请以逗号分隔,一次不要超过1000个且手机号个数必须与短信内容条数相等;不支持国际号码发送; 多号码:15205201314,15205201315 </p> <p> text String 是 短信内容,多个短信内容请使用UTF-8做urlencode后,使用逗号分隔,一次不要超过1000条且短信内容条数必须与手机号个数相等 内容示意:UrlEncode("【云片网】您的验证码是1234", "UTF-8") + "," + UrlEncode("【云片网】您的验证码是5678", "UTF-8") </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 该条短信在您业务系统内的ID,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID 默认不开放,如有需要请联系客服申请 10001 </p> <p> callback_url String 否 本条短信状态报告推送地址。短信发送后将向这个地址推送短信发送报告。"后台-系统设置-数据推送与获取”可以做批量设置。如果后台已经设置地址的情况下,单次请求内也包含此参数,将以请求内的推送地址为准。 http://your_receive_url_address </p>

func (*SmsApiOption) MultiSendV1

func (sms *SmsApiOption) MultiSendV1(param map[string]string) (r *Result)

/v1/sms/multi_send.json

func (*SmsApiOption) PullReply

func (sms *SmsApiOption) PullReply(param map[string]string) (r *Result)

<h1>获取回复短信</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> page_size Integer 否 每页个数,最大100个,默认20个 20 </p>

func (*SmsApiOption) PullStatus

func (sms *SmsApiOption) PullStatus(param map[string]string) (r *Result)

<h1>获取状态报告</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> page_size Integer 否 每页个数,最大100个,默认20个 20 </p>

func (*SmsApiOption) Send

func (sms *SmsApiOption) Send(param map[string]string) (r *Result)

<h1>智能匹配模板发送 only v1</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号;发送多个手机号请以逗号分隔,一次不要超过1000个 国际短信仅支持单号码发送,国际号码需包含国际地区前缀号码,格式必须是"+"号开头("+"号需要urlencode处理,否则会出现格式错误),国际号码不以"+"开头将被认为是中国地区的号码 (针对国际短信,mobile参数会自动格式化到E.164格式,可能会造成传入mobile参数跟后续的状态报告中的号码不一致。E.164格式说明,参见: https://en.wikipedia.org/wiki/E.164) 单号码:15205201314 多号码:15205201314,15205201315 国际短信:+93701234567 </p> <p> text String 是 短信内容 【云片网】您的验证码是1234 </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 该条短信在您业务系统内的ID,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID 默认不开放,如有需要请联系客服申请 10001 </p> <p> callback_url String 否 本条短信状态报告推送地址。短信发送后将向这个地址推送短信发送报告。"后台-系统设置-数据推送与获取”可以做批量设置。如果后台已经设置地址的情况下,单次请求内也包含此参数,将以请求内的推送地址为准。 </p>

func (*SmsApiOption) SingleSend

func (sms *SmsApiOption) SingleSend(param map[string]string) (r *Result)

<h1>单条发送</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号;仅支持单号码发送;国际号码需包含国际地区前缀号码,格式必须是"+"号开头("+"号需要urlencode处理,否则会出现格式错误),国际号码不以"+"开头将被认为是中国地区的号码 (针对国际短信,mobile参数会自动格式化到E.164格式,可能会造成传入mobile参数跟后续的状态报告中的号码不一致。E.164格式说明,参见: https://en.wikipedia.org/wiki/E.164) 国内号码:15205201314 国际号码:urlencode("+93701234567"); </p> <p> text String 是 短信内容 【云片网】您的验证码是1234 </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 该条短信在您业务系统内的ID,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID 默认不开放,如有需要请联系客服申请 10001 </p> <p> callback_url String 否 本条短信状态报告推送地址。短信发送后将向这个地址推送短信发送报告。"后台-系统设置-数据推送与获取”可以做批量设置。如果后台已经设置地址的情况下,单次请求内也包含此参数,将以请求内的推送地址为准。 http://your_receive_url_address </p>

func (*SmsApiOption) TplBatchSend

func (sms *SmsApiOption) TplBatchSend(param map[string]string) (r *Result)

<h1>指定模板群发 only v2</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号(针对国际短信,mobile参数会自动格式化到E.164格式,可能会造成传入mobile参数跟后续的状态报告中的号码不一致。E.164格式说明,参见: https://en.wikipedia.org/wiki/E.164) 15205201314 </p> <p> tpl_id Long 是 模板id 1 </p> <p> tpl_value String 是 变量名和变量值对。请先对您的变量名和变量值分别进行urlencode再传递。使用参考:代码示例。 注:变量名和变量值都不能为空 模板: 【#company#】您的验证码是#code#。 最终发送结果: 【云片网】您的验证码是1234。 tplvalue=urlencode("#code#") + "=" + urlencode("1234") + "&amp;" + urlencode("#company#") + "=" + urlencode("云片网"); 若您直接发送报文请求则使用下面这种形式 tplvalue=urlencode(urlencode("#code#") + "=" + urlencode("1234") + "&amp;" + urlencode("#company#") + "=" + urlencode("云片网")); </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 用户自定义唯一id。最大长度不超过256的字符串。 默认不开放,如有需要请联系客服申请 10001 </p>

func (*SmsApiOption) TplSend

func (sms *SmsApiOption) TplSend(param map[string]string) (r *Result)

<h1>指定模板发送 only v1</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号 15205201314 </p> <p> tpl_id Long 是 模板id 1 </p> <p> tpl_value String 是 变量名和变量值对。请先对您的变量名和变量值分别进行urlencode再传递。使用参考:代码示例。 注:变量名和变量值都不能为空 模板: 【#company#】您的验证码是#code#。 最终发送结果: 【云片网】您的验证码是1234。 tplvalue=urlencode("#code#") + "=" + urlencode("1234") + "&amp;" + urlencode("#company#") + "=" + urlencode("云片网"); 若您直接发送报文请求则使用下面这种形式 tplvalue=urlencode(urlencode("#code#") + "=" + urlencode("1234") + "&amp;" + urlencode("#company#") + "=" + urlencode("云片网")); </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 用户自定义唯一id。最大长度不超过256的字符串。 默认不开放,如有需要请联系客服申请 10001 </p>

func (*SmsApiOption) TplSingleSend

func (sms *SmsApiOption) TplSingleSend(param map[string]string) (r *Result)

<h1>指定模板单发 only v2</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号(针对国际短信,mobile参数会自动格式化到E.164格式,可能会造成传入mobile参数跟后续的状态报告中的号码不一致。E.164格式说明,参见: https://en.wikipedia.org/wiki/E.164) 15205201314 </p> <p> tpl_id Long 是 模板id 1 </p> <p> tpl_value String 是 变量名和变量值对。请先对您的变量名和变量值分别进行urlencode再传递。使用参考:代码示例。 注:变量名和变量值都不能为空 模板: 【#company#】您的验证码是#code#。 最终发送结果: 【云片网】您的验证码是1234。 tplvalue=urlencode("#code#") + "=" + urlencode("1234") + "&amp;" + urlencode("#company#") + "=" + urlencode("云片网"); 若您直接发送报文请求则使用下面这种形式 tplvalue=urlencode(urlencode("#code#") + "=" + urlencode("1234") + "&amp;" + urlencode("#company#") + "=" + urlencode("云片网")); </p> <p> extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001 </p> <p> uid String 否 用户自定义唯一id。最大长度不超过256的字符串。 默认不开放,如有需要请联系客服申请 10001 </p>

type TplApi

type TplApi interface {
	YunpianApi
	GetDefault(param map[string]string) (r *Result)
	Get(param map[string]string) (r *Result)
	Add(param map[string]string) (r *Result)
	Del(param map[string]string) (r *Result)
	Update(param map[string]string) (r *Result)
	AddVoiceNotify(param map[string]string) (r *Result)
	UpdateVoiceNotify(param map[string]string) (r *Result)
}

func NewTpl

func NewTpl() TplApi

type TplApiOption

type TplApiOption struct {
	YunpianApiOption
}

func (*TplApiOption) Add

func (tpl *TplApiOption) Add(param map[string]string) (r *Result)

<h1>添加模板</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_content String 是 模板内容,必须以带符号【】的签名开头 【云片网】您的验证码是#code# </p> <p> notify_type Integer 否 审核结果短信通知的方式: 0表示需要通知,默认; 1表示仅审核不通过时通知; 2表示仅审核通过时通知; 3表示不需要通知 1 </p> <p> lang String 否 国际短信模板所需参数,模板语言:简体中文zh_cn; 英文en; 繁体中文 zh_tw; 韩文ko,日文 ja zh_cn </p>

func (*TplApiOption) AddVoiceNotify

func (tpl *TplApiOption) AddVoiceNotify(param map[string]string) (r *Result)

<h1>添加语音通知模版</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_content String 是 模板内容,必须以带符号【】的签名开头 【云片网】您的验证码是#code# </p> <p> notify_type Integer 否 审核结果短信通知的方式: 0表示需要通知,默认; 1表示仅审核不通过时通知; 2表示仅审核通过时通知; 3表示不需要通知 1 </p>

func (*TplApiOption) Del

func (tpl *TplApiOption) Del(param map[string]string) (r *Result)

<h1>删除模板</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_id Long 是 模板id,64位长整形 9527 </p>

func (*TplApiOption) Get

func (tpl *TplApiOption) Get(param map[string]string) (r *Result)

<h1>取模板</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_id Long 否 模板id,64位长整形。指定id时返回id对应的 模板。未指定时返回所有模板 1 </p>

func (*TplApiOption) GetDefault

func (tpl *TplApiOption) GetDefault(param map[string]string) (r *Result)

<h1>取默认模板</h1> <p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_id Long 否 模板id,64位长整形。指定id时返回id对应的默认 模板。未指定时返回所有默认模板 1 </p>

func (*TplApiOption) Update

func (tpl *TplApiOption) Update(param map[string]string) (r *Result)

<h1>修改模板</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_id Long 是 模板id,64位长整形,指定id时返回id对应的模板。未指定时返回所有模板 9527 </p> <p> tpl_content String 是 模板id,64位长整形。指定id时返回id对应的模板。未指定时返回所有模板模板内容,必须以带符号【】的签名开头 【云片网】您的验证码是#code# </p>

func (*TplApiOption) UpdateVoiceNotify

func (tpl *TplApiOption) UpdateVoiceNotify(param map[string]string) (r *Result)

<h1>修改语音通知模版</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> tpl_id Long 是 模板id,64位长整形,指定id时返回id对应的模板。未指定时返回所有模板 9527 </p> <p> tpl_content String 是 模板id,64位长整形。指定id时返回id对应的模板。未指定时返回所有模板模板内容,必须以带符号【】的签名开头 【云片网】您的验证码是#code# </p>

type UserApi

type UserApi interface {
	YunpianApi
	Get(param map[string]string) (r *Result)
	Set(param map[string]string) (r *Result)
}

func NewUser

func NewUser() UserApi

type UserApiOption

type UserApiOption struct {
	YunpianApiOption
}

func (*UserApiOption) Get

func (user *UserApiOption) Get(param map[string]string) (r *Result)

<h1>查账户信息</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p>

func (*UserApiOption) Set

func (user *UserApiOption) Set(param map[string]string) (r *Result)

<h1>修改账户信息</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> emergency_contact String 否 紧急联系人 zhangshan </p> <p> emergency_mobile String 否 紧急联系人手机号 13012345678 </p> <p> alarm_balance Long 否 短信余额提醒阈值。 一天只提示一次 100 </p>

type VoiceApi

type VoiceApi interface {
	YunpianApi
	Send(param map[string]string) (r *Result)
	TplNotify(param map[string]string) (r *Result)
	PullStatus(param map[string]string) (r *Result)
}

func NewVoice

func NewVoice() VoiceApi

type VoiceApiOption

type VoiceApiOption struct {
	YunpianApiOption
}

func (*VoiceApiOption) PullStatus

func (voice *VoiceApiOption) PullStatus(param map[string]string) (r *Result)

func (*VoiceApiOption) Send

func (voice *VoiceApiOption) Send(param map[string]string) (r *Result)

<h1>发语音验证码</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号、固话(需加区号) 15205201314 01088880000 </p> <p> code String 是 验证码,支持4~6位阿拉伯数字 1234 </p> <p> encrypt String 否 加密方式 使用加密 tea (不再使用) </p> <p> _sign String 否 签名字段 参考使用加密 393d079e0a00912335adfe46f4a2e10f (不再使用) </p> <p> callback_url String 否 本条语音验证码状态报告推送地址 http://your_receive_url_address </p> <p> display_num String 否 透传号码,为保证全国范围的呼通率,云片会自动选择最佳的线路,透传的主叫号码也会相应变化。 如需透传固定号码则需要单独注册报备,为了确保号码真实有效,客服将要求您使用报备的号码拨打一次客服电话 </p>

func (*VoiceApiOption) TplNotify

func (voice *VoiceApiOption) TplNotify(param map[string]string) (r *Result)

<h1>发送语音通知</h1>

<p> 参数名 类型 是否必须 描述 示例 </p> <p> apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526 </p> <p> mobile String 是 接收的手机号、固话(需加区号) 15205201314 01088880000 </p> <p> tpl_id Long 是 审核通过的模版ID 1136 </p> <p> tpl_value String 是 模版的变量值 如模版内容&quot;课程#name#在#time#开始&quot;,那么这里的值为&quot;name=计算机&amp;time=17点&quot;,注意若出现特殊字符(如&#39;=&#39;,&#39;&amp;&#39;)则需要URLEncode内容 </p> <p> callback_url String 否 本条语音验证码状态报告推送地址 http://your_receive_url_address </p>

type YunpianApi

type YunpianApi interface {
	Name() string

	Host() string
	SetHost(host string) YunpianApi

	Version() string
	SetVersion(v string) YunpianApi

	Path() string
	SetPath(path string) YunpianApi

	Apikey() string
	SetApikey(apikey string) YunpianApi

	Charset() string
	SetCharset(charset string) YunpianApi

	HttpClnt() YunpianClient
	Init(clnt YunpianClient) YunpianApi

	Url() string
	Post(param map[string]string, h ResultHandler, r *Result) *Result
}

type YunpianApiOption

type YunpianApiOption struct {
	// contains filtered or unexported fields
}

func (*YunpianApiOption) Apikey

func (api *YunpianApiOption) Apikey() string

func (*YunpianApiOption) Charset

func (api *YunpianApiOption) Charset() string

func (*YunpianApiOption) Host

func (api *YunpianApiOption) Host() string

func (*YunpianApiOption) HttpClnt

func (api *YunpianApiOption) HttpClnt() YunpianClient

func (*YunpianApiOption) Init

func (api *YunpianApiOption) Init(clnt YunpianClient) YunpianApi

func (*YunpianApiOption) Name

func (api *YunpianApiOption) Name() string

func (*YunpianApiOption) Path

func (api *YunpianApiOption) Path() string

func (*YunpianApiOption) Post

func (api *YunpianApiOption) Post(param map[string]string, h ResultHandler, r *Result) *Result

func (*YunpianApiOption) Result

func (api *YunpianApiOption) Result(rsp []byte, h ResultHandler, r *Result) *Result

func (*YunpianApiOption) SetApikey

func (api *YunpianApiOption) SetApikey(apikey string) YunpianApi

func (*YunpianApiOption) SetCharset

func (api *YunpianApiOption) SetCharset(ch string) YunpianApi

func (*YunpianApiOption) SetHost

func (api *YunpianApiOption) SetHost(h string) YunpianApi

func (*YunpianApiOption) SetPath

func (api *YunpianApiOption) SetPath(p string) YunpianApi

func (*YunpianApiOption) SetVersion

func (api *YunpianApiOption) SetVersion(v string) YunpianApi

func (*YunpianApiOption) Url

func (api *YunpianApiOption) Url() string

func (*YunpianApiOption) VerifyParam

func (api *YunpianApiOption) VerifyParam(param map[string]string, must []string, r *Result) error

func (*YunpianApiOption) Version

func (api *YunpianApiOption) Version() string

type YunpianApiResult

type YunpianApiResult interface {
	Result(rsp []byte, h ResultHandler, r *Result) *Result
}

type YunpianClient

type YunpianClient interface {
	Flow() FlowApi
	Sign() SignApi
	Sms() SmsApi
	Tpl() TplApi
	User() UserApi
	Voice() VoiceApi

	Apikey() string
	Conf() *YunpianConf

	// WithConf to initialize YunpianClient and inner *http.Client
	WithConf(conf *YunpianConf) YunpianClient
	// WithHttp to initialize inner *http.Client
	WithHttp(http *http.Client) YunpianClient

	HttpClnt() *http.Client
	Post(url string, data string, headers map[string]string, charset string) (*http.Response, error)

	Close()
}

func New

func New(apikey string) YunpianClient

type YunpianConf

type YunpianConf struct {
	Version string

	UserHost,
	SignHost,
	TplHost,
	SmsHost,
	VoiceHost,
	FlowHost string

	// http
	Http *HttpConf
}

type YunpianResultHandler

type YunpianResultHandler struct {
	Data func(rsp interface{}) interface{}
}

func (*YunpianResultHandler) Code

func (h *YunpianResultHandler) Code(rsp interface{}, version string) int

func (*YunpianResultHandler) Fail

func (h *YunpianResultHandler) Fail(code int, rsp interface{}, r *Result)

func (*YunpianResultHandler) Parse

func (h *YunpianResultHandler) Parse(rsp []byte) interface{}

func (*YunpianResultHandler) Succ

func (h *YunpianResultHandler) Succ(code int, rsp interface{}, r *Result)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL