时时彩计划群发软件 www.umkf.com.cn 功能说明:用于提交发送短信的常规方法
请求地址:
//api.51welink.com/EncryptionSubmit/SendSms.ashx
https://api.51welink.com/EncryptionSubmit/SendSms.ashx
参数说明:
参数名 | 参数类型 | 是否必传 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
ExtendNo | string | N | 企业代码,不超过15位数字,超出会被截断,数字串 |
Random | Long | Y | 随机数,大于等于1,小于等于9223372036854775807 |
ProductId | int | Y | 产品编码 |
PhoneNos | string | Y | 接收号码间用英文半角逗号“,”隔开,触发产品一次只能提交一个,其他产品一次不能超过10万个号码 |
Content | string | Y | 短信内容:不超过4000字符 |
SendTime | datetime | N | 短信定时时间,格式:yyyy-MM-dd HH:mm:ss |
OutId | string | N | 用户自定义参数,长度≤32,字符串格式 |
AccessKey加密说明:
AccessKey根据公式sha(AccountId={账户名称}&PhoneNos={第一个手机号码}&Password={md5(密码原文+SMmsEncryptKey)}&Random={随机数}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,第一个手机号码(PhoneNos):13699999999,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,随机数(Random):6203922,时间戳(Timestamp):1532928860。
则MD5加密后的密码(password)为:
MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&PhoneNos=13699999999&Password=B54B89712EB997BE99114478E3673E3F&Random=6203922&Timestamp=1532928860)="6ba256e4cf24dd386cfa8f6835df7b41e8d6f5c1ccdc1a1062646a05133e0f51"
传参示例:
{
AccountId:"yanfa001",
AccessKey:" 6ba256e4cf24dd386cfa8f6835df7b41e8d6f5c1ccdc1a1062646a05133e0f51",
Timestamp:"1532928860",
Random:"6203922",
ExtendNo: "",
ProductId: "1011618",
PhoneNos: "13699999999",
Content:"短信内容【微网通联】",
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值,返回succ标识提交成功 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
MsgId | long | 信息批次号 |
SplitCount | byte | 单条短信内容拆分条数 |
返回值示例:
{
"Result":"succ",
"Reason":"提交成功",
"MsgId": 1906051002570082261,
"SplitCount":1
}
功能说明:用于提交个性化短信
请求地址:
//api.51welink.com/EncryptionSubmit/SendMultiSms.ashx
https://api.51welink.com/EncryptionSubmit/SendMultiSms.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
ExtendNo | string | N | 企业代码,不超过15位数字,超出会被截断,数字串 |
Random | int | Y | 随机数,大于等于1,小于等于9223372036854775807 |
ProductId | int | Y | 产品编码 |
OutId | string | N | 用户自定义参数,长度≤32,字符串格式 |
TempParams | string | Y | 模板变量,见下方说明 |
TemplateSms | string | Y | 模板,见下方说明 |
AccessKey加密说明:
AccessKey根据公式sha(AccountId={账户名称}&Password={md5(密码原文+SMmsEncryptKey)}&Random={随机数}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,随机数(Random):6203922,时间戳(Timestamp):1532928860,则MD5加密后的密码(password)为:MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&Password=B54B89712EB997BE99114478E3673E3F&Random=6203922&Timestamp=1532928860)="e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137"
TempParams参数说明
结构说明:
<ISMV> /*结构头标识*/
<VU>
<VT><V>13810252940</V></VT> /*此处必须为手机号码,不能是其他内容*/
<VT><V>P1</V></VT> /*第一个参数名称,会作为信息内容显示*/
<VT><V>P2</V></VT> /*第二个参数名称,会作为信息内容显示*/
<VT><V>P3</V></VT> /*第三个参数名称,会作为信息内容显示*/
<VT><V>PN</V></VT> /*第N个参数名称,会作为信息内容显示,N,短信变量数量,根据实际需求定义*/
</VU>
<VU>
<VT><V>13810252940</V></VT> /*此处必须为手机号码,不能是其他内容*/
<VT><V>P1</V></VT> /*第一个参数名称,会作为信息内容显示*/
<VT><V>P2</V></VT> /*第二个参数名称,会作为信息内容显示*/
<VT><V>P3</V></VT> /*第三个参数名称,会作为信息内容显示*/
<VT><V>PN</V></VT> /*第N个参数名称,会作为信息内容显示,N,短信变量数量,根据实际需求定义*/
</VU>
</ISMV> /*结构尾标识*/
以上结构中:
如果要发送至多个号码则需要多个<VU>单元,上述的结构示例中表示信息要发送到2个手机号码上。
实际参数示例:
<ISMV><VU><VT><V>13963330881</V></VT><VT><V>A1</V></VT><VT><V>B2</V></VT><VT><V>C3</V></VT></VU><VU><VT><V>13863320432</V></VT><VT><V>A1</V></VT><VT><V>B2</V></VT><VT><V>C3</V></VT></VU></ISMV>
TemplateSms参数说明
结构说明:
{##}P1的内容{##}P2的内容{##}P3的内容……{##}PN的内容
其中【{##}】的个数要和短信变量参数中的参数的个数和顺序对应。
【{##}】相当于各参数的占位符
实际参数示例:{##}提交{##}个性{##}信息
传参示例
{
"ExtendNo":"8899",
"OutId":"",
"ProductId":"1010888",
"TemplateSms":"个性短信测试{##}【微网】",
"TempParams":"<ISMV><VU><VT><V>18954426057</V></VT><VT><V>anbaili</V></VT></VU></ISMV>",
"TimeStamp":1532928860,
"AccessKey":"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
"AccountId":"yanfa001",
"Random":6203922
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
MsgId | string | 信息批次号 |
返回值示例:
{
"State":"succ",
"MsgId":"072317322747d1f",
"MsgState":"成功"
}
功能说明:用于提交模板短信
请求地址:
//api.51welink.com/EncryptionSubmit/SendTemplateSms.ashx
https://api.51welink.com/EncryptionSubmit/SendTemplateSms.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
ExtendNo | string | N | 企业代码,不超过15位数字,超出会被截断,数字串 |
Random | long | Y | 随机数,大于等于1,小于等于9223372036854775807 |
ProductId | int | Y | 产品编码 |
TempCode | int | Y | 审核通过的模板 ID |
PhoneNos | string | Y | 接收号码间用英文半角逗号“,”隔开,触发产品一次只能提交一个,其他产品一次不能超过10万个号码 |
TempParams | JSON格式 | N | 模板参数(单个参数长度不超过30字符)示例:["参数1","参数2"] |
SendTime | datetime | N | 短信定时时间,格式:yyyy-MM-dd HH:mm:ss |
OutId | string | N | 用户自定义参数,长度≤32,字符串格式 |
加密说明:
AccessKey根据公式sha(AccountId={账户名称}&PhoneNos={第一个手机号码}&Password={md5(密码原文+SMmsEncryptKey)}&Random={随机数}& TempCode={模板Id}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,第一个手机号码(PhoneNos)=13699999999,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,随机数(Random):6203922,模板Id(TempCode):412220,时间戳(Timestamp):1532928860,则MD5加密后的密码(password)为:
MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&PhoneNos=13699999999&Password=B54B89712EB997BE99114478E3673E3F&Random=6203922&TempCode=412220&Timestamp=1532928860)="027d09845c4d6dad73411a9a5783f9224f7363cecf05818e832ceccc55cf6648"
传参示例
如已报备模板:尊贵的会员:{1},您于{2}在{3}消费了{4}元,谢谢您的惠顾【星巴克】
{
AccountId:"yanfa001",
TempCode:412220,
AccessKey:"027d09845c4d6dad73411a9a5783f9224f7363cecf05818e832ceccc55cf6648",
Timestamp:"1532928860",
Random:"6203922",
ExtendNo:"",
ProductId:"1012812",
PhoneNos:"13699999999",
TempParams:["姚磊","2019-07-24 12:00:00","万达广场店","103.87"]
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
MsgId | long | 信息批次号 |
SplitCount | byte | 单条短信内容拆分条数 |
返回值示例:
{
"Result":"succ",
"Reason":"提交成功",
"MsgId":1906061056110000277
"SplitCount":1
}
功能说明:用于查询状态报告
请求地址:
//api.51welink.com/EncryptionQuery/GetReport.ashx
https://api.51welink.com/EncryptionQuery/GetReport.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
Random | int | Y | 随机数,大于0 |
OutId | string | N | 发送短信时用户自定义的key |
ReportTime | string | N | 状态报告接收时间,格式YYYY-MM-DD,(如果填写空字符串,默认无时间限制,即从最早的状态报告开始取,否则获取指定日的报告) |
加密说明:
同个性化短信加密说明
传参示例
{
"OutId":"",
"TimeStamp":1532928860,
"AccessKey":"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
"AccountId":"yanfa001",
"Random":6203922,
"ReportTime":"2019-06-05"
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见《Json加密接口返回状态码说明》文档 |
ReportInfos | List<ReportInfo> | ReportInfo类型集合 |
ReportInfo说明:
字段名 | 字段类型 | 描述 |
---|---|---|
MsgID | string | 信息编号 |
PhoneNos | string | 手机号码 |
SendTime | datetime | 发送时间 |
ReportDesc | string | 供应商状态码描述 |
ReportCode | string | 供应商状态码(1是成功,0是失败),标识是否送达至用户手机终端 |
ReportTime | datetime | 状态报告时间 |
SpNo | string | 长号码 |
ExtendNo | string | 扩展号 |
OutId | string | 客户传入的Key |
SendCode | string | 供应商发送状态码(1是成功,0是失败),标识此条信息是否送达至运营商网关 |
SendDesc | string | 供应商发送状态码说明 |
SplitCount | int | 长短信短信拆分条数,普通短信默认1 |
MsgNo | int | 长短信条数序号 |
AccountId | string | 客户账号 |
SourceCode | string | 网关状态码,同ReportCode |
SourceDesc | string | 网关状态码描述,如成功DELIVRD等 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"ReportInfos": [
{
"MsgID":"1906051540450647601",
"PhoneNos": "13212345678",
"SendTime": "2019-06-05 15:38:54",
"ReportDesc": "成功",
"ReportCode": "DELIVRD",
"ReportTime": "2019-06-05 15:38:54",
"SpNo": "10698888987",
"ExtendNo": "987",
"OutId": "131231231",
"SendCode": "1",
"SendDesc": "0",
"SplitCount": "1",
"MsgNo": "1",
"AccountId": "wd20180921",
"SourceCode": "1",
"SourceDesc": "DELIVRD"
},
{
"MsgID":"1906051540450647602",
"PhoneNos": "13212345672",
"SendTime": "2019-06-05 15:38:54",
"ReportDesc": "空号|?;?quot;,
"ReportCode": "LM0001",
"ReportTime": "2019-06-05 15:38:54",
"SpNo": "10698888987",
"ExtendNo": "987",
"OutId": "131231231",
"SendCode": "1",
"SendDesc": "0",
"SplitCount": "1",
"MsgNo": "1",
"AccountId": "wd20180921",
"SourceCode": "0",
"SourceDesc": "MK:0115"
}
]
}
供应商状态码说明:
供应商状态码ReportCode | 描述ReportDesc |
---|---|
DELIVRD | 成功 |
LM0001 | 空号|?;?/td> |
LM0002 | 关机|无法接通 |
LM0003 | 内容|敏感关键词拦截 |
LM0004 | 黑名单|屏蔽 |
LM0005 | 地区屏蔽 |
LM0006 | 签名未报备 |
LM0007 | 流量限制 |
LM0008 | 网关异常|无法连接 |
LM0009 | 签名拦截 |
LM0010 | 同号码流控 |
LM0011 | 网关拦截 |
LM0012 | 手机内存满|超有效期 |
LM0013 | 同内容流控 |
LM0014 | 其它异常 |
功能说明:用于查询上行信息
请求地址:
//api.51welink.com/EncryptionQuery/GetMo.ashx
https://api.51welink.com/EncryptionQuery/GetMo.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
Random | int | Y | 随机数,大于0 |
加密说明:
同个性化短信的加密说明
传参示例
{
"TimeStamp":1532928860,
"AccessKey":"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
"AccountId":"yanfa001",
"Random":6203922
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
MoInfos | List<MoInfo> | MoInfo类型集合 |
IsFull | bool | 取的信息条数是否符合配置的信息条数 |
MoInfo返回值说明:
字段名 | 字段类型 | 描述 |
---|---|---|
MsgID | string | 信息编号 |
PhoneNos | string | 手机号码 |
SpNo | string |
长号码 |
MoContent | string | 上行内容 |
MoTime | datetime | 上行时间 |
ExtendNo | string | 扩展号 |
Province | string | 手机号归属省份 |
City | string | 手机号归属城市 |
OutId | string | 发送短信的自定义key |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"IsFull": true,
"MoInfos": [
{
"MsgID": "123123123",
"SpNo": "106900006666",
"PhoneNos": "18512345678",
"MoContent": "这是上行信息",
"MoTime": "2019-06-05 15:49:58",
"ExtendNo": "6666",
"Province": "北京",
"City": "北京",
"OutId": "12312312"
}
]
}
功能说明:用于提交视频短信
请求地址:
//api.51welink.com/EncryptionSubmit/SendVideoSms.ashx
https://api.51welink.com/EncryptionSubmit/SendVideoSms.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
ExtendNo | string | N | 企业代码,不超过15位数字,超出会被截断,数字串 |
Random | Long | Y | 随机数,大于等于1,小于等于9223372036854775807 |
ProductId | int | Y | 产品编码 |
TempCode | int | Y | 审核通过的模板 ID |
PhoneNos | string | Y | 接收号码间用英文半角逗号“,”隔开,触发产品一次只能提交一个,其他产品一次不能超过10万个号码 |
SendTime | datetime | N | 短信定时时间,格式:yyyy-MM-dd HH:mm:ss |
OutId | string | N | 用户自定义参数,长度≤32,字符串格式 |
加密说明:
AccessKey根据公式sha256(AccountId={账户名称}&PhoneNos={第一个手机号码}&Password={md5(密码原文+SMmsEncryptKey)}&Random={随机数}& TempCode={模板Id}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,第一个手机号码(PhoneNos)=13699999999,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,随机数(Random):123456,模板Id(TempCode):412239,时间戳(Timestamp):123654978,则MD5加密后的密码(password)为:MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&PhoneNos=13699999999&Password=B54B89712EB997BE99114478E3673E3F&Random=123456&TempCode=412239&Timestamp=123654978)="21e3aa7f9913bad93acef94b501f80949a7782a83693a64a922e23d86124def7"
传参示例
如已报备视频短信模板: 412239
{
AccountId:"yanfa001",
TempCode:412239,
AccessKey:"21e3aa7f9913bad93acef94b501f80949a7782a83693a64a922e23d86124def7",
Timestamp:"123654978",
Random:"123456",
ExtendNo:"",
ProductId:"2012883",
PhoneNos:"13699999999"
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
MsgId | long |
信息批次号 |
返回值示例:
{
"Result": "succ",
"Reason": "提交成功",
"MsgId": 1907311938430000377
}
功能说明:用于报备视频短信模板
请求地址:
//api.51welink.com/EncryptionQuery/AddVideoTemplate.ashx
https://api.51welink.com/EncryptionQuery/AddVideoTemplate.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
Random | int | Y | 随机数,大于0 |
VideoSmsContents | Object | Y | 报备的内容,必须在2M以内,文件个数在1-6个。 |
TempTitle | string | Y | 模板名称(长度不超过20字符) |
Callback | string | N | 审核结果异步推送至该地址 //callback |
Remark | string | N | 模板备注,比如申请原因,使用场景等(长度不超过60字符) |
VideoSmsContents参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
Filename | string | Y | 文件名称(带有扩展名,支持文本[txt],图片[gif,jpg,bmp,jpe,jpeg,png],视频[rm,avi,3gp,mp4],音频[mid,midi,mp2,mp3,amr,mp3,wma,arm]。 注意,文件扩展名须与实际文件类型扩展名相同。某些格式音频视频在特定手机上可能不受支持 |
Content | string | Y | 读取文件流并进行Base64编码。注意文本使用UTF-8编码。 |
加密说明:
加密说明:AccessKey根据公式sha256(AccountId={账户名称}&Password={md5(密码原文+SMmsEncryptKey)}&Random={随机数}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,随机数(Random):6203922,时间戳(Timestamp):1532928860,则MD5加密后的密码(password)为:MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&Password=B54B89712EB997BE99114478E3673E3F&Random=6203922&Timestamp=1532928860)="e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137"
传参示例
{
AccountId:"yanfa001",
AccessKey:"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
Timestamp:" 1532928860",
Random:" 6203922",
VideoSmsContents:[
{
Filename:"1.txt",
Content:"Base64(Encoding.UTF8.GetBytes(“中文”))"
},
{
Filename:"2.jpg",
Content:"Base64(File.ReadAllBytes("2.jpg"))"
},
{
Filename:"3.mp4",
Content:" Base64(File.ReadAllBytes("3.mp4"))"
}
],
Callback: "//xxx.xxx.com/template",
TempTitle: "视频短信模板",
Remark:"星巴克会员消费通知2019-01-01添加"
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
TempCode | int | 模板编号 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"TempCode": 412226
}
功能说明:用于添加短信模板
请求地址:
//api.51welink.com/EncryptionQuery/AddTemplate.ashx
https://api.51welink.com/EncryptionQuery/AddTemplate.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
Random | int | Y | 随机数,大于0 |
Content | string | Y | 模板内容不超过500字符,内容必须带签名,在内容开始或结束位置; 示例:【微网通联】您的验证码是123456.,请于3分钟内填写; 模板创建为:【微网通联】您的验证码是{1},请于{2} 分钟内填写; |
TempTitle | string | Y | 模板名称(长度不超过20字符) |
Callback | string | N | 审核结果异步推送至该地址 //callback |
Remark | string | N | 模板备注,比如申请原因,使用场景等(长度不超过60字符) |
加密说明:
加密说明:AccessKey根据公式sha(AccountId={账户名称}&Password={md5(密码原文+SMmsEncryptKey)}&Random={随机数}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,随机数(Random):6203922,时间戳(Timestamp):1532928860,则MD5加密后的密码(password)为:MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&Password=B54B89712EB997BE99114478E3673E3F&Random=6203922&Timestamp=1532928860)="e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137"
传参示例
{
AccountId:"yanfa001",
AccessKey:"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
Timestamp:"1532928860",
Random:"6203922",
Content:"尊贵的会员:{1},您于{2}在{3}消费了{4}元,谢谢您的惠顾【星巴克】",
Callback:"//xxx.xxx.com/template",
TempTitle:"消费通知模板",
Remark:"星巴克会员消费通知2019-01-01添加"
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
TempCode | int |
模板编号 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"TempCode": 412226
}
功能说明:用于查询短信(视频短信)模板
请求地址:
//api.51welink.com/EncryptionQuery/GetTemplate.ashx
https://api.51welink.com/EncryptionQuery/GetTemplate.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
TempCode | int | Y | 模板Id标识 |
Random | int | Y | 随机数,大于0 |
加密说明:
AccessKey根据公式sha256(AccountId={账户名称}&Password={md5(密码原文+SMmsEncryptKey)}&TempCode ={模板Id}&Random={随机数}&Timestamp={unix时间戳精确到秒})生成。AccessKey串中的参数名称注意大小写和参数顺序,随机数是long类型,数值范围在1 至9223372036854775807之间。
譬如:账户(AccountId):yanfa001,密码(Password):yanfa001,固定的加密key:SMmsEncryptKey,模板Id(TempCode): 412122,随机数(Random):6203922,时间戳(Timestamp):1532928860,则MD5加密后的密码(password)为:
MD5("yanfa001SMmsEncryptKey")="B54B89712EB997BE99114478E3673E3F",必须为大写。
则凭证(AccessKey)为:
sha256(AccountId=yanfa001&Password=B54B89712EB997BE99114478E3673E3F&TempCode=412122&Random=6203922&Timestamp=1532928860)="4c51ce38d87a4b6c333afccba751821552a38e7229f6263b3249448ed6636c03"
传参示例
{
AccountId:"yanfa001",
AccessKey:"4c51ce38d87a4b6c333afccba751821552a38e7229f6263b3249448ed6636c03",
Timestamp:"1532928860",
Random:"6203922",
TempCode:412122
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档 错误码-返回值枚举部分 |
TempCode | int |
模板Id标识 |
TempTitle | string |
模板标题(视频短信为短信标题,模板短信为模板名称) |
Content | string |
模板内容(视频短信为空,模板短信为模板内容) |
TempStatus | int |
当前状态,1:未审核,2:有效,3:无效。 |
TempDesc | string |
审批信息,供应商驳回原因说明 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"TempCode": 412225,
"TempStatus": 1,
"TempDesc": "",
"TempTitle": "",
"Content": "尊贵的会员:{1},您于{2}在{3}消费了{4}元,谢谢您的惠顾【星巴克】"
}
功能说明:用于删除短信模板
请求地址:
//api.51welink.com/EncryptionQuery/DelTemplate.ashx
https://api.51welink.com/EncryptionQuery/DelTemplate.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
TempCode | int | Y | 模板Id标识 |
Random | int | Y | 随机数,大于0 |
加密说明:
同添加短信模板加密方式
传参示例
{
"TimeStamp":1532928860,
"AccessKey":"a48a5803c5e3965cbcd3c42e739c558b8d9815c640addd057ecd87d2555268a7",
"AccountId":"yanfa001",
"Random":12345,
"TempCode":412122
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
Content | string |
模板内容 |
TempStatus | int |
删除前的状态,1:未审核,2:有效,3:无效。 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"Content": "尊贵的会员:*{V1:.{1,30}}*,您于*{V2:.{1,30}}*在*{V3:.{1,30}}*消费了*{V4:.{1,30}}*元,谢谢您的惠顾【星巴克】",
"TempStatus": 2
}
回调推送说明:
功能说明:只给客户模板报备时传递了回调地址参数的模板进行审核结果推送
推送方式:只支持POST
数据格式式:JSON
推送的参数说明:
参数名 | 参数类型 | 参数描述 |
---|---|---|
TempCode | int | 模板ID |
TempStatus | int | 审核结果 0:已通过 1:待审核, 2:已拒绝 |
Content | string | 模板内容 |
TempDesc | string | 审核说明,审核状态为“无效”时才有值 |
回调推送响应结果说明:
如果返回json数据 {"result":"ok"}则表示回调推送成功,否则认为是回调推送失败
功能说明:用于查询余量
请求地址:
//api.51welink.com/EncryptionQuery/GetRemain.ashx
https://api.51welink.com/EncryptionQuery/GetRemain.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
ProductId | int | Y | 产品编号 |
Random | int | Y | 随机数,大于0 |
加密说明:
同个性化短信加密说明
传参示例
{
"TimeStamp":1532928860,
"AccessKey":"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
"AccountId":"yanfa001",
"Random":6203922,
"ProductId":1012812
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
Remain | int | 余量 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"Remain": 1004640454
}
功能说明:用于查询计费量
请求地址:
//api.51welink.com/EncryptionQuery/GetCharge.ashx
https://api.51welink.com/EncryptionQuery/GetCharge.ashx
参数说明:
参数名 | 参数类型 | 值是否必填 | 参数描述 |
---|---|---|---|
AccountId | string | Y | 提交账户 |
AccessKey | string | Y | 加密后的key,加密说明见下方 |
Timestamp | long | Y | Unix时间戳,精确到秒,不能含有小数及L |
ProductId | string | N | 产品编号,不填代表查询所有产品数据 |
Random | long | Y | 随机数,大于0 |
BeginDate | Date | Y | 查询开始时间,格式:2019-06-24 |
EndDate | Date | Y | 查询结束时间,格式:2019-06-30 |
加密说明:
同个性化短信加密说明
传参示例
{
"TimeStamp":1532928860,
"AccessKey":"e2e0c1c377356545688cf25658fc9bbaf590d7d23e030513717c22ad8f16a137",
"AccountId":"yanfa001",
"Random":6203922,
"ProductId":"1012812",
"BeginDate":"2019-06-24",
"EndDate":"2019-06-30"
}
返回值字段说明:
字段名 | 字段类型 | 描述 |
---|---|---|
Result | string | 返回状态值 |
Reason | string | 返回状态描述,参见文档错误码-返回值枚举部分 |
ChargeInfos | List<ChargeInfo> | ChargeInfo类型集合 |
ChargeInfo返回值说明:
字段名 | 字段类型 | 描述 |
---|---|---|
AccountId | string | 账号Id |
ProductId | int | 产品Id |
Date | date | 日期 |
TotalCount | int | 号码数量 |
TotalCharge | int | 计费数量 |
返回值示例:
{
"Result": "succ",
"Reason": "成功",
"ChargeInfos": [
{
"AccountId": "wd20180921",
"ProdutcId": 1010888,
"Date": "2019-06-21",
"TotalCount": 1,
"TotalCharge": 0
}
]
}
SDK 名称 | SDK 文档 |
---|---|
Java SDK | 短信 Java SDK 文档 |
PHP SDK | 短信 PHP SDK 文档 |
状态码 | 描述 |
---|---|
succ | 成功,表示提交成功 |
101 | 提交参数不可为空,或参数格式错误 |
102 | 时间格式不正确,正确格式为yyyy-MM-dd HH:mm:ss |
104 | 暂不支持该请求方式,只支持GET和POST |
105 | 登录凭证校验失败 |
106 | 与服务器时间差异超过 10 分钟 |
107 | 模板长度超过限制 |
108 | 模板内容无签名 |
109 | 模板变量数量超过限制 |
110 | 模板参数格式不正确 |
111 | 模板名称长度超过限制 |
112 | 模板备注长度超过限制 |
113 | 指定的模板不存在 |
114 | 指定的模板未审核通过 |
115 | 参数与模板无法匹配 |
116 | 模板已删除或不存在 |
117 | 模板添加失败 |
118 | 模板回调地址格式不正确 |
119 | 时间范围不正确 |
1000 | 尚未成功启动请检查日志,供应商内部错误,请联系供应商 |
1001 | 提交参数错误! |
1002 | 未成功加载号段???,供应商内部错误,请联系供应商 |
1003 | 超过最大内容长度,内容长度:%d,短信提交时,提交的内容长度大于4000 |
1004 | 未成功加载账户???,供应商内部错误,请联系供应商 |
1005 | 未成功加载私有关键字???,供应商内部错误,请联系供应商 |
1006 | 未成功加载扩展产品???,供应商内部错误,请联系供应商 |
1007 | 错误的信息类型:消息类型 |
1008 | 超过最大并发提交用户数%d |
1009 | 号码为空或超过最大提交号码个数%d,最大10w个手机号码 |
1010 | 信息内容为空或超过最大信息字节长度:%d,内容长度:%d |
1011 | 超过最大企业号码长度:%d,或企业号码不包含:%s |
1012 | 超过最大企业号码长度:%d或%d企业号码不可扩展 |
1013 | 账号密码不正确或账号状态异常,帐号:%s,状态:%d |
1014 | 账户提交方式不正确或Ip受限 |
1015 | 系统登录名检测不正确或IP受限 |
1016 | 产品不存在或未开启:%d,供应商内部错误,请联系供应商 |
1017 | 提交信息类型与产品信息类型不符合 |
1018 | 提交失败:超过产品发送时段(%s-%s) |
1019 | 提交彩信必须有标题 |
1020 | 提交短信不可超过%d个字,消息长度:%d |
1021 | 提交彩信不可超过%dK |
1022 | 计费数为0,供应商内部错误,请联系供应商 |
1023 | 无效计费条数,号码不规则 |
1025 | Account:%s 余额不足或计费异常(异常码:%d) |
1026 | 提交至调度中心失败,供应商内部错误,请联系供应商 |
1028 | 提交号码未达到产品要求数量,或账户%s无对应的产品%d(异常码:%d) |
1029 | 扩展产品%d不可提交多个号码 |
1031 | 提交时间[%s]+%d天>定时发送时间[%s]>提交时间[%s] 规则不成立 |
1032 | 自由签名的产品%d,签名格式不正确 |
1033 | 产品%d的正则签名%s配置有误 |
1034 | 错误的内容长度,ErrorCode:%d |
1035 | 强制签名的产品%d,签名格式不正确 |
1036 | 企业代码不正确,账号上企业码:%s,用户提交的企业码:%s |
1037 | 未成功加载账户强制签名报备???,供应商内部错误,请联系供应商 |
1038 | 产品%d要求强制签名,账号%s,企业代码%s,签名 %s 未报备 |
1039 | 未成功加载白名单???,供应商内部错误,请联系供应商 |
1040 | 消息编号生成失败,供应商内部错误,请联系供应商 |
1041 | 未成功加载账户内容模版???,供应商内部错误,请联系供应商 |
1042 | 内容不符合模版,供应商内部错误,请联系供应商 |
1043 | 未成功加载账户安全登录???,供应商内部错误,请联系供应商 |
1044 | 未成功加载计费???,供应商内部错误,请联系供应商 |
1045 | 未成功加载组合关键字???,供应商内部错误,请联系供应商 |
1046 | 未成功加载账户平台资源模版???,供应商内部错误,请联系供应商 |
1047 | 信息内容不可为空 |
1048 | 该信息未成功报备,请审核通过再提交发送,accId=%d,templateID=%d |
1049 | 超过最大企业号码长度:%d,且账号不支持超长扩展,企业接入号:%s |
1050 | 账号密码不正确或账号状态异常,账号:%d,CommitIP:%d |
1051 | 提交短信不可超过%d个字,提交消息长度:%d |
1052 | 无效计费条数,号码不规则 |
1053 | 产品%d的正则签名%s配置有误 |
1054 | 企业代码不正确,用户提交的企业码:%s |
2001 | 变量文件格式不正确 |
2002 | 模版文件格式不正确 |
2003 | 提交队列失败,供应商内部错误,请联系供应商 |
-99 | 异常,供应商内部错误,请联系供应商 |
提交返回“提交参数不可为空,或参数格式错误”
可能由以下原因导致:
1) 请求URL时未传递参数或者body。
2) 请求Body参数中,缺少必传参数项,如AccountId、AccessKey、Random、PhoneNos、TimeStamp、ProductId、Content。
3) 请求头类型Content Type未与请求数据格式相对应,如json格式参数没有使用application/json,使用了application/x-www-form-urlencoded。如字符串&符号拼接参数方式没有使用application/x-www-form-urlencoded类型,使用了其他类型。
提交返回“登录凭证校验失败”
可能由以下原因导致:
1) MD5加密后的字符串不是32位大写。
2) MD5加密串AccessKey中没有包含固定key:SMmsEncryptKey。
3) 加密串AccessKey中的参数值拼写不正确,包括未按照要求大小写。
4) 时间戳Timestamp没有精确到秒或者超过10分钟。
5) 请求body中的Random值与AccessKey串中的Random值不一致。
6) 请求body中的Timestamp值与AccessKey串中的Timestamp值不一致。
7) 请求body中的AccountId值与AccessKey串中的AccountId值不一致。
8) AccessKey串中的手机号码与PhoneNos参数中的第一个号码不一致。
9) AccessKey串中各个参数的顺序不符合示例要求。
10) Random值为0、负数或者0开头的数字串。