使用gin框架、gorm映射

所使用的连接容联云参考容联云官方文档,放置到utils中,

gin项目结构根据自身需要,大题如下设置:

utils--sms.go

package main
import ("github.com/cloopen/go-sms-sdk/cloopen""log"
)
func main() {cfg := cloopen.DefaultConfig().// 开发者主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENWithAPIAccount("accountSId").// 主账号令牌 TOKEN,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENWithAPIToken("auth token")sms := cloopen.NewJsonClient(cfg).SMS()// 下发包体参数input := &cloopen.SendRequest{// 应用的APPIDAppId: "appId",// 手机号码To: "1352*******",// 模版IDTemplateId: "templateId",// 模版变量内容 非必填Datas: []string{"您的验证码是****"},}// 下发resp, err := sms.Send(input)if err != nil {log.Fatal(err)return}log.Printf("Response MsgId: %s \n", resp.TemplateSMS.SmsMessageSid)}

controller--user_controller.go

package controllerimport ("fmt""github.com/gin-gonic/gin""myproject/model""myproject/utils""regexp""strconv"
)// 总路由分发
func UserRegister(userGrp *gin.RouterGroup) {userGrp.Use().POST("/send_code", Sendcode)userGrp.Use().POST("/register", Register)
}// 发送短信验证码
func Sendcode(c *gin.Context) {//获取参数。手机号//验证合法//从redis获取存在则不能重复发//不存在 生成随机数 调用发短信接口//存入redis返回结果mobile := c.Query("mobile")fmt.Println(">>>>>>>" + mobile)reg := "^1[3-9]{1}\\d{9}$"result := regexp.MustCompile(reg)flag := result.MatchString(mobile)if !flag {c.JSON(200, gin.H{"code": "10011","res":  "手机号不正确,请重新输入",})} else {r := utils.GetRedis()value := r.Get(mobile)if value == "" {// 生成随机值短信验证码num := utils.RandInt(10000, 99999)fmt.Println(num)num1 := strconv.Itoa(num) // 转换string// 调用容联云发送短信接口utils.SendSms(mobile, num1)r.Setex(mobile, 60, num1)c.JSON(200, gin.H{"code": "200","res":  "发送成功",})} else {c.JSON(200, gin.H{"code": "10012","res":  "不能重复发送",})}}
}type UserInfo struct {Mobile stringCode   string
}// 注册  发送短信 随机值
func Register(c *gin.Context) {//mobile := c.PostForm("mobile")//newcode := c.PostForm("newcode")var userInfo UserInfoc.Bind(&userInfo)mobile := userInfo.Mobilenewcode := userInfo.Coder := utils.GetRedis()code := r.Get(mobile)if code != newcode {c.JSON(200, gin.H{"code": "10020","res":  "验证码不正确",})} else {//加入数据库user := &model.User{Name:     mobile,Mobile:   mobile,Password: "123456",}db := model.GetDb()db.Create(user)fmt.Println(user.ID)//生成token返回token, _ := utils.ReleaseToken(user.ID)c.JSON(200, gin.H{"code":   "200","res":    "注册成功","userid": user.ID,"token":  token,})}}

获取前端传参方式:

获取 URL (query)参数

querystring指的是URL中?后面携带的参数,例如:/user/search?username=zhangsan&address=北京

获取 Form参数

前端请求的数据通过form表单提交

参数绑定

使用 Bind() 方法, 根据请求方式,自动提取 JSON, form表单 和 Query 类型的参数,放入结构体中

Go语言初识应用--容联云发送短信验证码、手机号注册相关推荐

  1. Django使用容联云发送短信验证码时提示:172001,网络错误

    尝试用django连接容联云发送短信验证码,运行时出现了以下提示:{'172001':'网络错误'}:在网上查阅资料后得知,是因为python升级到2.7.9之后引入了一个新特性,当打开一个https ...

  2. 容联云发送短信验证码

    setting配置 # 配置jwt的全局认证 REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES':['rest_framework_jwt.authe ...

  3. flask容联云发送短信验证码和异步发送

    容联云地址:https://www.yuntongxun.com/ 获取短信验证码流程图 容联云配置 在容联云官网注册一个账号,发送短信验证码必须使用三个ID ACCOUNT SID   (主账户ID ...

  4. luffcc项目-06-使用容联云发送短信、Celery

    一.使用容联云发送短信 https://www.yuntongxun.com/ 目录结构 sms.py import json from .SmsSDK import SmsSDK from djan ...

  5. 使用容联云获取短信验证码

    容联云地址:https://www.yuntongxun.com/ 获取短信验证码流程图 容联云配置 在容联云官网注册一个账号,发送短信验证码必须使用三个ID ACCOUNT SID   (主账户ID ...

  6. 荣联云发送短信验证码--python3接口

    前言 近期做网页注册需要用到发送验证码功能,于是用荣联云的发送短信验证码进行测试,官网上提供的demo是python2.7的,而目前都使用的python3了,而且demo中的代码太长了,我只取demo ...

  7. Java调用容联云通讯短信验证码API接口示例

    1.注册账号 https://www.yuntongxun.com/doc.html 注册后点击控制台可以看到你的信息 2.添加测试号码 3.打开文档>Rest API>短信 下载Java ...

  8. 记录开发内容demo-java华为云发送短信验证码

    文章目录 前言 一.所需sdk 二.util类 1.demo 2.登录调用 总结 前言 华为云发送短信验证码 一.所需sdk <!--华为云手机获取短信验证码--><dependen ...

  9. 腾讯云发送短信验证码服务

    腾讯云发送短信验证码服务 1.注册腾讯云的账号 在腾讯云的官网:https://cloud.tencent.com/注册一个腾讯云的账号,就是日常的注册流程(这里就不贴图了),不过要实名认证啥的,认证 ...

最新文章

  1. SpringBoot简单使用
  2. luogu3244 bzoj4011 HNOI2015 落忆枫音
  3. java负数右移_Java中负数的右移
  4. struts升级2.3.12到2.5.13
  5. weblogic创建域后启动不了_摩托车淋雨后启动不了什么原因?如何解决?
  6. html5着陆页模板,多用途着陆页HTML模板
  7. 服务端api用php写还是用node,如何使用node搭建服务器,写接口,调接口,跨域
  8. Win7下的使用QTP进行猴子测试的性能日志实现方法
  9. python编程学习_使用EduBlocks轻松学习Python编程
  10. js的tree数组对象扁平化思否_JS专题之数组展开
  11. qzone.class.php,[宜配屋]听图阁
  12. Soft NMS算法笔记
  13. thymeleaf th:href 多个参数传递格式
  14. utl_file包的使用
  15. 允许外部访问Windows本机的指定端口
  16. distpicker省市区插件设置请选择省市区提示/或设置初始值问题
  17. js控制页面只刷新一次
  18. http://www.jobui.com/mianshiti/it/java/6782/
  19. 虚拟路由器冗余协议VRRP的基本配置【学习笔记(1)】
  20. 送给女朋友的java程序_逗女朋友开心的玫瑰花Java web程序

热门文章

  1. vue实现九宫格效果
  2. Matlab --- Matlab中常数c乘以矩阵A背后的故事
  3. 多接口调用,使用Promise.all、Promise.race和Promise.any
  4. scrapy存储到Excel中
  5. 百度网盘配合插件脚本使用IDM下载设置
  6. pycharm专业版许可证申请(特定人群)
  7. 华为od一面面试算法
  8. 【R语言】使用leaflet绘制沈阳地铁线路图——R实训第六次作业
  9. 可以重写static方法和private方法吗
  10. 系统平台淘宝如何安全补单及其操作步骤