前提是在后台开启手机注册功能:具体是在设置-》账号同步-》手机短信 里开启。
 
修改 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 添加如下代码: 
 <?php
/**
* 手机短信类
*
*
*
* @package library* www.33hao.com好商城V3为你提供售后服务 以便你更好的了解
*/
defined('InShopNC') or exit('Access Invalid!'); class Sms {
/*
* 发送手机短信
* @param unknown $mobile 手机号
* @param unknown $content 短信内容
*/
public function send($mobile,$content) {
$mobile_host_type=C('mobile_host_type');
if($mobile_host_type==1)
{
return $this->mysend_smsbao($mobile,$content);
}
if($mobile_host_type==2)
{
return $this->mysend_yunpian($mobile,$content);
}
if($mobile_host_type==3)
{
return $this->mysend_c123($mobile,$content);
} }
/*
您于{$send_time}绑定手机号,验证码是:{$verify_code}。【{$site_name}】
0 提交成功
30:密码错误
40:账号不存在
41:余额不足
42:帐号过期
43:IP地址限制
50:内容含有敏感词
51:手机号码不正确
http://api.smsbao.com/sms?u=USERNAME&p=PASSWORD&m=PHONE&c=CONTENT
*/
private function mysend_smsbao($mobile,$content){ $user_id = urlencode(C('mobile_username')); // 这里填写用户名
$pass = urlencode(C('mobile_pwd')); // 这里填登陆密码
if(!$mobile || !$content || !$user_id || !$pass) return false;
if(is_array($mobile)) $mobile = implode(",",$mobile);
$mobile=urlencode($mobile);
//$content=$content."【我的网站】";
$content=urlencode($content);
$pass =md5($pass);//MD5加密
$url="http://api.smsbao.com/sms?u=".$user_id."&p=".$pass."&m=".$mobile."&c=".$content."";
$res = file_get_contents($url);
//return $res;
$ok=$res=="0";
if($ok)
{
return true;
}
return false; } /*--------------------------------
程序版权:上海创明信息技有限公司
服务热线:4008885262
技术 QQ:2355373292
修改时间:2013-08-18
程序功能:创明网PHP接口示例 通过接口进行单发、群发;
说明: http://dxhttp.c123.cn/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容
状态:
100 发送成功
101 验证失败
102 短信不足
103 操作失败
104 非法字符
105 内容过多
106 号码过多
107 频率过快
108 号码内容空
109 账号冻结
110 禁止频繁单条发送
111 系统暂定发送
112 号码不正确
113 定时时间格式不对
114 账号被锁,10分钟后登录
115 连接失败
116 禁止接口发送
117 绑定IP不正确
120 系统升级
--------------------------------*/
private function mysend_c123($mobile,$content){
$url='http://dxhttp.c123.cn/tx/';
$uid = '500000'; //用户账号
$pwd = '1231321'; //密码
$_mobile = $mobile; //号码,多个号码用逗号隔开
$_content = $content; //内容
$time=''; //发送时间
$mid=''; //可选项,根据用户账号是否支持扩展
//即时发送
return $this->sendSMS($url,$uid,$pwd,$_mobile,$_content); }
private function sendSMS($url,$uid,$pwd,$mobile,$content,$time='',$mid='')
{
$data = array
(
'uid'=>$uid, //用户账号
'pwd'=>strtolower(md5($pwd)), //MD5位32密码
'mobile'=>$mobile, //号码
'content'=>$content, //如果页面是gbk编码,则转成utf-8编码,如果是页面是utf-8编码,则不需要转码
'time'=>$time, //定时发送
'mid'=>$mid //子扩展号
);
// var_dump($data);
$re= $this->postSMS($url,$data); //POST方式提交
if(trim($re) == '100' )
{
echo "发送成功!";
return true;
}
else
{
echo "发送失败! 状态:".$re;
return false;
}
} private 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)\n";
} else {
$receive = '';
$out = "POST $file HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n\r\n";
$out .= $post;
fwrite($fp, $out);
while (!feof($fp)) {
$receive .= fgets($fp, 128);
}
fclose($fp);
$receive = explode("\r\n\r\n",$receive);
unset($receive[0]);
return implode("",$receive);
}
} /**
* http://www.yunpian.com/
* 发送手机短信
* @param unknown $mobile 手机号
* @param unknown $content 短信内容
0 OK 调用成功,该值为null 无需处理
1 请求参数缺失 补充必须传入的参数 开发者
2 请求参数格式错误 按提示修改参数值的格式 开发者
3 账户余额不足 账户需要充值,请充值后重试 开发者
4 关键词屏蔽 关键词屏蔽,修改关键词后重试 开发者
5 未找到对应id的模板 模板id不存在或者已经删除 开发者
6 添加模板失败 模板有一定的规范,按失败提示修改 开发者
7 模板不可用 审核状态的模板和审核未通过的模板不可用 开发者
8 同一手机号30秒内重复提交相同的内容 请检查是否同一手机号在30秒内重复提交相同的内容 开发者
9 同一手机号5分钟内重复提交相同的内容超过3次 为避免重复发送骚扰用户,同一手机号5分钟内相同内容最多允许发3次 开发者
10 手机号黑名单过滤 手机号在黑名单列表中(你可以把不想发送的手机号添加到黑名单列表) 开发者
11 接口不支持GET方式调用 接口不支持GET方式调用,请按提示或者文档说明的方法调用,一般为POST 开发者
12 接口不支持POST方式调用 接口不支持POST方式调用,请按提示或者文档说明的方法调用,一般为GET 开发者
13 营销短信暂停发送 由于运营商管制,营销短信暂时不能发送 开发者
14 解码失败 请确认内容编码是否设置正确 开发者
15 签名不匹配 短信签名与预设的固定签名不匹配 开发者
16 签名格式不正确 短信内容不能包含多个签名【 】符号 开发者
17 24小时内同一手机号发送次数超过限制 请检查程序是否有异常或者系统是否被恶意攻击 开发者
-1 非法的apikey apikey不正确或没有授权 开发者
-2 API没有权限 用户没有对应的API权限 开发者
-3 IP没有权限 访问IP不在白名单之内,可在后台"账户设置->IP白名单设置"里添加该IP 开发者
-4 访问次数超限 调整访问频率或者申请更高的调用量 开发者
-5 访问频率超限 短期内访问过于频繁,请降低访问频率 开发者
-50 未知异常 系统出现未知的异常情况 技术支持
-51 系统繁忙 系统繁忙,请稍后重试 技术支持
-52 充值失败 充值时系统出错 技术支持
-53 提交短信失败 提交短信时系统出错 技术支持
-54 记录已存在 常见于插入键值已存在的记录 技术支持
-55 记录不存在 没有找到预期中的数据 技术支持
-57 用户开通过固定签名功能,但签名未设置 联系客服或技术支持设置固定签名 技术支持
*/
private function mysend_yunpian($mobile,$content) {
$yunpian='yunpian';
$plugin = str_replace('\\', '', str_replace('/', '', str_replace('.', '',$yunpian)));
if (!empty($plugin)) {
define('PLUGIN_ROOT', BASE_DATA_PATH . DS .'api/smsapi');
require_once(PLUGIN_ROOT . DS . $plugin . DS . 'Send.php');
return send_sms($content, $mobile);
}
else
{
return false;
}
} }

修改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'];
 
 

shopncv4 短信接口 提供商 中国短信网的更多相关文章

  1. 玄武短信接口和移动MAS短信接口的API封装

    直接上代码,关键点: 133行的敏感词过滤 176行的6位扩展码写入 using System; using System.Collections.Generic; using System.Linq ...

  2. C#如何编写短信接口,以及接口的调用,包括C#.net访问web,并处理返回值的简例。

    在系统的开发中我们经常会用到接口,下面给大家介绍一种短信接口的编写与调用. 我们常调用接口来完成一些信息的通知或者发送验证码,那么这些操作是如何完成的呢?来看一下详细的介绍吧! 首先呢,我们需要有一个 ...

  3. php短信接口代码

    这篇文章主要为大家详细介绍了php短信接口代码,php短信发送.php批量发送.php获取余额等代码,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内 ...

  4. 【API】短信通106端口验证短信的实现

    信息时代,无论是电商还是网络营(chuan)销(xiao)都希望得道更多的用户信息.所以很多的网站注册上用到了手机验证码功能.网上有很多的SMS接口提供商.在选择的时候无非就是考虑到1.发送速度:2. ...

  5. java中用中国网建提供的SMS短信平台发送短信

    接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...

  6. 短信验证登陆-中国网建提供的SMS短信平台

    一.JAVA发送手机短信常见的有三种方式(如下所列): 使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册 使用短信mao的方式进行短信 ...

  7. asp.net两种方式的短信接口使用(提供接口的都是收费的)

    一种是http请求的方式,另一种就是提供WebService接口供调用的. //服务商 sms.webchinese.cn //sms_url="http://sms.webchinese. ...

  8. java短信接口

    一.背景 从是Java一直想做一个跟生活联系特别紧密的东西,比如短信.邮箱.电话什么的一直是我感兴趣的,可是楞是当初没有头绪弄,恰巧今天公司在做一个 webrtc的视频会议的软件,刚好有短信这个需求, ...

  9. 四:java调接口实现发送手机短信验证码功能

    1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...

随机推荐

  1. Swift语法基础入门三(函数, 闭包)

    Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...

  2. 客户端js判断文件类型和文件大小即限制上传大小

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  3. ServletConfig和ServletContext

    ServletConfig和ServletContext Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为Servle ...

  4. glusterFS的缓存测试

    众所周知,glusterFS在客户端有缓存,缓存目的在于提高读性能.那么多个客户端同时对文件进行读写,会不会存在client缓存与server文件不一致的情况?比如client A和client B读 ...

  5. SQL Server 提高创建索引速度的 2 个方法

    方法 1. 使用tempdb来提速 create index index_name on table_name (column_list) with(sort_in_tempdb = on); 方法 ...

  6. 将一段含有0的字符数组赋给string

    string有个成员函数,assign() 可以这样: string str; str.assign(temp, sizeof(temp));

  7. U盘读写速度测试

    1.ATTO Disk Benchmark    测U盘读写速度 ATTO Disk Benchmark 是一款简单易用的磁盘传输速率检测软件,可以用来检测硬盘.U盘.存储卡及其它可移动磁盘的读取及写 ...

  8. [Leetcode][Python]43: Multiply Strings

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 43: Multiply Stringshttps://leetcode.co ...

  9. poj 1887 Testing the CATCHER_最长上升子序列

    题意:题目太长没看,直接看输入输出猜出是最长下降子序列 用了以前的代码直接a了,做法类似贪心,把最小的顺序数存在数组里面,每次二分更新数组得出最长上升子序列 #include<iostream& ...

  10. 无限的路_hdu_2073(AC).java

    无限的路 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...