shopncv4 短信接口 提供商 中国短信网

前提是在后台开启手机注册功能:具体是在设置-》账号同步-》手机短信 里开启。
 
修改 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_155xxxxxxxx", key: "", error: 1}
5,根据这个返回值,跳转登录后成的页面。siteroot\mobile\control\connect.php
     修改手机注册里的$state_data['error']=$state_data['state']为$state_data['error']!=$state_data['state'];
 
 
posted @ 2016-05-12 17:37  蜗蜗  阅读(303)  评论(0编辑  收藏  举报