修改 siteroot\core\framework\libraries\sms.php
修改 siteroot\shop\control\connect_sms.php
会员注册界面,手机注册
siteroot\wap\tmpl\member\register_mobile.html
数据库 mobile_host_type 类型为 3 在 setting 表中,如果cache中有数据,把相应的值也改了!
修改 siteroot\data\logic\connect_api.logic.php
下面正式进入修改步骤:
1,修改sms.php 添加如下代码:
1 <?php 2 /** 3 * 手机短信类 4 * 5 * 6 * 7 * @package library* www.33hao.com好商城V3为你提供售后服务 以便你更好的了解 8 */ 9 defined(‘InShopNC‘) or exit(‘Access Invalid!‘); 10 11 class Sms { 12 /* 13 * 发送手机短信 14 * @param unknown $mobile 手机号 15 * @param unknown $content 短信内容 16 */ 17 public function send($mobile,$content) { 18 $mobile_host_type=C(‘mobile_host_type‘); 19 if($mobile_host_type==1) 20 { 21 return $this->mysend_smsbao($mobile,$content); 22 } 23 if($mobile_host_type==2) 24 { 25 return $this->mysend_yunpian($mobile,$content); 26 } 27 if($mobile_host_type==3) 28 { 29 return $this->mysend_c123($mobile,$content); 30 } 31 32 33 } 34 /* 35 您于{$send_time}绑定手机号,验证码是:{$verify_code}。【{$site_name}】 36 0 提交成功 37 30:密码错误 38 40:账号不存在 39 41:余额不足 40 42:帐号过期 41 43:IP地址限制 42 50:内容含有敏感词 43 51:手机号码不正确 44 http://api.smsbao.com/sms?u=USERNAME&p=PASSWORD&m=PHONE&c=CONTENT 45 */ 46 private function mysend_smsbao($mobile,$content){ 47 48 $user_id = urlencode(C(‘mobile_username‘)); // 这里填写用户名 49 $pass = urlencode(C(‘mobile_pwd‘)); // 这里填登陆密码 50 if(!$mobile || !$content || !$user_id || !$pass) return false; 51 if(is_array($mobile)) $mobile = implode(",",$mobile); 52 $mobile=urlencode($mobile); 53 //$content=$content."【我的网站】"; 54 $content=urlencode($content); 55 $pass =md5($pass);//MD5加密 56 $url="http://api.smsbao.com/sms?u=".$user_id."&p=".$pass."&m=".$mobile."&c=".$content.""; 57 $res = file_get_contents($url); 58 //return $res; 59 $ok=$res=="0"; 60 if($ok) 61 { 62 return true; 63 } 64 return false; 65 66 } 67 68 /*-------------------------------- 69 程序版权:上海创明信息技有限公司 70 服务热线:4008885262 71 技术 QQ:2355373292 72 修改时间:2013-08-18 73 程序功能:创明网PHP接口示例 通过接口进行单发、群发; 74 说明: http://dxhttp.c123.cn/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容 75 状态: 76 100 发送成功 77 101 验证失败 78 102 短信不足 79 103 操作失败 80 104 非法字符 81 105 内容过多 82 106 号码过多 83 107 频率过快 84 108 号码内容空 85 109 账号冻结 86 110 禁止频繁单条发送 87 111 系统暂定发送 88 112 号码不正确 89 113 定时时间格式不对 90 114 账号被锁,10分钟后登录 91 115 连接失败 92 116 禁止接口发送 93 117 绑定IP不正确 94 120 系统升级 95 --------------------------------*/ 96 private function mysend_c123($mobile,$content){ 97 $url=‘http://dxhttp.c123.cn/tx/‘; 98 $uid = ‘500000‘; //用户账号 99 $pwd = ‘1231321‘; //密码 100 $_mobile = $mobile; //号码,多个号码用逗号隔开 101 $_content = $content; //内容 102 $time=‘‘; //发送时间 103 $mid=‘‘; //可选项,根据用户账号是否支持扩展 104 //即时发送 105 return $this->sendSMS($url,$uid,$pwd,$_mobile,$_content); 106 107 } 108 private function sendSMS($url,$uid,$pwd,$mobile,$content,$time=‘‘,$mid=‘‘) 109 { 110 $data = array 111 ( 112 ‘uid‘=>$uid, //用户账号 113 ‘pwd‘=>strtolower(md5($pwd)), //MD5位32密码 114 ‘mobile‘=>$mobile, //号码 115 ‘content‘=>$content, //如果页面是gbk编码,则转成utf-8编码,如果是页面是utf-8编码,则不需要转码 116 ‘time‘=>$time, //定时发送 117 ‘mid‘=>$mid //子扩展号 118 ); 119 // var_dump($data); 120 $re= $this->postSMS($url,$data); //POST方式提交 121 if(trim($re) == ‘100‘ ) 122 { 123 echo "发送成功!"; 124 return true; 125 } 126 else 127 { 128 echo "发送失败! 状态:".$re; 129 return false; 130 } 131 } 132 133 private function postSMS($url,$data=‘‘) 134 { 135 $row = parse_url($url); 136 $host = $row[‘host‘]; 137 $port = $row[‘port‘] ? $row[‘port‘]:80; 138 $file = $row[‘path‘]; 139 while (list($k,$v) = each($data)) 140 { 141 $post .= rawurlencode($k)."=".rawurlencode($v)."&"; //转URL标准码 142 } 143 $post = substr( $post , 0 , -1 ); 144 $len = strlen($post); 145 $fp = @fsockopen( $host ,$port, $errno, $errstr, 10); 146 if (!$fp) { 147 return "$errstr ($errno)\n"; 148 } else { 149 $receive = ‘‘; 150 $out = "POST $file HTTP/1.0\r\n"; 151 $out .= "Host: $host\r\n"; 152 $out .= "Content-type: application/x-www-form-urlencoded\r\n"; 153 $out .= "Connection: Close\r\n"; 154 $out .= "Content-Length: $len\r\n\r\n"; 155 $out .= $post; 156 fwrite($fp, $out); 157 while (!feof($fp)) { 158 $receive .= fgets($fp, 128); 159 } 160 fclose($fp); 161 $receive = explode("\r\n\r\n",$receive); 162 unset($receive[0]); 163 return implode("",$receive); 164 } 165 } 166 167 /** 168 * http://www.yunpian.com/ 169 * 发送手机短信 170 * @param unknown $mobile 手机号 171 * @param unknown $content 短信内容 172 0 OK 调用成功,该值为null 无需处理 173 1 请求参数缺失 补充必须传入的参数 开发者 174 2 请求参数格式错误 按提示修改参数值的格式 开发者 175 3 账户余额不足 账户需要充值,请充值后重试 开发者 176 4 关键词屏蔽 关键词屏蔽,修改关键词后重试 开发者 177 5 未找到对应id的模板 模板id不存在或者已经删除 开发者 178 6 添加模板失败 模板有一定的规范,按失败提示修改 开发者 179 7 模板不可用 审核状态的模板和审核未通过的模板不可用 开发者 180 8 同一手机号30秒内重复提交相同的内容 请检查是否同一手机号在30秒内重复提交相同的内容 开发者 181 9 同一手机号5分钟内重复提交相同的内容超过3次 为避免重复发送骚扰用户,同一手机号5分钟内相同内容最多允许发3次 开发者 182 10 手机号黑名单过滤 手机号在黑名单列表中(你可以把不想发送的手机号添加到黑名单列表) 开发者 183 11 接口不支持GET方式调用 接口不支持GET方式调用,请按提示或者文档说明的方法调用,一般为POST 开发者 184 12 接口不支持POST方式调用 接口不支持POST方式调用,请按提示或者文档说明的方法调用,一般为GET 开发者 185 13 营销短信暂停发送 由于运营商管制,营销短信暂时不能发送 开发者 186 14 解码失败 请确认内容编码是否设置正确 开发者 187 15 签名不匹配 短信签名与预设的固定签名不匹配 开发者 188 16 签名格式不正确 短信内容不能包含多个签名【 】符号 开发者 189 17 24小时内同一手机号发送次数超过限制 请检查程序是否有异常或者系统是否被恶意攻击 开发者 190 -1 非法的apikey apikey不正确或没有授权 开发者 191 -2 API没有权限 用户没有对应的API权限 开发者 192 -3 IP没有权限 访问IP不在白名单之内,可在后台"账户设置->IP白名单设置"里添加该IP 开发者 193 -4 访问次数超限 调整访问频率或者申请更高的调用量 开发者 194 -5 访问频率超限 短期内访问过于频繁,请降低访问频率 开发者 195 -50 未知异常 系统出现未知的异常情况 技术支持 196 -51 系统繁忙 系统繁忙,请稍后重试 技术支持 197 -52 充值失败 充值时系统出错 技术支持 198 -53 提交短信失败 提交短信时系统出错 技术支持 199 -54 记录已存在 常见于插入键值已存在的记录 技术支持 200 -55 记录不存在 没有找到预期中的数据 技术支持 201 -57 用户开通过固定签名功能,但签名未设置 联系客服或技术支持设置固定签名 技术支持 202 */ 203 private function mysend_yunpian($mobile,$content) { 204 $yunpian=‘yunpian‘; 205 $plugin = str_replace(‘\\‘, ‘‘, str_replace(‘/‘, ‘‘, str_replace(‘.‘, ‘‘,$yunpian))); 206 if (!empty($plugin)) { 207 define(‘PLUGIN_ROOT‘, BASE_DATA_PATH . DS .‘api/smsapi‘); 208 require_once(PLUGIN_ROOT . DS . $plugin . DS . ‘Send.php‘); 209 return send_sms($content, $mobile); 210 } 211 else 212 { 213 return false; 214 } 215 } 216 217 218 }
修改sms.php后
2,修改配置信息
将短信平台的用户,密码配置好,注意首次使用一定要在”接口密码“处,配置好密码。和登录密码不一样。
注意:如果网页是gbk模式,要转码成utf-8格式。
3,如果上一步配置成功了,则可以正常收到短信了。收到短信后填入验证码,下一步设置密码;
4,设置密码点完成,返回{state: 1, username: "phone_15592610678", key: "", error: 1}
5,根据这个返回值,跳转登录后成的页面。
时间: 2024-10-12 16:52:16