微信小步伐上怎样利用图形验证码

[复制链接]
发表于 2025-10-21 08:40:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、php服务器天生图片验证码的代码片断如下:

注意红框部分的代码,天生的是ArrayBuffer范例的二进制图片
2、表现验证码
表现验证码,不要直接image组件加上src表现,那样拿不到cookie,没有办法做图形验证码的验证,必要通过接口的方法获取,上接口代码如下:
  1. function get_verify_code(url, success, fail, complete) {
  2.         if (request_status == true) {
  3.                 return;
  4.         }
  5.         request_status = true;
  6.         let header = {
  7.                 'Content-Type': 'application/x-www-form-urlencoded'
  8.         };
  9.         uni.request({
  10.                 url: url,
  11.                 timeout: 60000,
  12.                 header: header,
  13.                 responseType: 'arraybuffer',//这个地方不要写错
  14.                 method: 'GET',
  15.                 success: res => {
  16.                         request_status = false;
  17.                         if (res.statusCode == 200) {
  18.                                 let cookieKey = '';
  19.                                 let data = res.data;//拿的图片
  20.                                 // #ifdef MP-WEIXIN
  21.                                 if (res && res.header && res.header['Set-Cookie']) {
  22.                                         cookieKey = res.header['Set-Cookie'];//拿cookie
  23.                                 }
  24.                                 // #endif
  25.                                 success({"data":data,"cookieKey":cookieKey});
  26.                         } else if (res.statusCode == 404) {
  27.                                 success({"success": false,"field": "fail_net","message": "请求的资源不存在"});
  28.                         } else if (res.statusCode == 500) {
  29.                                 success({"success": false,"field": "fail_net","message": "内部服务器错误"});
  30.                         } else {
  31.                                 success({"success": false,"field": "fail_net","message": "请求异常"});
  32.                         }
  33.                 },
  34.                 fail: (e) => {
  35.                         if (request_status == true) {
  36.                                 request_status = false;
  37.                         }
  38.                         fail(e);
  39.                 },
  40.                 complete: (e) => {
  41.                         if (request_status == true) {
  42.                                 request_status = false;
  43.                         }
  44.                         complete(e);
  45.                 }
  46.         });
  47. }
复制代码
表现图片的利用代码如下:
  1. get_verify_code(v) {
  2.                                 let url = `${base_url}get_verify_code/${v}`;
  3.                                 //console.log('url:'+url);
  4.                                 this.$net.get_verify_code(
  5.                                         url,
  6.                                         res => {
  7.                                                 const base64 = uni.arrayBufferToBase64(res.data);
  8.                                                 this.imageData  = `data:image/png;base64,${base64}`;
  9.                                                 // #ifdef MP-WEIXIN
  10.                                                 if (res.cookieKey) {
  11.                                                         uni.setStorageSync('cookieKey', res.cookieKey);
  12.                                                 }
  13.                                                 // #endif
  14.                                         },
  15.                                         () => {
  16.                                         },
  17.                                         () => {
  18.                                         }
  19.                                 );
  20.                         },
复制代码
如许图片就可以正常表现了,提交的方法里要带上cookie,如许就可以验证验证码了。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表