PHP彩信接口开发经验及具体开发实现
一、查询账户余额balance()
参数名称 |
说明 |
备注 |
Sn |
软件序列号 |
格式XXX-XXX-XXX-XXXXX |
Pwd |
密码 |
md5(sn+password) 32位大写 密文 +表示连接 |
函数返回值:String(余额)
接口地址:http://sdk3.entinfo.cn:8060/webservice.asmx?op=balance
示例:序列号SDK-SSD-010-00001 密码 xxxxxx
参数输入:
SN= SDK-SSD-010-00001
PWD= 3B5D3C427365F40C1D27682D78BB31E0
示例返回结果: 余额79109条短信
XML格式:
具体函数PHP实现:
<?PHP
//该demo的功能是查余额$flag = 0; //要post的数据
$argv = array( 'sn'=>'SDK-SSD-010-xxxxx', //替换成您自己的序列号'pwd'=>'xxxxxx',//替换成您自己的密码);
//构造要post的字符串
foreach ($argv as $key=>$value) { if ($flag!=0) { $params .= "&"; $flag = 1; } $params.= $key."="; $params.= urlencode($value); $flag = 1; } $length = strlen($params); //创建socket连接 $fp = fsockopen("sdk2.entinfo.cn",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); //构造post请求的头 $header = "POST /webservice.asmx/GetBalance HTTP/1.1\r\n"; $header .= "Host:sdk2.entinfo.cn\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: ".$length."\r\n"; $header .= "Connection: Close\r\n\r\n"; //添加post的字符串 $header .= $params."\r\n"; //发送post的数据 fputs($fp,$header); $inheader = 1; while (!feof($fp)) { $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据 if ($inheader && ($line == "\n" || $line == "\r\n")) { $inheader = 0; } if ($inheader == 0) { // echo $line; } } //<string xmlns="http://tempuri.org/">-5</string>$line=str_replace("<string xmlns=\"http://tempuri.org/\">","",$line);$line=str_replace("</string>","",$line);$result=explode("-",$line);if(count($result)>1)echo '发送失败返回值为:'.$line;elseecho '余额为:'.$line;?>
二、群发彩信
参数名称 |
说明 |
是否必须 |
备注 |
Sn |
软件序列号 |
是 |
格式XXX-XXX-XXX-XXXXX |
Pwd |
密码 |
是 |
md5(sn+password) 32位大写密文 |
title
|
彩信主题
|
是
|
限制在30字符以内 |
Mobile |
手机号 |
是 |
手机号码多个以英文逗号隔开 |
Content |
内容 |
是 |
base64编码(文件名1,文件base64编码串;文件名2,文件base64编码串);实际发送文件小于等于50*1024 字节 |
stime |
定时时间 |
否 |
例如:2010-12-29 16:27:03(非定时置空) |
函数返回值:String。
content是您发送的彩信的内容:包含图片和声音及文本;
1.文件类型: 文本是.txt 图片是.jpg或者.gif 声音是.mid或者.amr
2.内容格式:
帧数_文件类型.扩展名 + 英文逗号 + 文件的base64编码字符串 + 分号 ;
例如:“1_1.txt,” + 文件base64编码字符串 + “;” + “1_2.jpg,” + 文件base64编码字符串+”;”+”1_3.mid”+文件base64编码字符串
文本是 n_1.txt 图片是 n_2.jpg 或者是 n_2.gif 声音是 n_3.mid ;
N表示当前第几帧,后缀不变,编码均为GB2312。
接口地址:http://sdk3.entinfo.cn:8060/webservice.asmx?op=mdMmsSend
示例1
SN= SDK-SSD-010-00001
PWD=3B5D3C427365F40C1D27682D78BB31E0
title:彩信测试
Mobile:139***404,138***213…………….
Content:测试
Stime: ""
输出结果:
XML格式:
具体函数PHP实现:
<?PHP //该demo的功能是发彩信
//我们的Demo,都是在gb2312环境下测试的。如果您的系统是UTF-8,肯定会乱码。
//请参考第17行和第29行进行处理。$file="1.png"; $file2="ww.gif";
$fp=fopen($file,"r")or die("Can't open file");
$PicBase1=base64_encode(fread($fp,filesize($file)));//base64编码 $file_content='1_2.png,'.$PicBase1;//图片第一帧$fp2=fopen($file2,"r")or die("Can't open file");
$PicBase2=base64_encode(fread($fp2,filesize($file2)));//base64编码 $file_content.=';2_2.gif,'.$PicBase2;//图片第二帧$txtBase1=base64_encode("第一条文本:欧耶");//文本第一帧
//$txtBase1=base64_encode(iconv( "UTF-8", "gb2312//IGNORE" ,"第一条文本:欧耶"));
$txtBase2=base64_encode("第二条文本:哈哈");//文本第二帧
$file_content.=';1_1.txt,'.$txtBase1;
$file_content.=';2_1.txt,'.$txtBase2;//请注意各帧之间用英文的分号隔开
//echo $file_content;
// exit;
$flag = 0; //要post的数据
$argv = array( 'sn'=>'WEB-OFT-010-*****', //换成您自己的序列号'pwd'=>strtoupper(md5('SDK-SSD-010-*****'.'XXXXXX')), //此处密码需要加密 加密方式为 md5(sn+password) 'title'=>'test测试彩信',//'title'=>iconv( "UTF-8", "gb2312//IGNORE" ,"test彩信测试"),'mobile'=>'186****0313,139****9538,137****1021',//手机号 多个用英文的逗号隔开 post理论没有长度限制.推荐群发一次小于等于10000个手机号'content'=>$file_content,//彩信信内容//base64_encode();'ext'=>'','rrid'=>'',//默认空 如果空返回系统生成的标识串 如果传值保证值唯一 成功则返回传入的值'stime'=>''//定时时间 格式为2011-6-29 11:09:21);
//构造要post的字符串
foreach ($argv as $key=>$value) { if ($flag!=0) { $params .= "&"; $flag = 1; } $params.= $key."="; $params.= urlencode($value); $flag = 1; } $length = strlen($params); //创建socket连接 $fp = fsockopen("sdk3.entinfo.cn",8060,$errno,$errstr,10) or exit($errstr."--->".$errno); //构造post请求的头 $header = "POST /webservice.asmx/mdMmsSend HTTP/1.1\r\n"; $header .= "Host:sdk3.entinfo.cn\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: ".$length."\r\n"; $header .= "Connection: Close\r\n\r\n"; //添加post的字符串 $header .= $params."\r\n"; //发送post的数据 fputs($fp,$header); $inheader = 1; while (!feof($fp)) { $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据 if ($inheader && ($line == "\n" || $line == "\r\n")) { $inheader = 0; } if ($inheader == 0) { // echo $line; } } //<string xmlns="http://tempuri.org/">-5</string>$line=str_replace("<string xmlns=\"http://tempuri.org/\">","",$line);$line=str_replace("</string>","",$line);$result=explode("-",$line);if(count($result)>1)echo '发送失败返回值为:'.$line;elseecho '发送成功 返回值为:'.$line;
?>
三、webservice返回集合对照表:
返回值 |
返回值说明 |
1 |
没有数据需要接收 |
-2 |
帐号/密码不正确 |
-3 |
重复登陆 |
-4 |
余额不足 |
-5 |
数据格式错误 |
-6 |
参数有误 |
-8 |
流量控制错误 |
-11 |
数据库错误 |
-12 |
序列号状态错误 |
-13 |
没有提交增值内容 |
-14 |
服务器写文件失败 |
-17 |
该接口禁止使用该方法 |
-18 |
等上一批提交结果返回再继续下一批提交 |
-15 |
内容长度长 |
-22 |
Ip绑定 |
四、附加说明:
1.彩信语音SDK地址:
常用接口地址:http://sdk3.entinfo.cn:8060/webservice.asmx
2.其它说明:
(1)开发使用的帐号必须为SDK开头,如SDK-SSD-010-00001,帐号第一次需要调用Register方法注册一次.仅需注册一次即可,信息必须真实
(2)UnRegister与Register配合使用, 连续使用不得超过10次/天;
3. 郑重声明:
(1)禁止相同的内容多个手机号连续一条一条提交. 否则禁用帐号,由此带来损失由客户自行负责.
(2)请客户提供外网服务器IP以便于绑定IP发送,提高账号的安全性!
(3)在程序里最好有配置文件,程序自动判断当某个接口连接超时提交速度变慢时.程序可以自动切换其它的接口以下是推荐的几个服务器,仅接口地址不同而已.方法全部相同;
地址1:http://sdk3.entinfo.cn:8060/webservice.asmx
这些地址都是标准的webservice地址,C#,Java客户可以按照自己熟悉的方式去解析String
或者
地址1:http://sdk3.entinfo.cn:8060/webservice.asmx?wsdl
五、示例Demo源代码下载:
DEMO SDK彩信接口文档 所有下载
PHP彩信接口开发经验及具体开发实现相关推荐
- Java彩信接口开发经验及具体开发实现
一.彩信发送类MdMmsSend(MdMmsSend.java) package mmsdemo; import java.io.*; import java.net.*; import java.s ...
- C#彩信接口开发经验及具体开发实现
一.配置文件app.config <?xml version="1.0" encoding="utf-8" ?> <configuration ...
- VC、C++彩信接口开发经验及具体开发实现
一.彩信语音SDK初始化CWebInterface CWebInterface::CWebInterface(CString &strSN,CString &strPwd) {m_pE ...
- ASP彩信接口开发经验及具体开发实现
一.头部配置调用 <!--#include file="md5.asp"--> <% url="http://sdk3.entinfo.cn:8060/ ...
- Java语音SDK接口开发经验及具体开发实现
一.语音发送类Audio(Audio.java) package Audiosend;import java.io.*; import java.net.*; import java.security ...
- Java短信接口开发经验及具体开发实现
Java.android使用的短信SDK是多线程: http://sdk.entinfo.cn:8061/webservice.asmx 其他编程语言使用的是下面接口,希望注意. http://sdk ...
- 蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例
本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的 ...
- 微信JS-SDK签名接口的使用与开发
最近诸事缠身好久没有写文章了.前不久将与微信公众号有关的一些知识点进行了梳理,微信公众号开发过程中,用最多的就是微信js-sdk了.但是使用微信js-sdk需要获取签名.时间戳.随机字符串,等等一系列 ...
- Dota2数据Dota2接口电竞api开发比分网分享
Dota2数据Dota2接口电竞api开发比分网分享@TOC 数据来自marz数据alan@marzesport.com 1.获取赛事 接口:{{host1}}/api/series/9870? {& ...
最新文章
- 装饰器的定义、语法糖用法及示例代码
- 企业的六种数据存储合规性策略
- SpringMVC的请求-获得请求参数-获得POJO类型参数
- android webview ios uiwebview和wkwebview的交互以及本地缓存
- [翻译]Writing Custom Wizards 编写自定义的向导
- java二分法查找_java 中二分法查找的应用实例
- C#笔记11多播委托、事件、设计模式(观察者模式)
- 一张图慢慢转换成下一张图_如何把一张照片变成炫酷的动图?
- 语法分析器实现过程(java)
- 802.11协议精读1:学习资料整理
- 迈克菲实验室:2018五大网络安全威胁
- 人类无法抗拒的十大心理学效应
- 洛谷-P1424-小鱼的航程
- Typecho情侣博客Brave主题源码
- 程序与数学:平方根计算与牛顿迭代法
- 通过前端form表单将信息提交至数据库
- 如何使用微信公众号做营销
- 解决quot; 0X000000该内存不能为readquot; 的方法
- 单片机彩灯移动实验_51单片机键控彩灯实验
- vue iview 输入银行卡号匹配开户行