求助,6splus官换机跑小米mix2 安安兔兔分数奇低,惨不忍睹

阿里大鱼短信验证
登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名
在应用管理中选择SDK下载,或者直接点击http://download.csdn/detail/s95983下载,免费的哦亲
把下载好的资源解压放到ThinkPHP\Library\Vendor目录下如图&
并不是所有的php文件都需要,就用如图所示Alidayu文件夹下那几个php文件,把Alidayu里面的php文件分别打开,在开始的一行添加代码(如果你下载的来自我发的链接,那就没必要添加这个代码了,因为我添加过了)
namespace Vendor\A
目的是为了在调用的时候不至于引入失败
可以写HTML了
&div class="form-group"&
&div class="field field-icon-right"&
&input type="text" id="admin" class="input" name="admin" placeholder="用户名" data-validate="required:请填写用户名,length#&=5:用户长度不符合要求"
&span class="icon icon-user"&&/span&
&div class="form-group"&
&div class="field field-icon-right"&
&input id="mobile" type="tel" class="input" name="mobile" placeholder="手机号码" onblur="checkmobile(this)"
&span class="icon icon-mobile"&&/span&
&span class="x4" style="text-align:vertical-align: middle"&
& &button id="sendmsg"&获取验证码&/button&
写入JQ代码(功能是,发送验证码后倒计时,并且POST传递后台,后台返回的数据0,1,2分别对应不同的功能)这段代码是参考别人的
/*-------------------------------------------*/
var InterValO //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curC//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
$(function () {
$('#sendmsg').click(function () {
type: "POST",
url: "/User/folder/child/obtainyzm",
data: "admin=" + $('#admin').val()+"&mobile="+$("#mobile").val() ,
success: function (result) {
if(result==0){
curCount =
//设置button效果,开始计时
$("#sendmsg").css("background-color", "LightSkyBlue");
$("#sendmsg").attr("disabled", "true");
$("#sendmsg").val("获取" + curCount + "秒");
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
// alert("验证码发送成功,请查收!");
if(result==1){
alert("用户名和手机号不匹配!");
if(result==2){
alert("用户名不存在!");
dataType: 'json'
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止计时器
$("#sendmsg").removeAttr("disabled");//启用按钮
$("#sendmsg").css("background-color", "");
$("#sendmsg").val("重发验证码");
code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
curCount--;
$("#sendmsg").val("获取" + curCount + "秒");
上面有两个参数admin和mobile分别代表用户名和手机号码。
写入功能代码
public function obtainyzm(){
$mobile = $_POST['mobile'];//获取手机号码
$admin =$_POST['admin'];//获取用户名
$user = M('db_admin')-&where(array('admin'=&$admin))-&find();
/************引入*************/
Vendor('Alidayu.TopClient');
Vendor('Alidayu.AlibabaAliqinFcSmsNumSendRequest');
Vendor('Alidayu.ResultSet');
Vendor('Alidayu.RequestCheckUtil');
$c = new \Vendor\Alidayu\TopC
$req = new \Vendor\Alidayu\AlibabaAliqinFcSmsNumSendR
/*************配置***************/
$code = randCode(4);//随机验证码
$c-&appkey = '23******';
$c-&secretKey = '6f73a******************';
$req-&setSmsType("normal");
$req-&setSmsFreeSignName("xx的测试");
$req-&setSmsParam("{code:'$code'}");
$req-&setRecNum("$mobile");
$req-&setSmsTemplateCode("SMS_3******");
if($user['mobile'] == $mobile)
/*************发送验证码短信,并把验证码作为新密码保存到服务器上***************/
//$c-&execute($req);
//不要开启,开启后就会有短信到账,一次几分钱..在服务器上看新密码就好
$newpwd['pwd'] = md5($code);
D('db_admin')-&where(array('admin'=&$user['admin']))-&save($newpwd);
$this-&ajaxreturn(0);//用户名密码匹配
$this-&ajaxreturn(1);//用户名和手机号不匹配
$this-&ajaxreturn(2); //用户名不存在
$this-&display();
}//获取验证码
谢谢观看,有什么不懂的可以留言~
http://blog.csdn.net/s/article/details/
Views(...) Comments()TP框架调用阿里大于短信接口详解 - ThinkPHP框架
本人菜鸟一个,最近项目需要用到短信接口,可对于短信接口只听过从来没见过的人来说,看到百度上各位大神贴的各种代码,还是一头雾水,SDK是什么,API是什么,SDK放到哪里?又在哪里调用API都是问题,翻来覆去查来查去,头疼了一整天才弄得以下这种样子,不知道以后会不会有问题出现,至少现在已经能发出和收到短信了,我就挺高兴了,其实刚开始以为调用API会有多麻烦,可是等到最后实现了,才发现代码就那么一点点,现在发出来给各位跟我一样遇到这种问题的新手朋友们以参考,有什么问题可以留言指教啊!
首先去阿里大于官方网站使用手机淘宝扫描登录,进入首页会弹出流程指南,创建应用,得到Appkey,点击设置查看得到APPsecret,APPkey和APPsecret将在调用SDK的时候用到;
然后根据指南,创建短信签名及短信模板,麻烦但简单,没有不可理解,这里不再赘述,请自行创建!由于大平台,所以流程有些繁琐,签名及模板需要审批,所幸时间短,二十分钟左右即可审批!在等待审批的时间里可以先去下载SDK了,,点击SDK下载选中PHP版,下载解压,得到如图,全部选中,放到项目如图文件夹啊下,里面的参数什么都不用改,已经设定好,只需要再创建一个SendSMS.class.php,代码如图,
然后到项目模块中新建控制器,代码如图
然后打开浏览器访问此控制器下的index,就会收到短信啦!
最后的调用代码其实很少很简单,重点在于调用API的时候传的几个参数,即SendSMS.class.php中的$recNum,$smsParam,$smsTemplateCode,$smsFreeSignName这四个参数,具体都是什么可以到如图短信发送API中去详细了解!
其实官网还有应用测试和测试工具等,你可以先在这里体验一下各种参数的使用,然后再去项目中具体调用,更能便于理解!
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。接口的调用
总结:首先在pom文件中加入阿里公司的jar包,利用springmvc框架写一个方法,在所需要的地方调用即可。详细的步骤请看下面的说明。
1.在项目pom文件中加入阿里的jar包
2、在配置文件中加入公司开的户,和链接!短信发送一般都是需要收取费用的。注意,配置文件一定要加载到框架的容器中,方便在代码中取值。
3、控制层的代码!!!!!!
/**&* 短信的控制层&*title:&*@author taotk&*@日&*@company &*/@Controller@RequestMapping("/sms")public class MessageController extends BaseController {&& &private static Logger log = LoggerFactory.getLogger(MessageController.class.getName());&& &@Autowired&& &private MessageService smsS&& &@RequestMapping(value = "/code/{type}/{phone}")&& &public MappingJacksonJsonView register(@PathVariable String type, @PathVariable String phone,&& &&& &&& &HttpServletRequest request) throws ApiException {&& &&& &("======================sms.code=================");&& &&& &MappingJacksonJsonView mv = new PinjiaMappingJacksonJsonView();&& &&& &String sms_model =&& &&& &switch (ESMSType.valueof(Integer.parseInt(type))) {&& &&& &case Active:&& &&& &&& &sms_model = Resources.getString("appSMSActiveModelId");&& &&& &&& &&& &&& &case Change:&& &&& &&& &sms_model = Resources.getString("appSMSChangeModelId");&& &&& &&& &&& &&& &case Id:&& &&& &&& &sms_model = Resources.getString("appSMSIdModelId");&& &&& &&& &&& &&& &case Register:&& &&& &&& &sms_model = Resources.getString("appSMSRegisterModelId");&& &&& &&& &&& &&& &case Pass:&& &&& &&& &sms_model = Resources.getString("appSMSPassModelId");&& &&& &default:&& &&& &&& &&& &&& &}&& &&& &String dataType = Resources.getString("appSMSDataFormat");&& &&& &ESMSDataType dataFormat = ESMSDataType.J&& &&& &if (!"json".equals(dataType))&& &&& &&& &dataFormat = ESMSDataType.X&& &&& &smsService.getCode(ESMSType.valueof(Integer.parseInt(type)), sms_model, phone, null, dataFormat);&& &&& &&& &}
4、service层的代码
@Servicepublic class MessageService {&& &&& &// 常量参数&& &&& &final String appKey = Resources.getString("appSMSId");&& &&& &final String secret = Resources.getString("appSMSKey");&& &&& &final String url = Resources.getString("appSMSUrl");&& &&& &/**&& &&& & * 获得手机验证验证码&& &&& & * && &&& & * @param code_type&& &&& & *&&&&&&&&&&& 获取短信验证码类别&& &&& & * @param sms_model&& &&& & *&&&&&&&&&&& 短信模板&& &&& & * @param sms_phone&& &&& & *&&&&&&&&&&& 需要发送验证码的手机&& &&& & * @param sms_type&& &&& & *&&&&&&&&&&& 短信类型,默认为文字短信&& &&& & * @param data_Type&& &&& & *&&&&&&&&&&& 返回数据类型&& &&& & * @return {@link String}&& &&& & * @throws ApiException&& &&& & */&& &&& &public String getCode(ESMSType code_type, String sms_model, String sms_phone, String sms_type,&& &&& &&& &&& &ESMSDataType data_Type) throws ApiException {&& &&& &&& &TaobaoClient client = new DefaultTaobaoClient(url, appKey, secret, data_Type.getTitle());&& &&& &&& &AlibabaAliqinFcSmsNumSendRequest smsRequest = new AlibabaAliqinFcSmsNumSendRequest();&& &&& &&& &smsRequest.setSmsType(StringUtils.isEmpty(sms_type) ? "normal" : sms_type);&& &&& &&& &smsRequest.setSmsFreeSignName(code_type.getTitle());&& &&& &&& &smsRequest.setRecNum(sms_phone);&& &&& &&& &String message =":-,尊敬的用户您好,拼家系统为您注册了一个账户。账户:"+sms_phone+",密码:"+sms_phone+",您可以登录拼家网,关注您的装修流程";&& &&& &&& &smsRequest.setSmsParamString("{\"code\":\"" + message + "\",\"product\":\"" + "【齐家网】"+ "\"}");&& &&& &&& &smsRequest.setSmsTemplateCode(sms_model);&& &&& &&& &AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(smsRequest);&& &&& &&& &&& &&& &}}5、其他的是一些工具类,和枚举的类。
public class Resources {&& &private static Logger log = LoggerFactory.getLogger(Resources.class);&& &/** 国际化资源 */&& &public static ResourceBundle resourceB&& &public static ResourceB&& &public static ResourceBundle messageB&& &static {&& &&& &resourceBundle = ResourceBundle.getBundle("application");&& &&& &messageBundle = ResourceBundle.getBundle("message");&& &}&& &public static void close() {&& &&& &resourceBundle =&& &}&& &public static String myString() {&& &&& &return resourceBundle.toString();&& &}&& &/**&& & * 从资源文件中返回字符串 我们不希望程序崩溃,所以如果没有找到Key,就直接返回Key&& & */&& &public static String getWebMessage(String key) {&& &&& &try {&& &&& &&& &if (!messageBundle.containsKey(key)) {&& &&& &&& &&& &return "";&& &&& &&& &}&& &&& &&& &return messageBundle.getString(key);&& &&& &} catch (Exception e) {&& &&& &&& &log.error(e.toString());&& &&& &&& &e.printStackTrace();&& &&& &&& &return "";&& &&& &}&& &}&& &public static String getWorkflow(String bizType, String key) {&& &&& &wf = ResourceBundle.getBundle(bizType + "_wf");&& &&& &return wf.getString(key);&& &}&& &public static String getErrorMessage(String key) {&& &&& &try {&& &&& &&& &if (!messageBundle.containsKey(key)) {&& &&& &&& &&& &return "";&& &&& &&& &}&& &&& &&& &return& messageBundle.getString(key);&& &&& &} catch (Exception e) {&& &&& &&& &log.error(e.toString());&& &&& &&& &e.printStackTrace();&& &&& &&& &return "";&& &&& &}&& &}&& &public static String getString(String key) {&& &&& &try {&& &&& &&& &if (!resourceBundle.containsKey(key)) {&& &&& &&& &&& &return "";&& &&& &&& &}&& &&& &&& &return resourceBundle.getString(key);&& &&& &} catch (Exception e) {&& &&& &&& &log.error(e.getLocalizedMessage());&& &&& &&& &return "";&& &&& &}&& &}&& &public static int getConfigAsInt(String key) {&& &&& &return Integer.valueOf(getString(key));&& &}&& &/**&& & * 从资源文件中返回字符串 我们不希望程序崩溃,所以如果没有找到Key,就直接返回Key&& & */&& &public static String getString(String key, Object[] args) {&& &&& &try {&& &&& &&& &return MessageFormat.format(getString(key), args);&& &&& &} catch (Exception e) {&& &&& &&& &log.error(e.toString());&& &&& &&& &e.printStackTrace();&& &&& &&& &return "";&& &&& &}&& &}}
public class PinjiaMappingJacksonJsonView extends MappingJacksonJsonView {&& &protected Object filterModel(Map&String, Object& model) {&& &&& &Map&?, ?& result = (Map&?, ?&) super.filterModel(model);&& &&& &if (result.size() == 1) {&& &&& &&& &return result.values().iterator().next();&& &&& &} else {&& &&& &&& &&& &&& &}&& &}}(3)
/**&* 文字短信验证码类型枚举类&*title:&*@author taotk&*@日&*@company &*/public enum ESMSType {&& &Register("注册验证"), Login("登录验证"), Change("变更验证"), Id("身份验证"), Active("活动验证"), Pass("变更验证");&& &private S&& &private ESMSType(String title) {&& &&& &this.title =&& &}&& &public static ESMSType valueof(int index) {&& &&& &return ESMSType.values()[index];&& &}&& &public String getTitle() {&& &&& &&& &}}
/**&* 文字短信验证码数据类型类型枚举类&*title:&*@author taotk&*@日&*@company &*/public enum ESMSDataType {&& &Json("json"), Xml("xml");&& &private S&& &private ESMSDataType(String title) {&& &&& &this.title =&& &}&& &public static ESMSDataType valueof(int index) {&& &&& &return ESMSDataType.values()[index];&& &}&& &public String getTitle() {&& &&& &&& &}}
阅读(...) 评论()}

我要回帖

更多关于 安安兔手机跑分排行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信