微信小程序接入腾讯云验证码的方法步骤


Posted in Javascript onJanuary 07, 2020

前言:最近做了一个小程序抽奖的活动,出现了部分用户恶意薅羊毛的现象,因此考虑接入腾讯云的验证码。

其实腾讯的官方文档写的相当清晰:https://cloud.tencent.com/doc...
不想啃文档的筒子们的就往下继续看吧~(虽然大同小异)

整体效果

1、小程序触发验证,跳转到验证码小程序
2、在验证码小程序内通过验证,并携带参数跳回原来的小程序
3、在原来的小程序内,监测携带回的参数,并作后续操作

前提条件

验证码接入前,需要先在验证码控制台中注册 AppID 和 AppSecret,注册完成后,您可以在控制台的基础配置中查看 AppID (下文extraData中使用) 以及 AppSecret。

注意,这里的 appId 和 appSecret 和小程序后台的是不一致的!

接入步骤

1、在你需要的地方,唤起验证码小程序

首先在 app.json 配置 navigateToMiniProgramAppIdList,如下:

{
 "navigateToMiniProgramAppIdList": ["wx5a3a7366fd07e119"]
}

这个appId是官方文档中直接提供的,搬上去就好。

假设你的唤起方式是通过一个这样的按钮事件:

<button bindtap="toTCaptcha">验证</button>
toTCaptcha: function () {
  wx.navigateToMiniProgram({
   appId: 'wx5a3a7366fd07e119',
   path: '/pages/captcha/index',
   extraData: {
    appId: 'appId' //您申请的验证码的 appId
   }
  })
 }

2、在 app.js 获取验证结果

由于小程序间相互跳转过程中产生的数据仅能在 app.js 中获取到,故需要在 app.js 的 onShow 中添加以下代码,来捕获验证结果 captchaResult

App({
 // ...
 onShow: function(options) {
  // 解决各类回调的兼容问题
  if (!this.captchaTicketExpire) this.captchaTicketExpire = {};

  if (options.scene === 1038 && options.referrerInfo.appId === 'wx5a3a7366fd07e119') {
   const result = options.referrerInfo.extraData;
   if (result.ret === 0) {
    const ticket = result.ticket;
    if (!this.captchaTicketExpire[ticket]) {
     this.captchaResult = result;
     this.captchaTicketExpire[ticket] = true;
    }
   } else {
    // 用户关闭了验证码
    // 这里可以加上一些验证失败提示
   }
  }
 },
 // ...
});

验证结果(captchaResult) 参数说明:

微信小程序接入腾讯云验证码的方法步骤

3、将验证结果返回至服务端校验

在小程序页面的 onShow 阶段,将验证结果及待提交的表单数据一起提交到服务器,进行校验。

// page.js
const app = getApp()

Page({
 data: {
  // ...
 },
 onShow() {
  const captchaResult = app.captchaResult;
  app.captchaResult = null; // 验证码的票据为一次性票据,取完需要置空
  if (captchaResult && captchaResult.ret === 0) {
   // 将验证码的结果返回至服务端校验,以及后续的操作
   // const ticket = captchaResult.ticket;
   // const randstr = captchaResult.randstr;
  }
 },
 // ...
});

用一个词描述这个开发过程:搬上去!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让广告代码不再影响你的网页加载速度
Jul 07 Javascript
Some tips of wmi scripting in jscript (1)
Apr 03 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
javascript中的正则表达式使用指南
Mar 01 Javascript
jquery事件的ready()方法使用详解
Nov 11 Javascript
js实现可控制左右方向的无缝滚动效果
May 29 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 Javascript
Bootstrap CSS使用方法
Dec 23 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 Javascript
如何在Vue中抽离接口配置文件
Oct 31 Javascript
vue实现数据控制视图的原理解析
Jan 07 #Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 #Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 #Javascript
小程序跨页面交互的作用与方法详解
Jan 07 #Javascript
JavaScript实现联动菜单特效
Jan 07 #Javascript
JS实现电商商品展示放大镜特效
Jan 07 #Javascript
JS实现字体背景跑马灯
Jan 06 #Javascript
You might like
php防攻击代码升级版
2010/12/29 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python程序中设置HTTP代理
2016/11/06 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Python虚拟环境venv用法详解
2020/05/25 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
测试工程师岗位职责
2013/11/28 职场文书
会计专业自荐信
2013/12/02 职场文书
双十佳事迹材料
2014/01/29 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
美术课外活动总结
2014/07/08 职场文书
小学生成绩单评语
2014/12/31 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书