一个基于中国电信开放应用平台的短信发送函数(PHP版)

2012-02-04

这几天闲来无事,于是结合中国电信开放应用平台(189works) 的短信发送demo,写了一个PHP版本的短信发送函数。

使用前请注意:

  1. 发送短信并不是免费的,每条0.07元;
  2. 使用前,需要到中国电信开放应用平台注册账号并通过验证,预存一些费用,然后申请一个属于自己的密钥(apKey);[点击这里进入开放应用平台]
  3. 需要运行主机支持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 "出现其他异常!";
  }
}

 

附件下载地址:

  1. 115网盘:http://115.com/file/aqucvqwq#sms.rar
  2. 百度云存储:http://bcs.duapp.com/mawenjian/2012%2F02%2Fsms.rar

 


除非特殊说明,本博客文章均为原创,转载请以链接形式标明博文地址。

本文链接地址: 一个基于中国电信开放应用平台的短信发送函数(PHP版)

分类:随笔文章 | 标签: |