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


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 相关文章推荐
javascript string字符串优化问题
Jul 31 Javascript
JS读取XML文件示例代码
Nov 15 Javascript
jQuery中index()的用法分析
Sep 05 Javascript
Javascript核心读书有感之词法结构
Feb 01 Javascript
js比较日期大小的方法
May 12 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
Aug 25 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
基于jquery实现下拉框美化特效
Feb 02 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
Vue对象赋值视图不更新问题及解决方法
Jun 03 Javascript
Vue快速实现通用表单验证的方法
Feb 24 Javascript
JavaScript严格模式不支持八进制的问题讲解
Nov 07 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
隐性调用php程序的方法
2009/03/09 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
DEFER怎么用?
2006/07/01 Javascript
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
python matplotlib画图实例代码分享
2017/12/27 Python
python并发和异步编程实例
2018/11/15 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
2016新年年会主持词
2015/07/06 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书