短信发送
欢果API短信接口主要应用于:
1、以银行、金融业为代表的账户变动通知短信,存贷款利率通知、外汇牌价通知、股市信息通知等等行业业务通知类;
2、会员营销类短信:主要代表由直接面对终端用户的消费企业,进行市场推广,营销传播、促销优化,客户ERP等方面的应用为主;
3、移动互联网时代新增场景:手机验证码短信;
4、嵌入公司办公OA、ERP等办公通知类,与各类应用实现无缝对接,具有易对接,准确到达率高等特点。
5、更多应用有待您的创造和发现。
请求地址:
请求地址
UTF-8编码HTTP请求地址
|
GB2312编码HTTP请求地址
|
http://api.huanguo.com:8888/sms.aspx
|
http://api.huanguo.com:8888/smsGBK.aspx
|
公共参数
action参数值
|
功能
|
send
|
发送短信
|
overage
|
获取余额
|
checkkeyword
|
检查敏感字
|
...
|
更多功能请联系客服咨询
|
请求参数(send)
名称
|
类型
|
是否必须
|
示例值
|
更多限制
|
描述
|
action
|
String
|
必须
|
send
|
|
发送任务命令,设置为固定的:send
|
userid
|
String
|
必须
|
12
|
|
企业ID
|
account
|
String
|
必须
|
帐号
|
|
发送用户帐号,,由系统管理员分配。
|
password
|
Json
|
必须
|
123456
|
|
用户账号对应的密码.
|
mobile
|
String
|
必须
|
13000000000
|
|
发信发送的目的号码.多个号码之间用半角逗号隔开
|
content
|
String
|
必须
|
下发内容
|
|
短信的内容,内容需要接口对应编码
|
sendTime
|
String
|
可选
|
2010-10-24 09:08:10
|
|
定时发送时间码为空表示立即发送,定时发送格式2010-10-24 09:08:10
|
extno
|
String
|
可选
|
1
|
|
扩展子号。请先询问配置的通道是否支持扩展子号,如果不支持,请填空。子号只能为数字,且最多10位数。
|
响应参数
名称
|
类型
|
示例值
|
描述
|
returnstatus
|
String
|
Success
|
返回状态值:成功返回Success 失败返回:Faild
|
message
|
String
|
ok
|
返回信息:见错误码解释表
|
remainpoint
|
String
|
10000
|
返回余额
|
taskID
|
String
|
1212
|
返回本次任务的序列ID
|
successCounts
|
String
|
50
|
成功短信数:当成功后返回提交成功短信数
|
请求示例
public static String sendPost(String sendUrl, String outEncoding) {
String retMsg = "";
BufferedReader reader = null;
try {
URL url = new URL(sendUrl);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
// 发送域信息
OutputStreamWriter out = new OutputStreamWriter(connection
.getOutputStream(), outEncoding);
out.flush();
out.close();
// 获取返回数据
InputStream in = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(in));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
retMsg = buffer.toString();
} catch (Exception e) {
e.printStackTrace();
retMsg = "reuid_error";
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return retMsg.trim();
}
string HttpPost(string uri, string parameters)
{
WebRequest webRequest = WebRequest.Create(uri);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.UTF8.GetBytes(parameters);//这里需要指定提交的编码
Stream os = null;
try
{ // send the Post
webRequest.ContentLength = bytes.Length; //Count bytes to send
os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Send it
}
catch (WebException ex)
{
MessageBox.Show(ex.Message, "HttpPost: Request error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (os != null)
{
os.Close();
}
}
$post_data = array();
$post_data['userid'] = 企业ID;
$post_data['account'] = '用户帐号';
$post_data['password'] = '密码';
$post_data['content'] = urlencode('测试php提交'); //短信内容需要用urlencode编码下
$post_data['mobile'] = '号码';
$post_data['sendtime'] = ''; //不定时发送,值为0,定时发送,输入格式YYYY-MM-dd HH:mm:ss的日期值
$url='http://客户端地址/sms.aspx?action=send';
$o='';
foreach ($post_data as $k=-->$v)
{
$o.="$k=".urlencode($v).'&';
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。
$result = curl_exec($ch);
<%
Class SmsSend
'____________________
Private value_ '反回信息
Private src_ '提交的目标URL地址
Private userid_ '
Private password_ '密码,中英文及数字
Private account_ '用户名,中英文及数字
Private content_ '短信内容,中英文及数字
Private mobile_ '手机号码,用半角逗号(,)间隔
Private sendtime_ '定时发送时间,默认0,格式yyyymmddhhnnss,小于当前时间的立即发送
Private charset_ '
Private isGet_ '判断是否已经提交
Private strxml_ '
Public property let src(srcs) '赋值—短信内容
src_ = srcs
End Property
Public property let userid(userids) '赋值—短信内容
userid_ = userids
End Property
Public property let password(passwords) '赋值—短信内容
password_ = passwords
End Property
Public property let account(accounts) '赋值—短信内容
account_ = accounts
End Property
Public property let content(contents) '赋值—短信内容
content_ = contents
End Property
Public property let mobile(mobiles) '赋值—手机号码
mobile_ = mobiles
End Property
Public property let sendtime(sendtimes) '赋值—手机号码
sendtime_ = sendtimes
End Property
Public property let charset(charsets) '赋值—提交的目标URL地址/属性
charset_ = charsets
End property
Public property get value '返回值—应用类方法加工过的内容/属性
value = value_
End property
Public Property get Version
Version="短信发送类"
End Property
private Sub class_initialize()
value_ = ""
src_ = "http://客户端地址/sms.aspx"
userid_ = "12"
password_ = "123456"
account_="test"
content_ = ""
mobile_ = ""
sendtime_ = 0
charset_ = "gb2312"
isGet_ = False
End Sub
private Sub class_terminate()
End Sub
private Function BytesToBstr(body,Cset) '中文处理
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
Public Sub getto() '窃取目标URL地址的HTML代码/方法
Dim Http
Set Http = Server.CreateObject("Msxml2.XMLHTTP.3.0")
If Err Then
Err.Clear
Set Http = Server.CreateObject("Msxml2.XMLHTTP")
If Err Then
Err.Clear
Set Http = Server.CreateObject("Microsoft.XMLHTTP")
If Err Then
Err.Clear
Rem 服务器不支持Msxml,本程序无法运行!
Exit Sub
End If
End If
End If
Http.Open "POST", src_, False
If action_ = 1 Or action_ = 2 Then
strxml_ = "action=send&userid="&userid_&"&account="&account_&"&password="&password_&"&action="&action_
Else
strxml_ = "action=send&userid="&userid_&"&account="&account_&"&password="&password_&"&content="&content_&"&mobile="&mobile_&"&sendtime="&sendtime_
End If
Http.SetRequestHeader "CONTENT-LENGTH ",len(strxml_)
Http.SetRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
Http.Send(strxml_)
If Http.Status<>200 Then
value_="sms error"
Exit Sub
End If
value_=BytesToBSTR(Http.responseBody,charset_)
isGet_= True
Set http=Nothing
If err.number<>0 Then err.Clear
Set objXML = Server.CreateObject("MSXML2.DOMDocument")
objXML.validateonparse = true
objXML.async=false
objXML.loadXML(value_)
Set objNodes = objXML.getElementsByTagName("returnsms")
Dim returnstatus
Dim remainpoint
Dim message
if not isNUll(objNodes(0)) then
returnstatus=Trim(objNodes(0).getAttribute("returnstatus"))
if returnstatus="Success" then
response.Write("提交成功")
else
response.Write("提交失败")
end if
end if
End Sub
End class
dim sendsms
Set sendsms = New SmsSend
call sendsms.getto()
Set sendsms=nothing
%>
响应示例
异常示例
错误码解释
返回信息提示
|
错误描述
|
解决方案
|
ok
|
提交成功
|
提交成功
|
用户名或密码不能为空
|
提交的用户名或密码为空
|
提交的正确的用户名或密码
|
发送内容包含sql注入字符
|
包含sql注入字符
|
全角提交包含sql注入字符
|
用户名或密码错误
|
表示用户名或密码错误
|
提交的正确的用户名或密码
|
短信号码不能为空
|
提交的被叫号码为空
|
提交正常被叫号码
|
短信内容不能为空
|
发送内容为空
|
提交正常的内容
|
包含非法字符:
|
表示检查到不允许发送的非法字符
|
修改短信内容,重新提交
|
对不起,您当前要发送的量大于您当前余额
|
当支付方式为预付费是,检查到账户余额不足
|
充值后重新提交
|
其他错误
|
其他数据库操作方面的错误
|
其他数据库操作方面的错误
|
如何获得此API