华兴软通短信接口简单使用WebServices版

接口的简单使用,在这里做个记录吧

功能流程


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

posted @ 2010-03-11 21:21  与时俱进  阅读(1307)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈