![GO对接彩信视频短信接口DEMO示例_第1页](http://file4.renrendoc.com/view14/M05/0A/16/wKhkGWcPYGeAEEnSAAD0EaOcAJ8992.jpg)
![GO对接彩信视频短信接口DEMO示例_第2页](http://file4.renrendoc.com/view14/M05/0A/16/wKhkGWcPYGeAEEnSAAD0EaOcAJ89922.jpg)
![GO对接彩信视频短信接口DEMO示例_第3页](http://file4.renrendoc.com/view14/M05/0A/16/wKhkGWcPYGeAEEnSAAD0EaOcAJ89923.jpg)
![GO对接彩信视频短信接口DEMO示例_第4页](http://file4.renrendoc.com/view14/M05/0A/16/wKhkGWcPYGeAEEnSAAD0EaOcAJ89924.jpg)
![GO对接彩信视频短信接口DEMO示例_第5页](http://file4.renrendoc.com/view14/M05/0A/16/wKhkGWcPYGeAEEnSAAD0EaOcAJ89925.jpg)
文档简介
//接口类型:互亿无线彩信/视频短信接口。//账户注册:请通过该地址开通账户/new/register.htmlpackagemainimport( "bytes" "crypto/md5" "encoding/base64" "encoding/hex" "encoding/json" "fmt" "io/ioutil" "math/rand" "net/http" "sort" "strings" "time")//内容项目typecontentItemstruct{ ConTypestring`json:"con_type"`//内容类型 ExtTypestring`json:"ext_type"`//文件扩展名 Datastring`json:"data"`//数据}//获取签名funcsign(datamap[string]string,appKEYstring)string{ varkeys[]string data["api_key"]=appKEY fork:=rangedata{ keys=append(keys,k) } sort.Strings(keys) varhash[]string for_,v:=rangekeys{ hash=append(hash,fmt.Sprintf("%s=%s",v,data[v])) } returngetMd5String(strings.Join(hash,"&"))}//getMd5String返回md5加密字符串funcgetMd5String(sstring)string{ h:=md5.New() h.Write([]byte(s)) returnhex.EncodeToString(h.Sum(nil))}//randomString随机生成字符串//randomString(8,"A")//randomString(8,"a0")//randomString(20,"Aa0")funcrandomString(randLengthint,randTypestring)(resultstring){ varnum="0123456789" varlower="abcdefghijklmnopqrstuvwxyz" varupper="ABCDEFGHIJKLMNOPQRSTUVWXYZ" b:=bytes.Buffer{} ifstrings.Contains(randType,"0"){ b.WriteString(num) } ifstrings.Contains(randType,"a"){ b.WriteString(lower) } ifstrings.Contains(randType,"A"){ b.WriteString(upper) } varstr=b.String() varstrLen=len(str) ifstrLen==0{ result="" return } rand.Seed(time.Now().UnixNano()) b=bytes.Buffer{} fori:=0;i<randLength;i++{ b.WriteByte(str[rand.Intn(strLen)]) } result=b.String() return}funccreateContent()[][]contentItem{ //创建测试内容开始 //第1帧 //文本 retContent:=[][]contentItem{} frameCon:=[]contentItem{} tmpCon:=contentItem{} tmpCon.ExtType="txt" tmpCon.ConType="text" tmpCon.Data="这是测试内容1"//"1:"+utils.RandomString(20,"Aa0") frameCon=append(frameCon,tmpCon) //图片 tmpCon=contentItem{} tmpCon.ExtType="jpg" tmpCon.ConType="image" f,err:=ioutil.ReadFile("yourFileFolder/test-jpg1.jpg") iferr!=nil{ fmt.Println("readfail",err) returnnil } tmpCon.Data=base64.StdEncoding.EncodeToString(f) tmpCon.Data="test" frameCon=append(frameCon,tmpCon) retContent=append(retContent,frameCon) //第2帧 frameCon=[]contentItem{} tmpCon=contentItem{} tmpCon.ExtType="txt" tmpCon.ConType="text" tmpCon.Data="这是测试内容2"//"2:"+utils.RandomString(20,"Aa0") frameCon=append(frameCon,tmpCon) //视频 tmpCon=contentItem{} tmpCon.ExtType="mp4" tmpCon.ConType="video" f,err=ioutil.ReadFile("yourFileFolder/test-mp41.mp4") iferr!=nil{ fmt.Println("readfail",err) returnnil } tmpCon.Data=base64.StdEncoding.EncodeToString(f) frameCon=append(frameCon,tmpCon) retContent=append(retContent,frameCon) //第3帧 //图片 frameCon=[]contentItem{} tmpCon=contentItem{} tmpCon.ExtType="jpg" tmpCon.ConType="image" f,err=ioutil.ReadFile("yourFileFolder/test-jpg2.jpg") iferr!=nil{ fmt.Println("readfail",err) returnnil } tmpCon.Data=base64.StdEncoding.EncodeToString(f) frameCon=append(frameCon,tmpCon) tmpCon=contentItem{} tmpCon.ExtType="txt" tmpCon.ConType="text" tmpCon.Data="这是测试内容3"//"3:"+utils.RandomString(20,"Aa0") frameCon=append(frameCon,tmpCon) retContent=append(retContent,frameCon) //第4帧 //图片 frameCon=[]contentItem{} tmpCon=contentItem{} tmpCon.ExtType="mp3" tmpCon.ConType="audio" f,err=ioutil.ReadFile("yourFileFolder/test-mp31.mp3") iferr!=nil{ fmt.Println("readfail",err) returnnil } tmpCon.Data=base64.StdEncoding.EncodeToString(f) frameCon=append(frameCon,tmpCon) tmpCon=contentItem{} tmpCon.ExtType="txt" tmpCon.ConType="text" tmpCon.Data="这是测试内容4"//"4:"+utils.RandomString(20,"Aa0") frameCon=append(frameCon,tmpCon) retContent=append(retContent,frameCon) //fmt.Println("data.Content:",data.Content) //创建测试内容结束 returnretContent}//测试获取余额funcbalance(){ typesendDatastruct{ APIIDstring`json:"api_id"` Signaturestring`json:"signature"` Timestampint`json:"timestamp"` RequestIDstring`json:"request_id"` } data:=sendData{} data.APIID="xxxxxx" data.RequestID=randomString(20,"Aa0") data.Timestamp=int(time.Now().Unix()) signData:=make(map[string]string) signData["api_id"]=data.APIID signData["timestamp"]=fmt.Sprintf("%d",data.Timestamp) signData["request_id"]=data.RequestID data.Signature=sign(signData,"xxxxxx") url:="/mms/v1/balance" client:=&http.Client{ Timeout:time.Second*10, } sendRawData,_:=json.Marshal(data) request,err:=http.NewRequest("POST",url,strings.NewReader(string(sendRawData))) iferr!=nil{ fmt.Print(err) return } request.Header.Set("Content-Type","application/json") response,err:=client.Do(request) iferr!=nil{ fmt.Print(err) return } deferresponse.Body.Close() body,err:=ioutil.ReadAll(response.Body) iferr!=nil{ fmt.Print(err) return } getData:=string(body) fmt.Println(getData)}//信息批量提交(使用创建彩信方式)funcbatch_send_1(){ typesendDatastruct{ APIIDstring`json:"api_id"` Signaturestring`json:"signature"` Timestampint`json:"timestamp"` RequestIDstring`json:"request_id"` ProductIDint`json:"product_id"`//产品ID Phone[]string`json:"phone"`//手机号 Titlestring`json:"title"`//短信标题 SignNamestring`json:"sign_name"`//短信签名 Content[][]contentItem`json:"content"`//短信内容 TemplateIDint`json:"template_id"`//模板ID TemplateVarmap[string]string`json:"template_var"`//模板变量 SendTimestring`json:"send_time"`//定时时间 } data:=sendData{} data.APIID="xxxxx" data.RequestID=randomString(20,"Aa0") data.Timestamp=int(time.Now().Unix()) data.Phone=[]string{"xxxxx","xxxxx"} data.ProductID=1016 data.Title="这是测试标题" data.SignName="您的签名" signData:=make(map[string]string) signData["api_id"]=data.APIID signData["timestamp"]=fmt.Sprintf("%d",data.Timestamp) signData["request_id"]=data.RequestID data.Signature=sign(signData,"xxxxxx") data.TemplateID=5//测试模版模版ID createTestContent:=true ifcreateTestContent{ data.Content=createContent() ifdata.Content==nil{ return } } url:="/mms/v1/batchSend" client:=&http.Client{ Timeout:time.Second*10, } sendRawData,_:=json.Marshal(data) request,err:=http.NewRequest("POST",url,strings.NewReader(string(sendRawData))) iferr!=nil{ fmt.Print(err) return } request.Header.Set("Content-Type","application/json") response,err:=client.Do(request) iferr!=nil{ fmt.Print(err) return } deferresponse.Body.Close() body,err:=ioutil.ReadAll(response.Body) iferr!=nil{ fmt.Print(err) return } getData:=string(body) fmt.Println(getData)}//信息批量提交(使用调用模版ID方式)funcbatch_send_2(){ typesendDatastruct{ APIIDstring`json:"api_id"` Signaturestring`json:"signature"` Timestampint`json:"timestamp"` RequestIDstring`json:"request_id"` ProductIDint`json:"product_id"`//产品ID Phone[]string`json:"phone"`//手机号 Titlestring`json:"title"`//短信标题 SignNamestring`json:"sign_name"`//短信签名 Content[][]contentItem`json:"content"`//短信内容 TemplateIDint`json:"template_id"`//模板ID TemplateVarmap[string]string`json:"template_var"`//模板变量 SendTimestring`json:"send_time"`//定时时间 } data:=sendData{} data.APIID="xxxxx" data.RequestID=randomString(20,"Aa0") data.Timestamp=int(time.Now().Unix()) data.Phone=[]string{"xxxxx","xxxxx"} data.ProductID=1016 data.Title="" data.SignName="" signData:=make(map[string]string) signData["api_id"]=data.APIID signData["timestamp"]=fmt.Sprintf("%d",data.Timestamp) signData["request_id"]=data.RequestID data.Signature=sign(signData,"xxxxx") data.TemplateID=5 createTestContent:=false ifcreateTestContent{ data.Content=createContent() ifdata.Content==nil{ return } } url:="/mms/v1/batchSend" client:=&http.Client{ Timeout:time.Second*10, } sendRawData,_:=json.Marshal(data) request,err:=http.NewRequest("POST",url,strings.NewReader(string(sendRawData))) iferr!=nil{ fmt.Print(err) return } request.Header.Set("Content-Type","application/json") response,err:=client.Do(request) iferr!=nil{ fmt.Print(err) return } deferresponse.Body.Close() body,err:=ioutil.ReadAll(response.Body) iferr!=nil{ fmt.Print(err) return } getData:=string(body) fmt.Println(getData)}//创建模板functemplateCreate(){ typesendDatastruct{ APIIDstring`json:"api_id"` Signaturestring`json:"signature"` Timestampint`json:"timestamp"` RequestIDstring`json:"request_id"` Titlestring`json:"title"`//标题 SignNamestring`json:"sign_name"`//标题 Content[][]contentItem`json:"content"`//短信内容 Purposestring`json:"purpose"`//应用场景 } data:=sendData{} data.APIID="xxxxx" data.RequestID=randomString(20,"Aa0") data.Timestamp=int(ti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年王比颗粒项目可行性研究报告
- 2025年度公路工程施工现场临时用电合同
- 2025年度大型体育场馆设施租赁管理合同范本
- 2025年度智能交通系统设计保密协议
- 2025年最高额抵押担保合同:规范抵押权实现与抵押物处置
- 2025年度车辆购置担保合同
- 个人原因离职申请书
- 2025年度合伙经营海鲜餐厅合同
- 2025年度建筑施工安全风险评估与控制合同
- 2025年度大型户外活动策划与搭建服务合同范本
- 诗词写作入门课件
- 2023年上海青浦区区管企业统一招考聘用笔试题库含答案解析
- 2023版押品考试题库必考点含答案
- 植物之歌观后感
- 空气能热泵安装示意图
- 建筑工程施工质量验收规范检验批填写全套表格示范填写与说明
- 2020年中秋国庆假日文化旅游市场安全生产检查表
- 昆明天大矿业有限公司寻甸县金源磷矿老厂箐-小凹子矿段(拟设)采矿权出让收益评估报告
- 心有榜样行有力量 -从冬奥冠军徐梦桃身上感受青春奋斗初中主题班会
- GB/T 3860-1995文献叙词标引规则
- 七年级英语下册阅读理解10篇
评论
0/150
提交评论