博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
beego 阿里大鱼短信验证码接口
阅读量:5861 次
发布时间:2019-06-19

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

工作中需要用到短信登录注册验证,所以自己用beego写了个阿里大鱼的短信验证码接口

一、配置,beego的配置文件  conf/app.conf,这些注册阿里大鱼帐号就会分配给你,注册地址:http://www.alidayu.com/

sms_url=http://gw.api.taobao.com/router/restsms_type=normalsms_AppKey=46745674567sms_AppSecret=678467456745674567sms_free_sign_name=一点通sms_template_code=SMS_11060567

二、阿里大鱼的短信发送工具函数,我参照了https://github.com/ltt1987/alidayu这个包写的

package toolsimport (	"crypto/md5"	"github.com/astaxie/beego"	"github.com/astaxie/beego/httplib"	"sort"	"strings"	"time"	"fmt")func Send_alidayu(phone, sms_param string) (string, error) {	sms_url := beego.AppConfig.String("sms_url")	sms_type := beego.AppConfig.String("sms_type")	sms_free_sign_name := beego.AppConfig.String("sms_free_sign_name")	sms_template_code := beego.AppConfig.String("sms_template_code")	sms_AppKey := beego.AppConfig.String("sms_AppKey")	sms_AppSecret := beego.AppConfig.String("sms_AppSecret")	req := httplib.Post(sms_url)	m := map[string]string{		"app_key":                     sms_AppKey,		"timestamp":                   time.Now().Format("2006-01-02 15:04:05"),		"v":                           "2.0",		"method":                      "alibaba.aliqin.fc.sms.num.send",		"partner_id":                  "top-apitools",		"format":                      "json",		"sms_type":                    sms_type,		"rec_num":                     phone,		"sms_free_sign_name":          sms_free_sign_name,		"sms_template_code":           sms_template_code,		"force_sensitive_param_fuzzy": "true",		"sign_method":                 "md5",		"sms_param":                   sms_param,	}	var keys []string	for k := range m {		keys = append(keys, k)	}	sort.Strings(keys)	singString := sms_AppSecret	for _, k := range keys {		req.Param(k, m[k])		singString += k + m[k]	}	singString += sms_AppSecret	signByte := md5.Sum([]byte(singString))	sign := strings.ToUpper(fmt.Sprintf("%x", signByte))	req.Param("sign", sign)	result, err := req.String()	return result, err}

三、使用方法,beego的controller中直接使用

func (this *Register) Test() {	req, err := tools.Send_alidayu("15953163355", "{code:'8558',product:'一点通'}")	fmt.Println(err)	this.Ctx.WriteString(req)}

 

转载于:https://my.oschina.net/tongjh/blog/701886

你可能感兴趣的文章
How to incrementally migrate DynamoDB data to Table Store
查看>>
Hbase伪分布式
查看>>
面试 8:快慢指针法玩转链表算法面试(二)
查看>>
传智播客C++学院教学总监朱景尧老师
查看>>
day01_html学习笔记
查看>>
异步方法不能使用ref和out的解决方法
查看>>
走在JS上的全栈之路(一)
查看>>
浅析GPU通信技术(上)--GPUDirect P2P
查看>>
IBM借QISKit打造基于云平台的量子计算
查看>>
第二届中国SaaS产业峰会-深圳站——挖掘SaaS的深度价值
查看>>
专访驭势科技吴甘沙:无人驾驶硝烟弥漫,“创造”才有未来|封面人物
查看>>
一次Hbase删库的故障恢复--Linux EXT4 文件恢复原理分析
查看>>
机器学习研究人员需要了解的8个神经网络架构(上)
查看>>
解决TeamViewer无法按给定网络地址联系伙伴
查看>>
真空不空
查看>>
Echarts 自定义数据视图
查看>>
JavaScript 编程精解 中文第三版 八、Bug 和错误
查看>>
java中泛型上限,下限应用
查看>>
linux监控命令详解
查看>>
系统运维必会知识点
查看>>