按键精灵手机版接入联众识别接口教程

  因为公司需要,咸鱼锋在8012年的年底使用按键精灵手机助手开发IOS脚本,开发过程中涉及到某平台滑动拼图验证机制,在请示过老板后,决定接入公司正在使用的联众打码平台,通过识别接口完成滑动验证过程。
联众打码接口已适配语言
  想要接入联众识别接口,首先需要去联众打码官网查看识别接口相关的开发文档代码案例,联众识别接口适配了不少语言,其中针对手机按键和XXTouch,联众打码还推出了2.0版识别接口。因为咸鱼锋用的是按键精灵手机版,所以选择了官方案例里的手机按键,点击后提示下载一个压缩包。
  -> 点我下载手机按键范例压缩包 <-
手机按键范例压缩包包含文件内容
  压缩包内包含一个lua文件,一个接口帮助文档,一个mqb范例。咸鱼锋不是很喜欢看帮助文档,索性将mqb范例直接导入到按键精灵手机助手中打开,读取其中的源码。好在源码中有写注释,还是很容易理解的,接下来,咸鱼锋将介绍下如何将联众识别接口接入到脚本中。

Import "lzdm.lua"                               '调用lzdm.lua

  这一行的作用是调用lzdm.lua,也就是压缩包中的那个lua文件。这一行代码是必须要写的,脚本接入联众识别接口,依靠的就是这个lua文件。

Dim RetTbl, ID, Result                          '定义代码中使用变量
Dim user = ""                                   '用户名
Dim pwd = ""                                    '密码
Dim softID = ""                                 '软件ID,作者账号增加软件后获取
Dim Secret = ""                                 '安全码,作者账号增加软件后获取
Dim filepath = GetSdcardDir() & "/yzm.png"      '图片路径
Dim tpe = 1001                                  '验证码类型
Dim ot = 60                                     '超时时间(秒)
Dim minlen = 0                                  '验证码最小长度
Dim maxlen = 0                                  '验证码最大长度
Dim workerTipsId = 0                            '码工提示(选填),后台申请联系客服通过

  这一段代码,是用来配置接入接口过程中需要使用的用户数据的存储变量,同样是必须要写的。
  user和pwd变量:脚本运行过程中,使用联众打码识别产生费用的支付账户的用户名和密码,一般由脚本使用者填写在脚本配置UI界面的输入框中,脚本代码通过ReadUIConfig命令读取存入变量。
  softID和Secret变量:用于存储开发者在联众注册开发者账号后,生成的软件ID以及与之对应的安全码。
  PS:可以理解为user和pwd是使用者填写的信息,softID和Secret是作者填写的信息。使用者使用脚本产生费用,作者可以通过联众平台获取一定的返利。
  filepath变量:用于存储需要验证的图像图片的路径。
  tpe变量:用于存储验证码的类型代码的,这个必须要针对实际情况修改对应的类型代码,可以查阅类型报价或联系QQ技术客服获取类型代码填入。
  ot变量:用于存储验证超时时长,根据实际情况设定等待时长,填写设置即可。
  minlen和maxlen变量:用于存储的是验证码最小长度和最大长度,不同的验证类型有不同的设置,可以通过QQ技术客服获取配置数据。
  workerTipsId变量:存储的是码工提醒,一般来说验证码都是算法识别,除非是人工码工识别,不然可以不用修改配置,默认为0即可。
  写完这段,准备工作就做好了,如果对类型配置有疑问,可以找QQ技术客服发验证码样式截图询问具体配置去修改。

// 一键打码
RetTbl = lzdm.lz_SendVerCode(softID, Secret, user, pwd, filepath, tpe, ot, minlen, maxlen, workerTipsId)
If RetTbl Then 
    If RetTbl["code"] = 0 Then 
        ID = RetTbl["data"]["captchaId"]
        Result = RetTbl["data"]["recognition"]
        TracePrint "验证码识别结果为: ", Result
        TracePrint "验证码ID为: ", ID
    Else 
        TracePrint "验证码结果获取失败, 错误原因: ", RetTbl["message"]
    End If
Else 
    TracePrint "HTTP请求发送失败"
End If

  这段代码就是实现识别的关键代码,是必须要写的。可以看到代码中调用了lzdm的函数,进行了HTTP请求发送,识别结果存储在变量Result中,不同的验证类型返回的结果也不同,需要根据实际情况进行处理。比如咸鱼锋识别的验证码最终返回结果是一个坐标,因为是只截取验证码进行上传验证,实际使用过程中还需要进行二次处理,才能完成验证。

// 结果报错
RetTbl = lzdm.lz_ReportError(softID, Secret, user, pwd, ID)
If RetTbl Then 
    If RetTbl["code"] = 0 Then 
        If RetTbl["data"]["result"] Then 
            TracePrint "验证码报错成功"
        Else 
            TracePrint "验证码报错失败"
        End If
    Else 
        TracePrint "报错提交失败, 错误原因: ", RetTbl["message"]
    End If
Else 
    TracePrint "HTTP请求发送失败"
End If

  这段代码是用于识别结果出错时,进行错误上报的,根据实际情况可以选择是否写入脚本。毕竟是联众识别接口也是依据云端服务器使用算法进行识别,总会有出错的时候,这个时候,如果不上报,产生的费用点数是不会返还的,并且错误验证码再次出现还是会返回错误结果,合理的使用报错有利于减少不必要的开支和规避错误的再次发生。

// 检查点数
RetTbl = lzdm.lz_GetUserInfo(softID, Secret, user, pwd)
If RetTbl Then 
    If RetTbl["code"] = 0 Then 
        TracePrint "当前用户剩余点数: ", RetTbl["data"]["userPoints"]
        TracePrint "当前用户可用点数: ", RetTbl["data"]["availablePoints"]
        TracePrint "当前用户锁定点数: ", RetTbl["data"]["lockPoints"]
    Else 
        TracePrint "查询点数失败, 错误原因: ", RetTbl["message"]
    End If
Else 
    TracePrint "HTTP请求发送失败"
End If

  这段代码实现了实时查询消费账户中的剩余可用点数。因为联众是以点为单位的计费方式,所以实时查询剩余点数有利于规避因点数消耗殆尽而出现无法查询的情况。
  按键精灵手机版接入联众识别接口的教程到这就结束了,如果对自己需要查询的验证码代码类型不清楚或者有疑问,可以联系联众官方的QQ技术客服进行具体配置的咨询和确认。
  -> 点我添加联众QQ技术客服为好友 <-
  咸鱼锋在这里友情提示,与人交谈要注意礼貌用语,毕竟谁也不欠谁是吧。
  另外上面的代码中使用到的TracePrint函数是向按键精灵手机助手的调试窗口输出信息,在正常运行中是不可见的,如有需要,可以调整为ShowMessage函数,方便运行过程中同步查看返回信息。
  关于lzdm.lua文件如何存放才能进行正常调试及本地运行脚本调用的问题,咸鱼锋为方便大家食用,将PC端,Android端以及IOS端的存放路径写在按键精灵lua插件在PC/Android/IOS端存放位置一文中,请根据实际情况自行查阅,已经过实际测试,放心食用。

-END-
最后修改:2019 年 08 月 05 日 12 : 22 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论