博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘宝API 相关的签名算法 Node.js版本 (阿里大鱼短信)
阅读量:6359 次
发布时间:2019-06-23

本文共 1844 字,大约阅读时间需要 6 分钟。

狗是人类的朋友,淘宝文档真心不如他们

前几天别人说阿里大鱼 发短信很快
这几天说充点钱试试 正好有个小项目
结果发现签名工具没有 Node.js的版本
淘宝的文档 谁看谁知道 这里不吐槽了 一点意思都没有
马老板别天天数钱,咱们不能特么好好做做基础设施建设
能不能造福广大程序猿 能不能快乐的玩耍

实在没办法 只能自己写一个

这里使用Hmac方式实现签名

/* Node.js的 crypto 库实在搞不懂 所以下面的两行代码方式的Hmac结果永远都是不对的 谁知道怎么用 不妨留言给我*/var hmac = crypto.createHmac("md5", secret);var result= hmac.update(message).digest('hex');

使用blueimp-md5 没有的自己装个

npm install blueimp-md5

以下是库

var md5 = require("blueimp-md5").md5;// 掏包网的App信息var config = {    AppKey: '123456',    AppSecret: '123456'};var tbSign = function (obj) {    // 时间戳    var time = new Date();    var timestamp = time.getFullYear()  + "-" +        ("0" + (time.getMonth() + 1)).slice(-2) + "-" +        ("0" + time.getDate()).slice(-2) + ' '  +        ("0" + time.getHours()).slice(-2)   + ":" +        ("0" + time.getMinutes()).slice(-2) + ":" +        ("0" + time.getSeconds()).slice(-2);    obj.timestamp = timestamp;    // 程序key    obj.app_key = config.AppKey;        // 参数数组    var arr = [];    // 循环添加参数项    for(var p in obj){        arr.push(p + obj[p]);    }    // 排序    arr.sort();    // 参数喘    var msg =  arr.join('');    console.log(msg);    // Hmac 签名    var sign = md5(msg, config.AppSecret);    // 返回    return {        timestamp:timestamp,        sign:sign.toUpperCase()    }}module.exports.tbSign = tbSign;

下面 就简单了 使用 算一下 就好了

var helperTb = require('./helper_tbsign');// 短信发送的参数对象var obj = {    format : 'json',    method : 'alibaba.aliqin.fc.sms.num.send',    partner_id : 'top-sdk-java-20151020',    rec_num : '13901234567',    sign_method : 'hmac',    sms_type : 'normal',    sms_param : '{"code":"1234", "product":"Demo"}',    sms_free_sign_name : '注册验证',    sms_template_code : 'SMS_123456',    v : '2.0',    timestamp : '2015-10-20 20:41:05'}var sign = helperTb.tbSign(obj);// 结果 4F045A8A04A1B0B5A7F196A91C6EF6D1

好了,代码能用了,各位参考,感兴趣按照你的实际情况自己优化

我这里就当弄个笔记了

转载地址:http://uobma.baihongyu.com/

你可能感兴趣的文章
nasm预处理器(2)
查看>>
二叉排序树 算法实验
查看>>
Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件...
查看>>
YourSQLDba 配置——修改备份路径
查看>>
nginx web服务理论与实战
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
ES6 - 函数与剩余运算符
查看>>
你对position了解有多深?看完这2道有意思的题你就有底了...
查看>>
WebSocket跨域问题解决
查看>>
世界经济论坛发布关于区块链网络安全的报告
查看>>
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>
Ubuntu 16.04安装Nginx
查看>>
从 JS 编译原理到作用域(链)及闭包
查看>>
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>