http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6751|回复: 1

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

[复制链接]
发表于 2012-7-26 09:52:09 | 显示全部楼层 |阅读模式
接口的简单使用,在这里做个记录吧
功能流程
untitled.png
大家直接看代码吧
[C#] 纯文本查看 复制代码
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



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2012-8-21 09:15:19 | 显示全部楼层
噢,思路 很不错呀
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 14:11

© 2014-2021

快速回复 返回顶部 返回列表