///
/// 查询账户余额
///
/// 账户名
/// 账户密码
/// 返回的是查询得到的余额信息
public static string QueryBalance(string SMScode, string SMSPwd)
{
string path = "/S059" + SMScode.ToString().Trim() + "" + SMSPwd.ToString().Trim() + "";
return SMSrequest(path.ToString()
查看并下载代码:http://www.cckan.net/forum.php?mod=viewthread&tid=168
接口的简单使用,在这里做个记录吧
功能流程
示例代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace SMS
{
/// <summary>
/// 短信息操作类
/// 开始时间:20091027上午
/// 开 发 人:苏飞
/// </summary>
public class SmsServices
{
/// <summary>
/// 请求的公共类用来向服务器发送请求
/// </summary>
/// <param name="strSMSRequest">发送请求的字符串</param>
/// <returns>返回的是请求的信息</returns>
private static string SMSrequest(string strSMSRequest)
{
byte[] data = new byte[1024];
string stringData = null;
IPHostEntry gist = Dns.GetHostByName("www.stongnet.com");
IPAddress ip = gist.AddressList[0];
//得到IP
IPEndPoint ipEnd = new IPEndPoint(ip, 8080);
//默认80端口号
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//使用tcp协议 stream类型
try
{
socket.Connect(ipEnd);
}
catch (SocketException ex)
{
return "Fail to connect server\r\n" + ex.ToString();
}
//string path = "/<END><COMMAND>S059</COMMAND><REGISTRYCODE>101100-SJB-HUAX-123456</REGISTRYCODE><PWD>Z123BNM1</PWD></END>";
string path = strSMSRequest.ToString().Trim();
StringBuilder buf = new StringBuilder();
buf.Append("GET ").Append(path).Append(" HTTP/1.0\r\n");
buf.Append("Content-Type: application/x-www-form-urlencoded\r\n");
buf.Append("\r\n");
byte[] ms = System.Text.UTF8Encoding.UTF8.GetBytes(buf.ToString());
//提交请求的信息
socket.Send(ms);
//接收返回
string strSms = "";
int recv = 0;
do
{
recv = socket.Receive(data);
stringData = Encoding.UTF8.GetString(data, 0, recv);
//如果请求的页面meta中指定了页面的encoding为gb2312则需要使用对应的Encoding来对字节进行转换()
strSms = strSms + stringData;
}
while (recv != 0);
socket.Shutdown(SocketShutdown.Both);
socket.Close();
return strSms;
}
/// <summary>
/// 查询账户余额
/// </summary>
/// <param name="SMScode">账户名</param>
/// <param name="SMSPwd">账户密码</param>
/// <returns>返回的是查询得到的余额信息</returns>
public static string QueryBalance(string SMScode, string SMSPwd)
{
string path = "/<END><COMMAND>S059</COMMAND><REGISTRYCODE>" + SMScode.ToString().Trim() + "</REGISTRYCODE><PWD>" + SMSPwd.ToString().Trim() + "</PWD></END>";
return SMSrequest(path.ToString().Trim());
}
/// <summary>
/// 接收短信
/// </summary>
/// <param name="SMScode">账户名</param>
/// <param name="SMSPwd">账户密码</param>
/// <returns>返回的是查询得到的短信息内容</returns>
public static string QueryFormSms(string SMScode, string SMSPwd)
{
string path = "/<END><COMMAND>S691</COMMAND><REGISTRYCODE>" + SMScode.ToString().Trim() + "</REGISTRYCODE><PWD>" + SMSPwd.ToString().Trim() + "</PWD></END>";
return SMSrequest(path.ToString().Trim());
}
/// <summary>
/// 发送短信
/// </summary>
/// <param name="SMScode">账户名</param>
/// <param name="SMSPwd">账户密码</param>
/// <param name="Content">短信内容</param>
/// <param name="Phone">接收的手机号码</param>
/// <returns>返回的是短信息发送的状态信息</returns>
public static string SendSms(string SMScode, string SMSPwd, string Content, string Phone)
{
string path = "/<END><COMMAND>S058</COMMAND><REGISTRYCODE>" + SMScode.ToString().Trim() + "</REGISTRYCODE><PWD>" + SMSPwd.ToString().Trim() + "</PWD><TIM></TIM><CONTENT>" + Content.ToString().Trim() + "</CONTENT><SMSID>1</SMSID><MOBILE>" + Phone.ToString().Trim() + "</MOBILE></END>";
return SMSrequest(path.ToString().Trim());
}
}
}
文档参考
华兴软通WEB接口规范
北京华兴软通科技有限公司
2009-09
1. 发送短信
l 功能描述
合作方把下行内容发给华兴软通平台, 华兴软通平台返回发送状态
l 编码格式
UTF-8
l 接口内容描述
字段名
|
说明
|
<END></END>
|
消息体开头和结尾
|
<COMMAND></COMMAND>
|
命令字,S058表示发送短信
|
<REGISTRYCODE></REGISTRYCODE>
|
注册号
|
<PWD></PWD>
|
密码
|
<TIM><TIM>
|
定时时间发送的时间,可以不填
|
<CONTENT></CONTENT>
|
短信内容
|
<SMSID></SMSID>
|
短信编号,正整数
|
<MOBILE></MOBILE>
|
手机号
|
以上除<TIM><TIM>外都不能为空,字段名必须大写,每次发送短信不要超过20条,一次只允许一个连接,不允许多线程同时开多个连接。通信是同步的,不是异步。
|
l 请求实例:
http://www.stongnet.com:8080/<END><COMMAND>S058</COMMAND><REGISTRYCODE>101100-TEST-3456</REGISTRYCODE><PWD>12</PWD><TIM></TIM><CONTENT>短信内容</CONTENT><SMSID>1</SMSID><MOBILE>13867507888</MOBILE><SMSID>2</SMSID><MOBILE>13967507889</MOBILE></END>
l 服务端返回信息:
字段名
|
说明
|
result
|
0成功,-1失败
|
des
|
返回结果描述
|
l 服务端返回实例:
result=0&des=OK
2. 接收短信
l 功能描述
合作方向华兴软通平台查询手机回复到平台的短信,平台返回结果
l 编码格式
UTF-8
l 接口内容描述
字段名
|
说明
|
<END></END>
|
消息体开头和结尾
|
<COMMAND></COMMAND>
|
命令字,S691表示查询手机回复到平台的短信
|
<REGISTRYCODE></REGISTRYCODE>
|
注册号
|
<PWD></PWD>
|
密码
|
字段名必须大写,一次只允许一个连接,不允许多线程同时开多个连接,不要频繁接收短信。通信是同步的,不是异步。
|
l 请求实例:
http://www.stongnet.com:8080/<END><COMMAND>S691</COMMAND><REGISTRYCODE>101100-TEST-3456</REGISTRYCODE><PWD>123</PWD></END>
l 服务端返回信息:
字段名
|
说明
|
result
|
0成功,-1失败
|
des
|
返回结果描述
|
mobile
|
发送手机号
|
content
|
短信内容
|
recvtime
|
短信到达平台的时间
|
l 服务端返回实例:
result=0&des=OK&mobile=13167507389&content=123&recvtime=2009-1-1 12:00:00&mobile=13167507389&content=123&recvtime=2009-2-2 12:00:00
3. 查询余额
l 功能描述
合作方向华兴软通平台请求查询余额,平台返回结果
l 编码格式
UTF-8
l 接口内容描述
字段名
|
说明
|
<END></END>
|
消息体开头和结尾
|
<COMMAND></COMMAND>
|
命令字,S059表示查询余额
|
<REGISTRYCODE></REGISTRYCODE>
|
注册号
|
<PWD></PWD>
|
密码
|
字段名必须大写,一次只允许一个连接,不允许多线程同时开多个连接,不要频繁查询余额。通信是同步的,不是异步。
|
l 请求实例:
http://www.stongnet.com:8080/<END><COMMAND>S059</COMMAND><REGISTRYCODE>101100-TEST-3456</REGISTRYCODE><PWD>12</PWD></END>
l 服务端返回信息:
字段名
|
说明
|
result
|
0成功,-1失败
|
balance
|
短信余额(单位:条)
|
l 服务端返回实例:
result=0&balance=100
本人的博客不再维护从2013年就不再维护了
需要我帮助的朋友请到我的个人论坛 http://www.sufeinet.com 进行讨论,感谢大家对我的支持!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步