开发者社区> 问答> 正文

想哭死了,怎么阿里云的发短信那接口,怎么用nodejs写啊!?

最近在用nodejs写注册接口,要用到短信验证,现在申请了阿里云的短信服务,却不会解开短信发送接口,我看就是看不明白,也没有nodejs方面的demon,现在急着要做,有没有大神贴一下demon,阿里云弄个短信搞这么复杂,死人啦

展开
收起
skkkkkkkk 2016-10-11 10:43:35 11103 0
7 条回答
写回答
取消 提交回答
  • Re想哭死了,怎么阿里云的发短信那接口,怎么用nodejs写啊!?
    阿里云短信发送接口 nodejs 版本:
    github.com/freecto/aliyun-nodejs-sdk-smsV1

    2017-03-06 23:07:33
    赞同 展开评论 打赏
  • Re想哭死了,怎么阿里云的发短信那接口,怎么用nodejs写啊!?
    短信接口 可以试下 卡洛思,接口调用很简单,通道也很棒 ,sp资质和落地代码都有哦,短信到达速度和稳定 都很好,服务肯定更好啦。
    2017-01-22 23:31:06
    赞同 展开评论 打赏
  • gst
    回 5楼skycity的帖子
    你这改没改有什么区别?
    2017-01-22 14:36:35
    赞同 展开评论 打赏
  • 回 2楼沉沦的键盘的帖子
    这位兄弟太不厚道了,代码既然都分享出来了,为何又不分享个正确的。
    你这个代码明显是有问题的!不能怪别人拿过去不能用。
    我觉得是这位兄弟故意的整的问题出来。
    你敢说你分享出来的代码你项目里能正常使用?

    //签名方法
    sign.signForAliMessage
    //这个方法中的这段代码明显有问题
    for(var i=0;i<oa.length;i++){
            on[oa] = src_sign[oa];
    }
    //应该改成
    for(var i=0;i<oa.length;i++){
            on[oa] = src_sign[oa];
    }

    有参考的童鞋,记得改下就好了
    2016-12-02 18:30:36
    赞同 展开评论 打赏
  • 回 3楼学习007的帖子
    竟然不知道npm,github 总知道吧
    2016-12-02 01:50:14
    赞同 展开评论 打赏
  • Re想哭死了,怎么阿里云的发短信那接口,怎么用nodejs写啊!?
    哎,哥,怎么抄都不知道呀。
    2016-11-24 14:50:18
    赞同 展开评论 打赏
  • 回 楼主skkkkkkkk的帖子
    别哭,我今天在写,写好了,发个代码给你看看

    -------------------------

    Re回 楼主skkkkkkkk的帖子

    self.sendAliMessage = function(req,res){


        var param = {
            'Action'            : 'SingleSendSms',
            'SignName'          : 'xxxx',                         //短信签名名称
            'TemplateCode'      : 'SMS_1635xxxx',
            'RecNum'            : '13564096???',                  //手机号
            'ParamString'       : JSON.stringify({"code":"9527"}),//验证码模板里的变量
            'Version'           : '2016-09-27',
            'Format'            : 'JSON',
            'AccessKeyId'       : ali_access_key_id,
            'SignatureMethod'   : 'HMAC-SHA1',
            'SignatureVersion'  : '1.0',
            'SignatureNonce'    : randomstr(9),                   //随机数
            'Timestamp'         : new Date().toISOString(),
        };
        
        param.Signature = sign.signForAliMessage(param,  ali_access_key_secret);


        var api_url = 'https://sms.aliyuncs.com/';


        request.post({
            url: api_url,
            headers: {
                'Content-Type':'application/x-www-form-urlencoded'
            },
            form:param
        },function(err,response,data){


            var result


            data = JSON.parse(data);
            
            if (!err && data.Model) {


                result = res.returnData(200);


            }else{


                result = res.returnData(113);
            }


            res.send(result);
        });
    }






    /*签名方法*/

    sign.signForAliMessage = function(src_sign,access_key_secret){


        var param , qstring = [];


        var oa = Object.keys(src_sign).sort() , on = {};
        
        for(var i=0;i<oa.length;i++){


            on[oa ] = src_sign[oa];
        }


        param = on;


        for(var key in param){


            qstring.push(encodeURIComponent(key)+'='+encodeURIComponent(param[key]));
        }


        qstring = qstring.join('&');
        
        var StringToSign = 'POST'+'&'+encodeURIComponent('/')+'&'+encodeURIComponent(qstring);
        
        access_key_secret = access_key_secret+'&';


        var signature = crypto.createHmac('sha1', access_key_secret).update(new Buffer(StringToSign, 'utf-8')).digest('base64');


        return signature;
    }


    我已经发送成功了,你照抄就可以了
    2016-10-13 16:06:34
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载