收藏
回答

做微信公众号网页开发,OCR识别可以调用吗?

请教各位了,这个OCR识别 能在公众号的网页开发中调用吗 还有那个ocr插件也能在网页中调用吗?现在的情况是不做小程序的开发,需要在网页中直接调用微信OCR识别,直接上传的同时识别身份证并显示相关信息,希望大家给我个答复,在此谢谢了。

回答关注问题邀请回答
收藏

1 个回答

  • 黄秀杰
    黄秀杰
    07-18

    那个ocr插件”是哪个?自带有这个的插件吗?我之前是调用腾讯ai接口(https://cloud.tencent.com/product/ocr-catalog?fromSource=gwzcw.3561160.3561160.3561160&utm_medium=cpc&utm_id=gwzcw.3561160.3561160.3561160)的,这种的话,就不分网页还是小程序了,以我的小程序为例,这里我选取了通用识别与银行卡识别


    const utils = require('../../../utils/utils')

    Page({

      data: {

        items: [

          {value: 'ocr_generalocr', title: '通用', checked: 'true'},

          {value: 'ocr_creditcardocr', title: '银行卡'}

        ],

        type: 'ocr_generalocr'

      },

      radioChange: function(e) {

        this.setData({

          type: e.detail.value

        });

      },

      choose() {

        wx.chooseImage({

          success: (res) => {

            let file = res.tempFilePaths[0]

            this.setData({

              file: file

            })

            let base64 = wx.getFileSystemManager().readFileSync(file, 'base64')

            // console.log(base64)

            let image = 'data:image/png;base64,' + base64

            this.scan(base64)

            wx.showLoading({

              title: '正在识别'

            })

          }

        })

      },

      scan(image) {

        let params = {

          image: image,

          time_stamp: (Date.now() / 1000).toFixed(),

          nonce_str: Math.random()

        }

        this.upload(utils.signedParam(params), this.data.type)

      },

      upload(params, type) {

        // console.log(params)

        wx.request({

          url: `https://api.ai.qq.com/fcgi-bin/ocr/${type}`, // 仅为示例,并非真实的接口地址

          data: params,

          method: 'POST',

          header: {

            'content-type': 'application/x-www-form-urlencoded' // 默认值

          },

          success: (res) => {

            wx.hideLoading()

            console.log(res.data)

            if (res.data.data.item_list.length === 0) {

              wx.showModal({

                title: '识别失败',

                content: '这道题有点难',

                showCancel: false

              })

            } else {

              let content = ''

              res.data.data.item_list.forEach((item) => {

                content += item.itemstring

              })

              this.setData({

                info: res.data.data.item_list,

                content: content

              })

            }

          }

        })

      },

      copy(e) {

        wx.setClipboardData({

          data: e.currentTarget.dataset.str,

          success: function (res) {

            wx.showToast({

              title: '复制成功'

            })

          }

        })

      },

      onShareAppMessage() {

    // 微信分享

    return {

    title: '银行卡OCR',

    desc: '智能识别银行卡号'

    }

    }

    })



    全部源码可以看我的demo,托管在gitee上,https://gitee.com/laeser/demo-weapp

    07-18
    有用 1
    回复 12
    • 杨扬
      杨扬
      07-18
      谢谢您的答复,我现在是php的网页开发,也能实现吗?我看的是这个: https://developers.weixin.qq.com/community/servicemarket/detail/000ce4cec24ca026d37900ed551415,插件是这个:https://developers.weixin.qq.com/community/servicemarket/detail/0006eeb6160ce8429fb8cd3995b815,不知道是不是只适用于小程序,对这些不是很清楚,麻烦帮我再看下,谢谢了
      07-18
      回复
    • 黄秀杰
      黄秀杰
      07-18回复杨扬
      识别服务不分小程序还是公众号,也不分php还是别的后端实现,都是http请求到api,所以都能通用;然而后面的插件,确实只适合小程序而已
      07-18
      回复
    • 杨扬
      杨扬
      07-19回复黄秀杰
      谢谢,我现在调用的就是公众号这个:https://developers.weixin.qq.com/doc/offiaccount/Intelligent_Interface/OCR.html,但是不成功,前端通过微信的上传接口传给后台这个图片地址localData,还有前端生成的access_token也传过去,后台请求api,下面的就是后台请求的代码:
       $localData = $_POST['localData'];
       $access_token = $_POST['access_token'];
       $url = "https://api.weixin.qq.com/cv/ocr/idcard?img_url=".$localData."&access_token=".$access_token;
              $data = array(
               
                      "data" => array(
                              "img_url" => $localData
                              
                      )
              );
              $TOKEN1=http_request($url,urlencode(json_encode($data)));

      var_dump($TOKEN1);


      前端的代码如下:
       wx.uploadImage({
                            localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
                            isShowProgressTips: 1, // 默认为1,显示进度提示
                            success: function (res) {
                              var serverId = res.serverId; // 返回图片的服务器端ID
                              $.ajax({
                                  url: “imgdeal1.php",
                                  type: "post",
                                  async: "false",
                                  dataType: "html",
                                  data: {
                                      localData: localIds,
                                      access_token:token
                                  },
                                  success: function (data) {
                                      alert(data);
                                    
                                  },
                                  error: function (XMLHttpRequest, textStatus, errorThrown) {
                                      alert(errorThrown);
                                  },
                              })
                            }
                      });
      07-19
      回复
    • 黄秀杰
      黄秀杰
      07-19回复杨扬
      有什么错误提示吗?
      07-19
      回复
    • 杨扬
      杨扬
      07-19
      返回错误:{errcode:101000,errmsg:invalid image url hint: [duugSA06353442]}
      07-19
      回复
    查看更多(7)
登录 后发表内容
问题标签