方维团购系统添加短信接口,方维团购系统短信接口开发

方维团购系统添加短信接口,短信接口设置,根据系统的sms类,然后读懂短信平台给的开发文档,以下面的代码作为参考进行开发;

方维团购系统接口开发,代码如下:

<?php
/*--------------------------------
功能:        中国短信网PHP HTTP接口 发送短信

作者: QQ:1006440989
修改日期: 2009-04-08 说明: http://http.c123.com/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容 状态: 100 发送成功 101 验证失败 102 短信不足 103 操作失败 104 非法字符 105 内容过多 106 号码过多 107 频率过快 108 号码内容空 109 账号冻结 110 禁止频繁单条发送 111 系统暂定发送 112 号码不正确 120 系统升级 INSERT INTO `fanwe_sms` VALUES ('8', 'C123', '中国短信网', '', 'http://http.c123.com/tx/', '17348', 'qqqq', '', '1'); --------------------------------
*/ include_once("Sms.class.php"); class C123Sms implements Sms { public $message = ""; public $smsInfo; public $statusStr = array( "100" => "发送成功", "101" => "验证失败", "102" => "短信不足", "103" => "操作失败", "104" => "非法字符", "105" => "内容过多", "106" => "号码过多", "107" => "频率过快", "108" => "号码内容空", "109" => "账号冻结", "110" => "禁止频繁单条发送", "111" => "系统暂定发送", "112" => "号码不正确", "120" => "系统升级" ); public function __construct($smsInfo = '') { if(!empty($smsInfo)) { set_time_limit(0); $this->smsInfo = $smsInfo; } } public function sendSMS($mobiles=array(),$content,$sendTime='') { $mobileLen = 50; $mobileList = array_chunk($mobiles,$mobileLen); $content = a_utf8ToGB($content); $contentLen = mb_strlen($content,"GBK"); $smsTotalCount = ceil($contentLen / 70) * count($mobiles); $successNum = 0; $code = ''; foreach($mobileList as $mobileItem) { $mobile = implode(",",$mobileItem); //$http = 'http://http.c123.com/tx/'; $http = $this->smsInfo['server_url']; $data = array ( 'uid'=>$this->smsInfo['user_name'], //用户账号 'pwd'=>strtolower(md5($this->smsInfo['password'])), //MD5位32密码 //'pwd'=>$this->smsInfo['password'], //MD5位32密码 'mobile'=>$mobile, //号码 'content'=>urlencode($content), //内容 //'encode'=>'utf8' ); $code= trim($this->postSMS($http,$data)); //POST方式提交 $smsLog['send_content'] = a_gbToUtf8($content);; $smsLog['action_message'] = $this->statusStr[$code]; $sendCount = count($mobileItem); if($code == "100") { $smsLog['success_mobiles'] = $mobile; $smsLog['fail_mobiles'] = ""; $smsLog['success_count'] = $sendCount; $smsLog['fail_count'] = 0; $smsLog['expense_count'] = ceil($contentLen / 70) * $sendCount; $successNum += $sendCount; } else { $smsLog['success_mobiles'] = ""; $smsLog['fail_mobiles'] = $mobile; $smsLog['success_count'] = 0; $smsLog['fail_count'] = $sendCount; $smsLog['expense_count'] = 0; } $smsLog['send_time'] = a_gmtTime(); if(intval(a_fanweC('SMS_SEND_LOG')) == 1) { $sql = "insert into ".$GLOBALS['db_config']['DB_PREFIX']."sms_send_log (class_name,send_content,success_count,success_mobiles,fail_mobiles,expense_count,fail_count,action_message,send_time) values('C123','".$smsLog['send_content']."','".$smsLog['success_count']."','".$smsLog['success_mobiles']."','".$smsLog['fail_mobiles']."','".$smsLog['expense_count']."','".$smsLog['fail_count']."','".$smsLog['action_message']."','".$smsLog['send_time']."')"; $GLOBALS['db']->query($sql); } } if(($code == "100" && count($mobiles) == 1) || ($smsTotalCount == $successNum)) { $this->message ="成功发送短信【".$content."】,到手机".implode(",",$mobiles); return 1; } else { $this->message = $smsTotalCount."条短信中,有".($smsTotalCount - $successNum)."条未成功发送到手机".implode(",",$mobiles); return 0; } } function postSMS($url,$data='') { $row = parse_url($url); $host = $row['host']; $port = $row['port'] ? $row['port']:80; $file = $row['path']; while (list($k,$v) = each($data)) { $post .= rawurlencode($k)."=".rawurlencode($v)."&"; //转URL标准码 } $post = substr( $post , 0 , -1 ); $len = strlen($post); $fp = @fsockopen( $host ,$port, $errno, $errstr, 10); if (!$fp) { return "$errstr ($errno) "; } else { $receive = ''; $out = "POST $file HTTP/1.1 "; $out .= "Host: $host "; $out .= "Content-type: application/x-www-form-urlencoded "; $out .= "Connection: Close "; $out .= "Content-Length: $len "; $out .= $post; fwrite($fp, $out); while (!feof($fp)) { $receive .= fgets($fp, 128); } fclose($fp); $receive = explode(" ",$receive); unset($receive[0]); return implode("",$receive); } } } ?>
原文地址:https://www.cnblogs.com/wangtongphp/p/3519773.html