中国万网短信平台API使用说明 版本:V2.2 一、概述 为了方便客户调用,本接口采用了通用的 HTTP形式,可以支持各种操作系统和开发语言。 客户只需要在其现有系统中通过http post方式,按照下一节的接口参数说明将相应的入口参数提交到接口URL即可完成短信的发送。 使用此接口的用户应至少熟悉 HTML语法,理解Form表单和含义,如果不熟悉请参考相关书籍或加入万网软件学院。 二、接口参数说明接口URL地址: http://bms./sms_gateway/sms_api 入口参数:
出口参数:
三、例子代码下面分别列出了常用的四种web开发语言调用此接口的方法,各种语言的版本均封装为统一的接口函数 send_sms,并且参数的个数和类型都一样,以下做统一说明。 参数说明: 用户名,即企业代码: $user_id 密码:$password 接收短信的手机号(如果是多个手机号,用逗号分开,最多100个):$mobile_phone 要发送的短信内容:$msg 定时发送时间(格式为:年月日时分秒“040524165823”,如果即时发送置为空):$send_date 子特服号(与企业代码相同):$subCode 1.PHP 代码<? function sms_send($user_id,$password,$mobile_phone,$msg,$send_date,$subCode) /* php 发送HTTP POST数据函数 */ { //生成请求字串 $request = 'user_id=' . urlencode($user_id); $request .= '&password=' . urlencode($password); $request .= '&mobile_phone=' . urlencode($mobile_phone); $request .= '&msg=' . urlencode($msg); $request .= '&send_date=' . urlencode($send_date); $request .= '&subCode=' . urlencode($subCode);
// 生成HTTP头 $header = "POST http://bms./sms_gateway/sms_api HTTP/1.0\r\n"; $header .= "Content-type: application/x-www-form-urlencoded\r\n"; $header .= "Content-length: " . strlen($request) . "\r\n\r\n";
// 打开连接
$fp = fsockopen('bms.', 80, &$err_num, &$err_msg,30); if (!$fp) $response="网络忙请稍候再试"; else { //发送请求信息 fputs($fp, $header . $request); //得到返回值 while (!feof($fp)) $response .= fgets($fp, 128); } $strarray=split("\r\n\r\n",$response); $res=$strarray[1]; return Chop($res); } ?> <? //调用例子 $ret=sms_send('4003','XXXXXX','13900000000','test msg from php code','','4003'); //输出返回结果 echo "$ret"; ?> 2.ASP 代码<% '本例子程序使用了微软的winhttp 组件,万网的虚拟主机上已经安装了此组件. 如果您使用非万网主机执行此段代码,需要在win2000客户机上安装service pack4,win2003也默认安装了此组件。如果缺乏winhttp组件将返回424错误。 function send_sms(user_id,password,mobile_phone,msg,sendtime,subcode) dim sendStr,http Err.Clear On Error Resume Next sendStr="user_id=" & user_id & "&password=" & password & "&mobile_phone=" & mobile_phone & "&msg=" & server.URLEncode(msg) & "&sendtime=" & sendtime & "&subcode=" & subcode set http=server.CreateObject("WinHttp.WinHttpRequest.5.1") http.SetTimeouts 30000,50000,30000,30000 http.Open "POST", "http://bms./sms_gateway/sms_api", False http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.Send sendStr
If Err.Number = 0 Then send_sms=trim(http.responsetext) 'Response.Write send_sms else send_sms=-1 Response.Write Err.Number end if http.Abort() end function dim ret ret = send_sms ("4003","xxxxxxxx","13900000000","中华人民共和国万岁","","4003") Response.Write ret %> 3.Perl 代码#!/usr/bin/perl use LWP::UserAgent; use HTTP::Request::Common; sub sms_send #通过http post 发送短消息 { my($user_id,$password,$mobile_phone,$msg,$send_date,$subCode)=@_;
my @parm; my $url="http://bms./sms_gateway/sms_api"; my $ua = LWP::UserAgent->new(); push(@parm,'user_id',$user_id); push(@parm,'password',$password); push(@parm,'mobile_phone',$mobile_phone); push(@parm,'msg',$msg); push(@parm,'send_date',$send_date); push(@parm,'subCode',$subCode);
my $req = POST $url, \@parm; my $response = $ua->request($req); if ($response->is_success) { return($response->content); } else { return("310 network is busy!"); } } $ret_str=&sms_send('4003','xxxxxx','13900000000','test msg from perl code','','4003'); print "$ret_str"; 4.Java 代码package hichina.util; import java.net.URLEncoder; import java.net.URL; import java.net.URLConnection; import java.util.*; import java.io.*; class http_post { public String send_sms(String user_id, String password, String mobile_phone, String msg, String send_date, String subcode) { String ret_str = ""; try { // Construct data String data = "user_id=" + user_id + "&password=" + password + "&mobile_phone=" + mobile_phone + "&msg=" + URLEncoder.encode(msg, "GBK") + "&send_date=" + send_date + "&subcode=" + subcode; // Send data URL url = new URL("http://bms./sms_gateway/sms_api"); URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(data); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn. getInputStream())); String line; while ( (line = rd.readLine()) != null) { ret_str += line; } wr.close(); rd.close(); } catch (Exception e) { System.out.println(e.toString()); } return ret_str; } public static void main(String[] args) throws IOException { http_post http= new http_post(); String ret=http.send_sms("4003","xxxxxxx","13900000000","fromjava中国万岁","","4003"); System.out.println(ret); } } 5.C# 代码static string SenderMobileMessage(string MessageContent, string Mobiles) { string sendStr = "http://bms./sms_gateway/sms_api? user_id=8888&password=123456&mobile_phone=" + Mobiles + "&msg=" + System.Web.HttpUtility.UrlEncode(MessageContent,Encoding.Default) + "&sendtime=&subcode=8888"; HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(sendStr); System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse(); System.IO.Stream stream = response.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(stream, System.Text.Encoding.GetEncoding("gb2312")); System.String s = reader.ReadToEnd(); stream.Close(); response.Close(); return s; } static void { SenderMobileMessage(“测试发送”,” } 备注:以上代码都经过实际测试,均可粘贴到客户程序中直接使用,如有问题请与客服部门联系。 四、API帐户查询管理功能:查询账号剩余数及每日发送短信条数 中国万网产品研发部 (全文完) |
|
来自: 闪宁斯达 > 《手机短信 java》