小程序实现百度AI 银行卡识别功能

简介: 1.最近突然就想玩玩AI,资料也不多,干脆就找了简单的百度免费AI玩玩2.百度文档看的头疼,眼花,还是不如直接上手干3其实所有接口用法差不多,除了人脸识别需要但的sdk4.最终发现 最后使用的时候 用了不少 Promise

1. 前言


1.最近突然就想玩玩AI,资料也不多,干脆就找了简单的百度免费AI玩玩

2.百度文档看的头疼,眼花,还是不如直接上手干

3其实所有接口用法差不多,除了人脸识别需要但的sdk

4.最终发现 最后使用的时候 用了不少 Promise


2. 准备工作


1.注册百度AI账号 ,按步骤操作

2.创建应用

3.access_token 获取 主要熟练 api用法


3. 大概的界面


1.

`O91]9X5%G]4OQPLZJ38HNG.png


2.当然不会上传我的银行卡了哈哈


4. 布局代码



<view>
  <button type="primary" bindtap="showCamera">拍照识别</button>
  <button type="primary" bindtap="openLocalImage">图片识别</button>
  <!-- 相机标签 -->
  <camera wx:if="{{showCamera}}" device-position="{{pos}}">
    <cover-view hover-class="opa" bindtap="getPhoto"></cover-view>
    <cover-image bindtap="changePos" src="/public/changeCamera.png"></cover-image>
  </camera>
  <image src="{{imgUrl}}" mode="widthFix" bindlongpress="savePhoto"></image>
  <view class="hint" wx:if="{{imgUrl}}">长按保存图片</view>
</view>



5. 打开本地相册



// 打开本地相册
  async openLocalImage() {
    console.log("打开相册")
    let res = await wx.chooseImage({
      count: 1,
      sourceType: ['album'],
    })
    this.setData({
      imgUrl: res.tempFilePaths[0]
    })
    let res2 = await this.base64toUrlencode(res.tempFilePaths[0])
    let res3 = await this.recognition(res2)
    console.log('------识别------res3', res3)
  },



6.  百度AI 接口参数 要求


1.

1(6~]3P70NU@J2MVP$CW1H2.png




7. 图片转为base64再进行urlencode编码



base64toUrlencode(imgPath) {
    return new Promise((resolve, reject) => {
      wx.getFileSystemManager().readFile({
        filePath: imgPath,
        encoding: 'base64',
        success: (res2) => {
          resolve(decodeURI(res2.data))
        },
        fail(error) {
          reject(error)
        }
      })
    })
  },



8. 调用识别接口



recognition(imgPath) {
    return new Promise((resolve, reject) => {
      wx.request({
        url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard?access_token=' + this.data.access_token,
        method: 'POST',
        header: {
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        data: {
          image: imgPath
        },
        success(res) {
          wx.showToast({
            title: '识别成功',
          })
          resolve(res)
        },
        fail(error) {
          wx.showToast({
            icon: 'error',
            title: '识别失败',
          })
          reject(error)
        },
      })
    })
  },

1.现在这个只是简写 大概的逻辑,具体的接口返回参数

2.

`3TF01)AZ@Y0OUQ`LJ9$(JP.png



9. 当然这个access_token 我在 onLoad的时候获取了


1.client_id

2.client_secret

3.这2个都需要创建应用的时候 生成


getToken() {
    wx.request({
      url: 'https://aip.baidubce.com/oauth/2.0/token',
      data: {
                 grant_type: 'client_credentials',
                 client_id: 'xxxxxxxxxxxxxxxxxxxxx',//用你创建的应用的API Key
                 client_secret: 'xxxxxxxxxxxxxxxxxxxxx'//用你创建的应用的Secret Key
               },
       header: {
                 'Content-Type': 'application/json' // 默认值
               },
      success: (res) => {
        console.log('res-----------', res)
        this.setData({
          access_token: res.data.access_token
        })
      },
      fail(error) {
        console.log('失败', error)
      }
    })
  },



10.打开相机



// 显示相机的函数 (默认在wxml中添加camera组件, 通过变量控制它的显示和隐藏)
  showCamera() {
    console.log("显示相机")
    this.setData({
      showCamera: true
    })
  },



11. 点击拍照



// 点击拍照的函数
  async getPhoto() {
    //创建 camera 上下文 CameraContext 对象。
    let context = wx.createCameraContext(this)
    // 拍摄照片
    try {
      let res = await context.takePhoto({
        quality: "low",
      })
      // res.tempImagePath 字段是照片的本地缓存路径
      this.setData({
        showCamera: false, // 隐藏相机
        imgUrl: res.tempImagePath
      })
      this.base64toUrlencode(res.tempImagePath)
      let res2 = await this.base64toUrlencode(res.tempImagePath)
      let res3 = await this.recognition(res2)
      console.log('------识别------res3', res3)
    } catch (error) {
      console.log("内存不足,拍照失败", err)
    }
  },



12. 长按保存



savePhoto() {
    if (!this.data.imgUrl) return;
    // 把图片保存到系统相册
    wx.saveImageToPhotosAlbum({
      filePath: this.data.imgUrl,
      success() {
        wx.showToast({
          title: '图片已保存',
        })
      }
    })
  },



13.切换摄像头



changePos() {
    this.setData({
      pos: this.data.pos == "back" ? "front" : "back"
    })
  },




相关文章
|
10月前
|
人工智能 自然语言处理 前端开发
深度解析Playwright MCP:功能、优势与挑战,AI如何提升测试效率与覆盖率
Playwright MCP通过AI与浏览器交互,实现自然语言驱动的自动化测试。它降低门槛、提升效率,助力测试工程师聚焦高价值工作,是探索性测试与快速验证的新利器。
|
10月前
|
SQL 人工智能 搜索推荐
Dataphin功能Tips系列(71)X-数据管家:数据资产运营的「AI外挂」
在企业数据治理中,数据资产规模庞大、字段繁多,手动录入效率低且易出错。Dataphin推出「X-数据管家」,利用大模型智能生成标签、描述及字段类型等信息,支持一键批量上架,大幅提升资产运营效率。
334 0
人工智能 移动开发 JavaScript
486 0
|
10月前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
10月前
|
存储 人工智能 测试技术
用AI提升测试效率:智能体平台的「需求文档管理」功能上线啦!
霍格沃兹测试开发学社推出AI智能体测试平台,全新「需求文档管理」功能助力高效测试准备。集中管理需求文档,支持多种上传方式,智能生成测试用例,提升测试效率与准确性,助力迈向智能化测试新时代。
|
存储 人工智能 前端开发
从零构建智能对话助手:LangGraph + ReAct 实现具备记忆功能的 AI 智能体
本文系统介绍了基于 LangGraph 框架构建具备记忆能力的 ReAct(Reasoning + Action)智能体的技术实现方法。ReAct 智能体结合语言模型的推理能力与外部工具的执行能力,通过“思考-行动-观察”循环机制,实现复杂任务的自主处理。文章详细讲解了 LangGraph 的图结构设计、状态管理、工具集成与记忆系统等关键技术,并通过代码示例演示了从基础工作流到高级智能体系统的构建过程。最终实现的智能体具备多轮对话、工具调用、结果反馈与上下文记忆能力,为开发下一代智能应用提供了技术基础。
1693 1
|
人工智能 测试技术 API
Apipost vs Apifox:AI能力及功能对比
2025年,AI技术深度融入企业业务系统,成为提升生产力与竞争力的关键。本文对比了API管理工具Apipost与Apifox的AI能力。Apipost在智能识别、测试用例生成、脚本函数生成及文档处理等方面表现突出,显著提升开发效率与质量;而Apifox功能相对局限,依赖手动操作,难以满足高要求的现代开发需求。Apipost凭借全面的AI赋能,正引领API开发迈向智能化新时代。
205 0
|
人工智能 开发者
阿里云百炼X支付宝:「AI打赏」功能上线,Agent变现更灵活🎉🎉🎉
阿里云百炼平台联合支付宝,推出业内首个Agent「AI打赏」功能,开发者可为应用一键配置赞赏功能,用户打赏金额将直接转入开发者支付宝账户,助力快速变现。
1207 1
|
人工智能 缓存 Java
用 AI 搭建秒杀平台后端,一周搞定所有功能(附超详细踩坑记录)
本文分享如何借助AI技术快速搭建电商秒杀平台后端。通过飞算JavaAI,从需求分析到代码生成全流程智能化,大幅提高开发效率。文章详细记录了技术栈选择(Java、Spring Boot、MySQL、Redis)、系统架构设计、缓存机制优化、数据一致性保障及测试调优等环节,解决高并发难题,助开发者高效完成秒杀平台构建并规避常见坑点。
|
人工智能 自然语言处理 搜索推荐
JeecgBoot AI 应用开发平台,AIGC 功能介绍
JeecgBoot推出AIGC功能模块,包含AI应用开发平台与知识库问答系统,支持AI流程编排、模型管理、知识库训练及向量库对接。基于LLM大语言模型,提供智能对话、RAG检索增强生成等功能,兼容多种大模型(如DeepSeek、Qwen等)。平台结合低代码与AIGC,适用于复杂业务场景,支持快速原型到生产部署,助力用户打造个性化智能体,如“诗词达人”或“翻译助手”,并可嵌入第三方系统提升交互能力。项目开源,欢迎体验与交流。
598 0
JeecgBoot AI 应用开发平台,AIGC 功能介绍