一个基于中国电信开放应用平台的短信发送函数(PHP版)
2012-02-04这几天闲来无事,于是结合中国电信开放应用平台(189works) 的短信发送demo,写了一个PHP版本的短信发送函数。
使用前请注意:
- 发送短信并不是免费的,每条0.07元;
- 使用前,需要到中国电信开放应用平台注册账号并通过验证,预存一些费用,然后申请一个属于自己的密钥(apKey);[点击这里进入开放应用平台]
- 需要运行主机支持fsockopen函数。
闲话少说,下面贴出代码。
define('SMS_APID',' apid号码 '); //apid号码
define('SMS_PRODUCTID',' 产品号码 '); //产品号码
define('SMS_APKEY',' 产品密钥 '); //产品密钥
include_once('HttpClient.php'); //见附件
include_once('3DES.php'); //见附件
function sms_send($Num,$Msg){
$apid=SMS_APID;//apid为应用工厂提供
$TimeStamp=date('YmdHis',time());//date('YmdHis',time()+8*3600);
$KeyStr=$TimeStamp.$apid;
$KeyStr=PaddingPKCS7($KeyStr);
$Key=encrypt($KeyStr,SMS_APKEY);//密钥为应用工厂提供
/*Msg*/
/*TimeStamp*/
$IsReport='1';//是否上报,0上报,1不上报
$StatusReportUrl='';//客户状态上报地址
$ProductID=SMS_PRODUCTID;
/*Num*/
$IsUse=0; //非必填项
$UserID=''; //非必填项
$PIdType=1; //非必填项
$Parm1='';
$Parm2='';
$Parm3='';
$arr = array(
'APID' => $apid,
'Key' =>$Key,
'Msg' => $Msg,
'TimeStamp' => $TimeStamp,
'IsReport' => $IsReport,
'StatusReportUrl' => $StatusReportUrl,
'ProductID'=> $ProductID,
'Num'=> $Num,
'IsUse'=>$IsUse,
'UserID'=>$UserID,
'PIdType'=>$PIdType,
'Parm1' => $Parm1,
'Parm2' => $Parm2,
'Parm3' => $Parm3,
);
$Client = new HttpClient();
$url ="http://125.64.11.43:8080/udt-see/StartServiceServlet";//调用接口地址
$method = "POST";
$data = array('serviceId'=>'00001020101130','params'=>$arr);// $arr
$json_string = json_encode($data);
$ret = $Client->HttpRequest($url,$method,$json_string);
$response= $ret['body'];
$returnStr=json_decode($response);
$resultStr=$returnStr->returnParams->Result;
if($resultStr=="0"){
echo "短信发送成功!";
}else if($resultStr=="1"){
echo "短信发送失败!";
}else{
echo "出现其他异常!";
}
}
附件下载地址:
发表回复