首页 > 其他分享 >Promise 与腾讯云无感验证结合使用

Promise 与腾讯云无感验证结合使用

时间:2024-04-26 10:58:01浏览次数:20  
标签:res 验证码 Promise randstr 腾讯 var new ticket 无感

需求分析:点击操作按钮--调用腾讯云无感验证获取参数--携带参数请求接口

重点:函数的执行顺序,先调用腾讯云,然后携带参数请求接口

demo.html

<script>
      // 定义回调函数
      function callback(res) {
          console.log('callback:', res);
          if (res.ret === 0) {
            // 复制结果至剪切板
            var str = '【randstr】->【' + res.randstr + '】      【ticket】->【' + res.ticket + '】';
            var ipt = document.createElement('input');
            ipt.value = str;
            document.body.appendChild(ipt);
            ipt.select();
            document.execCommand("Copy");
            document.body.removeChild(ipt);
            alert('1. 返回结果(randstr、ticket)已复制到剪切板,ctrl+v 查看。 2. 打开浏览器控制台,查看完整返回结果。');
          }
      }
  
      // 定义验证码js加载错误处理函数
      function loadErrorCallback() {
        var appid = '12345678';
        // 生成容灾票据或自行做其它处理
        var ticket = 'terror_1001_' + appid + '_' + Math.floor(new Date().getTime() / 1000);
        callback({
          ret: 0,
          randstr: '@'+ Math.random().toString(36).substr(2),
          ticket: ticket,
          errorCode: 1001,
          errorMessage: 'jsload_error'
        });
      }
  
      // 定义验证码触发事件
      window.onload = function(){
        document.getElementById('CaptchaId').onclick = function(){
          try {
            // 生成一个验证码对象
            // CaptchaAppId:登录验证码控制台,从【验证管理】页面进行查看。如果未创建过验证,请先新建验证。注意:不可使用客户端类型为小程序的CaptchaAppId,会导致数据统计错误。
            //callback:定义的回调函数
            var captcha = new TencentCaptcha('12345678', callback, {});
            // 调用方法,显示验证码
            captcha.show(); 
          } catch (error) {
            // 加载异常,调用验证码js加载错误处理函数
            loadErrorCallback();
            }
          }
      }

 封装为promise形式

function getCode() {
  return new Promise((resolve, reject) => {
    try {
      const captcha = new TencentCaptcha(
        '192905396',
        res => {
          resolve(res)
        },
        {}
      )
      // 调用方法,显示验证码
      captcha.show()
    } catch (error) {
      var appid = '192905396'
      // 生成容灾票据或自行做其它处理
      var ticket = `terror_1001_${appid}_${Math.floor(new Date().getTime() / 1000)}`

      reject({
        ret: 0,
        randstr: '@' + Math.random().toString(36).substr(2),
        ticket: ticket,
        errorCode: 1001,
        errorMessage: 'jsload_error'
      })
    }
  })
}

  点击函数处调用

import { getCode } from '@/utils/TencentCaptcha.js' //引入函数
//点击函数
async handelVote() {
      const { isStatus } = await isLogin()
      if (isStatus.value) {
        if(this.gotencentverify == 1) { //开启了腾讯云无感验证
          getCode().then(res => {
          if (res.ret === 0) {
            this.handelMixinVote(this.id,res.randstr,res.ticket) //携带参数
          }
        })
      } else {
        this.handelMixinVote(this.id)
      }
}

  

标签:res,验证码,Promise,randstr,腾讯,var,new,ticket,无感
From: https://www.cnblogs.com/cuipingzhao/p/18159504

相关文章

  • RTX腾讯通升级至有度,无缝衔接信创国产即时通讯及协同办公平台
    随着信息技术的快速发展,企业对于即时通讯和协同办公平台的需求日益增强。RTX腾讯通作为国内知名的即时通讯工具,一直以来都受到广大企业的青睐。然而,随着信创国产化趋势的加速推进,越来越多的企业开始寻求更加符合国产化要求的解决方案。在这样的背景下,RTX腾讯通升级至有度,无缝衔接......
  • 深入理解Promise
    Promise的基本用法Promise是JavaScript中用于处理异步操作的一种重要机制。Promise用于解决JavaScript中异步操作的复杂性,通过状态管理、链式调用、错误处理等功能,实现代码的清晰、有序与可维护,避免回调地狱,提升异步编程的效率与体验。Promise是一个代表异步操作最终完成......
  • 使用smtp协议发送邮件(借用腾讯邮箱服务器)
    SMTP简单邮件传输协议(SimpleMailTransferProtocol)SMTP的目标是可靠,高效的传输邮件。使用C/S架构(默认端口25)协议:即约定和规范,不同的程序可以通过相同的协议来解析数据,从而提高数据的交互性。市面上有很多第三方组件,根据协议制定了能够让我们进行快速的搭建程序的脚手架......
  • 腾讯云的Ubuntu开启root远程ssh
    在腾讯云的Ubuntu系统上启用root用户,你可以通过以下步骤进行:设置root密码:sudopasswdroot允许root用户通过SSH登录:编辑/etc/ssh/sshd_config文件,将PermitRootLogin的值改为yes:sudonano/etc/ssh/sshd_config#找到这一行:#PermitRootLoginprohibit-password#修改为:P......
  • 音视频厂商核心功能对比:腾讯云音视频/声网/即构
    当前实时音视频开发领域呈现出多样化竞争态势,其中声网(Agora)、即构(ZEGO)等云通讯企业占据了市场的主导地位。随着技术的持续进步和用户需求的日益多样化,选择音视频服务提供商的标准也越来越个性化,这不仅促进了音视频服务商之间的竞争更加激烈,也让用户在选择时更加注重产品的性能、......
  • LORS:腾讯提出低秩残差结构,瘦身模型不掉点 | CVPR 2024
    深度学习模型通常堆叠大量结构和功能相同的结构,虽然有效,但会导致参数数量大幅增加,给实际应用带来了挑战。为了缓解这个问题,LORS(低秩残差结构)允许堆叠模块共享大部分参数,每个模块仅需要少量的唯一参数即可匹配甚至超过全量参数的性能。实验结果表明,LORS减少解码器70%的参数后仍......
  • 腾讯EMR表治理工具安装使用
    一、安装1、root用户上传文件cdwangrz-beyluoshu-1.0-bin.tar.gz2、解压文件到服务目录重新安装洛书需执行:rm-rf /usr/local/service/luoshumkdir /usr/local/service/luoshutar-zxf luoshu-1.0-bin.tar.gz-C/usr/local/service/luoshu3、(仅初次安装洛书执行)连接......
  • win10系统腾讯会议连接蓝牙耳机(小米buds3)没有声音
    台式机放在工位地下,用有线耳机实在太麻烦。台式机如何连接蓝牙耳机了。只需要在拼多多上面买个蓝牙适配器。5-10块钱哪种就行(蓝5.1就够了,有钱就买最好的)添加后,听音乐啥的都没有问题。但是今天腾讯会议开会,居然灭有声音。连接蓝牙耳机后,腾讯会议还是外放,可能是由于声音模式未切......
  • 前端【小程序】14-小程序基础篇【地理位置】【腾讯定位服务】
    腾讯定位服务官网:https://lbs.qq.com位置服务(LBS)是基于用户的位置来提供服务的技术,通过要配合第三方的服务来实现,如腾讯地图、高德地图、百度地图等,享+项目采用的是腾讯的位置服务。申请使用腾讯位置服务需要按如下步骤操作:注册账号创建应用生成key小程序管理后......
  • [Unit testing] Testing a fetch promise
    Code:importtype{paths}from"@octokit/openapi-types";typeOrgRepoResponse=paths["/repos/{owner}/{repo}"]["get"]["responses"]["200"]["content"]["application/json"];exportty......