# wx-applet
# 贡献者
小雪纷飞 https://gitee.com/wujiangwu (opens new window)
# 兼容性
v2.4.4 (小程序基础库v2.4.4开始支持WXS响应事件)
# 引入组件
1)复制view/components/aj-captcha文件夹,到自己放置组件文件夹中
2)在对应页面index.json引用组件
"usingComponents": {
"aj-captcha": "/components/aj-captcha/index"
}
# 基础示例
# 小程序代码片段:https://developers.weixin.qq.com/s/s9JdutmD73p0
1)对应页面index.js
data: {
//滑动验证码-嵌入式
captchaOpt1: {
baseUrl: "https://captcha.anji-plus.com/captcha-api", //服务器前缀,默认:https://captcha.anji-plus.com/captcha-api
mode : 'fixed', //弹出式pop,固定fixed, 默认:pop
captchaType: "blockPuzzle", //验证码类型:滑块blockPuzzle,点选clickWord,默认:blockPuzzle
imgSize : { //底图大小, 默认值:{ width: '310px',height: '155px'}
width: '295px',
height: '147px',
},
barSize:{ //滑块大小,默认值:{ width: '310px',height: '40px'}
width: '295px',
height: '32px',
},
vSpace: 5, //底图和verify-bar-area间距,默认值:5像素
success:function(res){ //成功回调,默认空
console.log("验证成功")
wx.showToast({
title: '验证成功',
icon: 'success',
duration: 1000
})
},
fail:function(res){ //失败回调,默认空
console.log("失败响应")
console.log(res)
},
}
}
2)对应页面index.wxml
<aj-captcha class="demo1" opt="{{captchaOpt1}}"></aj-captcha>
2)组件内置方法
1. show()//显示组件
###组件弹出式需要通过show()方法显示
this.selectComponent('.demo1').show();
2. hide()//隐藏组件
3. reload()//重新装载
//将滑动改为点选
let opt = this.data.captchaOpt1;
opt.captchaType = 'clickWord';
opt.mode = "fixed";
this.setData({
captchaOpt1: opt
},function(){
//更改组件属性属性需要通过加载重置
this.selectComponent('.demo1').reload();
})
# 3.回调事件
参数 | 类型 | 说明 |
---|---|---|
success(params) | funciton | 验证码匹配成功后的回调函数,params为返回需回传服务器的二次验证参数 |
fail(data) | funciton | 验证码校验失败后的回调函数,data服务器响应数据 |
# 4. 验证码参数
参数 | 类型 | 说明 |
---|---|---|
baseUrl | String | 服务器前缀,默认:https://captcha.anji-plus.com/captcha-api |
captchaType | String | 验证码类型:滑动拼图blockPuzzle,文字点选clickWord,默认:blockPuzzle |
mode | String | 验证码的显示方式,弹出式pop,固定fixed,默认:mode : ‘pop’ |
imgSize | Object | 其中包含了width、height两个参数,分别代表图片的宽度和高度 如:{width:'400px',height:'200px'} |
barHeight | String | 滑块,滑动区高度,默认:40px |
vSpace | String | 验证码图片和移动条容器的间隔,默认单位是px。如:间隔为5px,默认:vSpace:5 |
# 5.1默认接口api地址
请求URL | 请求方式 |
---|---|
/captcha/get | Post |
/captcha/check | Post |
# 5.2 接口返回数据结构
##### json格式:
1) get响应
{
"repCode": "0000",
"repData": {
"originalImageBase64": "底图base64",
"jigsawImageBase64": "滑动填充图base64",//captchaType为blockPuzzle返回
"secretKey": "sVSXH5JYwVnHGmB6",//aes加密钥
"token": "71dd26999e314f9abb0c635336976635", //一次校验唯一标识
"result": false,
},
"success": true,
"error": false
}
2) check响应
{
"repCode":"0000",
"repData":{
"captchaType":"blockPuzzle",
"clientUid":"slider-ee070257-2e5e-4bbd-8dfe-a9eec0aefe23",
"pointJson":"gszofB2o8RGUYjHK6TFI69+agzBzXE0LsdnVw84wUBw=",
"result":true,
"token":"de685278d21448058963171c22307a8b",
"ts":1618107911024
},
"success":true
}
← uni-app reactNative →