百度小程序

2024.11.01 11:59:35

    百度小程序支持四种验证码类型:

    • 智能无感知
    • 滑块拼图
    • 文字点选
    • 图标点选

    平台支持

    百度小程序兼容3.150.1以上版本的基础库。

    环境准备

    开发环境

    • 申请百度开发者账号
    • 安装百度开发者工具
    • 主机装有node

    项目开发配置

    • 请在开发设置-服务器域名白名单添加如下域名: c.dun.163.com、c.dun.163yun.com

    资源集成

    • 安装依赖 在根目录下执行下述命令
        npm install @yidun/swan-ne-captcha
    
    • 在使用页面对应的 JSON 中引入验证码组件
    {
      "usingComponents": {
        "ne-captcha": "@yidun/swan-ne-captcha"
      }
    }
    

    快速调用示例

    特别说明

    如果开发框架是 Taro3,请参考Taro3 验证码百度小程序接入注意事项

    在 index 页面集成验证码:

    • index.json

      {
        "usingComponents": {
          "ne-captcha": "@yidun/swan-ne-captcha"
        }
      }
      
    • index.swan

      <view>
        <ne-captcha
          id="captcha"
          captcha-id="业务ID"
          width="640rpx"
          bindverify="handleCaptchaVerify"></ne-captcha>
        <button bindtap="tryToVerify">点击验证</button>
      </view>
      
    • index.js

      Page({
          tryToVerify () {
              this.selectComponent('#captcha').popup()
          },
          handleCaptchaVerify (ev) {
              const [err, validate] = ev.detail
              if (!err) {
                  // TODO
                  // 验证成功,进行后续的业务逻辑,如登录等
                  // validate 用于服务端二次验证
              }
          }
      })
      

    SDK方法说明

    * 使用组件

    百度小程序验证码提供验证码组件,在使用的页面引入即可。

    代码说明

    • swan
        <ne-captcha id="captcha" captcha-id="业务ID"></ne-captcha>
    
    • 获取组件实例
        instance = this.selectComponent('#captcha') // captcha为元素id
    

    组件属性说明

    属性 类型 是否必填 默认值 描述
    captchaId String 验证码业务ID
    width Number |String 'auto' 验证按钮宽度;类型为 String 时,支持后缀 rpxpxrem;类型为 Number 时,内部会将其转换成 rpx 单位的值
    lang String zh-CN 验证码使用的语言
    timeout Number 6000 请求超时时间,单位为毫秒
    customStyles Object null 自定义样式,详见自定义样式配置
    customTexts Object null 自定义文本,用户可指定文本使用自定义,详见自定义文案配置
    extraData String 如果需要在 check 阶段透传业务数据,可以使用 extraData 配置。当调用二次校验结果接口时,会原样返回该字段,详见后端响应参数
    bindinit Eventhandle 验证码配置(初始化)成功触发的事件
    binderror Eventhandle 验证码配置失败触发的事件
    bindready Eventhandle 验证码准备就绪(可进行验证)触发的事件
    bindverify Eventhandle 验证码一次验证完成触发的事件
    bindclose Eventhandle 验证码弹出关闭触发的事件

    注意:自定义功能仅高版本套餐支持,详情请咨询客服

    • 自定义样式:customStyles

    为更好地理解自定义样式相关内容,请先了解我们对易盾验证码弹框界面组成部分的定义 验证码结构

    自定义样式数据结构如下:

    - customStyles (Object)
        - imagePanel (Object)
            - borderRadius (String): imagePanel 的圆角大小
        - controlBar (Object)
            - borderRadius (String): controlBar 的圆角大小
            - height (String): controlBar 的高度
        - gap (String): imagePanel 和 controlBar 的间隔
        - popTitle (Object)
            - height (String): 弹框头部高度
        - popPadding (String): 弹框体内边距
    

    使用示例:

        <ne-captcha
            captcha-id="业务ID"
            width="640rpx"
            custom-styles="{{customStyles}}"></ne-captcha>
    
        Page({
            data: {
                customStyles: {
                    imagePanel: {
                        borderRadius: '2rpx'
                    },
                    controlBar: {
                        height: '80rpx'
                    }
                }
            }
        })
    
    • 自定义文案:customTexts
    属性 原文案(简体中文)
    LOADING 加载中...
    LOAD_FAIL 加载失败
    VERIFY_SUCCESS 验证成功
    VERIFY_ERROR 验证失败,请重试
    VERIFY_OUT_OF_LIMIT 失败过多,点此重试
    CLICK_BUTTON 点此进行验证
    CLICK_IN_TURN 请依次点击
    SLIDE_TIP 向右拖动滑块填充拼图
    POPUP_TITLE 请完成安全验证

    使用示例:

    <ne-captcha
        captcha-id="业务ID"
        width="640rpx"
        custom-texts="{{customTexts}}"></ne-captcha>
    
        Page({
            data: {
                customTexts: {
                    LOADING: '加载中,请耐心等待',
                    LOAD_FAIL: '加载失败,刷新重试'
                }
            }
        })
    
    • 多语言:lang 支持语音种类见下表:
    语种 简体中文 英语 繁体中文 日语 韩语 泰语 越南语 法语 俄语
    lang zh-CN en zh-TW ja ko th vi fr ru

    事件参数说明:

    • bindverify - 事件对象(event)说明:
    - event (Object)
        - detail (Array)
            - error (Error): 验证失败的错误信息
            - validate (String): 二次验证信息
    

    进行验证码验证

    验证需区分验证码的类型,若验证码为常规类型,则调用 popup 方法进行验证;若验证码为智能无感知,则调用 verify 方法进行验证。

    代码说明

    • 常规验证码
        instance.popup()  // instance 为验证码组件实例
    
    • 智能无感知
        instance.verify() // instance 为验证码组件实例
    

    刷新验证码(可选)

    当上一轮验证成功后,若业务需要重置验证码,重新进行验证时,可以调用 reset 方法。 注意:请不要在验证失败时调用,失败时验证码会自动刷新。

    代码说明

        instance.reset() // instance 为验证码组件实例
    

    错误码

    code 含义
    200 校验未通过,是因为业务错误,包括超限
    501 接口请求失败,包括网络原因等
    503 图片请求失败
    1000 未知错误

    效果演示

    百度小程序效果

    在线咨询 电话咨询:95163223 免费试用