<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      正在做的項(xiàng)目為一個(gè)類似于代駕的項(xiàng)目
      實(shí)在沒(méi)什么好總結(jié)的 項(xiàng)目大量使用騰訊云技術(shù)
      我單抽出來(lái)一個(gè)身份/駕駛證認(rèn)證技術(shù)模塊(人臉檢驗(yàn))

      前面肯定會(huì)碰到很多問(wèn)題 都一一總結(jié)
      我就單抽出來(lái)一個(gè)比較困擾的問(wèn)題:
      地圖無(wú)法加載使用

      真機(jī)調(diào)試 Error: 系統(tǒng)錯(cuò)誤,錯(cuò)誤碼:80082,get plugin(id: wx76a9a06e5b4e693e, version: 1.0.10) failed, permission deny [20250922 21:18:01][wxb35eca7bf02a0244]
      

      image

      比如想要得到小程序以上加載地圖插件
      需要申請(qǐng)接口插件

      image

      想必你申請(qǐng)肯定會(huì)遇到很xx的問(wèn)題:
      image
      image

      參考:https://zhuanlan.zhihu.com/p/576989072

      我直接給出類似圖片 按照上述話術(shù)寫即可 大概率會(huì)通過(guò)(僅限于地圖申請(qǐng)接口)
      申請(qǐng)權(quán)限

      然后回歸正題 無(wú)法加載是原項(xiàng)目未更新 早就迭代了
      此版本不再適配 參考官方文檔https://lbs.qq.com/miniProgram/demoCenter/wxGuide/plugin/citySelector

      修改如下
      image


      再看 騰訊云的認(rèn)證功能使用
      1.首先申請(qǐng)接口

      image
      可以參考文檔快速上手:https://cloud.tencent.com/document/product/866/34681

      2.注入依賴

              <dependency>
                  <groupId>com.tencentcloudapi</groupId>
                  <artifactId>tencentcloud-sdk-java</artifactId>
              </dependency>
      

      3.編寫使用
      在開(kāi)始編寫之前 我需要再次闡述一下項(xiàng)目結(jié)構(gòu) 就當(dāng)復(fù)習(xí)了 因?yàn)檫@個(gè)功能是抽出于一個(gè)項(xiàng)目中的
      image

      數(shù)據(jù)回顯 用VO包裝
      例如:
      @Data
      public class IdCardOcrVo {
      
      	@Schema(description = "姓名")
      	private String name;
      
      	@Schema(description = "性別 1:男 2:女")
      	private String gender;
      
      	@Schema(description = "生日")
      	private Date birthday;
      
      	@Schema(description = "身份證號(hào)碼")
      	private String idcardNo;
      
      	@Schema(description = "身份證地址")
      	private String idcardAddress;
      
      	@Schema(description = "身份證有效期")
      	private Date idcardExpire;
      
      	@Schema(description = "身份證正面")
      	private String idcardFrontUrl;
      	@Schema(description = "身份證正面回顯")
      	private String idcardFrontShowUrl;
      
      	@Schema(description = "身份證背面")
      	private String idcardBackUrl;
      	@Schema(description = "身份證背面回顯")
      	private String idcardBackShowUrl;
      }
      

      service模塊

      controller:
          @Operation(summary = "身份證識(shí)別")
          @PostMapping("/idCardOcr")
          public Result<IdCardOcrVo> idCardOcr(@RequestPart("file") MultipartFile file) {
              IdCardOcrVo idCardOcrVo = ocrService.idCardOcr(file);
              return Result.ok(idCardOcrVo);
          }
      
      service:
      IdCardOcrVo idCardOcr(MultipartFile file);
      

      實(shí)現(xiàn)類參考官方給的文檔:

      image
      注意我上述標(biāo)記 檢驗(yàn)圖片是用字符串來(lái)檢驗(yàn)的

      Impl:
       public IdCardOcrVo idCardOcr(MultipartFile file) {
                  //圖片轉(zhuǎn)換base64格式字符串
                  byte[] base64 = Base64.encodeBase64(file.getBytes());
                  String fileBase64 = new String(base64);
      
                  // 實(shí)例化一個(gè)認(rèn)證對(duì)象,入?yún)⑿枰獋魅腧v訊云賬戶 SecretId 和 SecretKey,此處還需注意密鑰對(duì)的保密
                  Credential cred = new Credential(tencentCloudProperties.getSecretId(),
                                                   tencentCloudProperties.getSecretKey());
                  // 實(shí)例化一個(gè)http選項(xiàng),可選的,沒(méi)有特殊需求可以跳過(guò)
                  HttpProfile httpProfile = new HttpProfile();
                  httpProfile.setEndpoint("ocr.tencentcloudapi.com");
                  // 實(shí)例化一個(gè)client選項(xiàng),可選的,沒(méi)有特殊需求可以跳過(guò)
                  ClientProfile clientProfile = new ClientProfile();
                  clientProfile.setHttpProfile(httpProfile);
                  // 實(shí)例化要請(qǐng)求產(chǎn)品的client對(duì)象,clientProfile是可選的
                  OcrClient client = new OcrClient(cred,tencentCloudProperties.getRegion(), clientProfile);
                  // 實(shí)例化一個(gè)請(qǐng)求對(duì)象,每個(gè)接口都會(huì)對(duì)應(yīng)一個(gè)request對(duì)象
                  IDCardOCRRequest req = new IDCardOCRRequest();
                  //設(shè)置文件
                  req.setImageBase64(fileBase64);
      
                  // 返回的resp是一個(gè)IDCardOCRResponse的實(shí)例,與請(qǐng)求對(duì)象對(duì)應(yīng)
                  IDCardOCRResponse resp = client.IDCardOCR(req);
      
                  //轉(zhuǎn)換為IdCardOcrVo對(duì)象
                  IdCardOcrVo idCardOcrVo = new IdCardOcrVo();
                  if (StringUtils.hasText(resp.getName())) {
                      //身份證正面
                      idCardOcrVo.setName(resp.getName());
                      idCardOcrVo.setGender("男".equals(resp.getSex()) ? "1" : "2");
                      idCardOcrVo.setBirthday(DateTimeFormat.forPattern("yyyy/MM/dd").parseDateTime(resp.getBirth()).toDate());
                      idCardOcrVo.setIdcardNo(resp.getIdNum());
                      idCardOcrVo.setIdcardAddress(resp.getAddress());
      
                      //上傳身份證正面圖片到騰訊云cos
                      CosUploadVo cosUploadVo = cosService.upload(file, "idCard");
                      idCardOcrVo.setIdcardFrontUrl(cosUploadVo.getUrl());
                      idCardOcrVo.setIdcardFrontShowUrl(cosUploadVo.getShowUrl());
                  } else {
                      //身份證反面
                      //證件有效期:"2010.07.21-2020.07.21"
                      String idcardExpireString = resp.getValidDate().split("-")[1];
                      idCardOcrVo.setIdcardExpire(DateTimeFormat.forPattern("yyyy.MM.dd").parseDateTime(idcardExpireString).toDate());
                      //上傳身份證反面圖片到騰訊云cos
                      CosUploadVo cosUploadVo = cosService.upload(file, "idCard");
                      idCardOcrVo.setIdcardBackUrl(cosUploadVo.getUrl());
                      idCardOcrVo.setIdcardBackShowUrl(cosUploadVo.getShowUrl());
                  }
                  return idCardOcrVo;}
      

      基本沒(méi)啥可說(shuō)的 三件套走 照著官網(wǎng)文檔即可

      gateway模塊

       @PostMapping(value = "/ocr/idCardOcr", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
          Result<IdCardOcrVo> idCardOcr(@RequestPart("file") MultipartFile file);
      

      web模塊

      controller和service和service模塊一樣沒(méi)啥好說(shuō)的
          @Override
          public IdCardOcrVo idCardOcr(MultipartFile file) {
              Result<IdCardOcrVo> ocrVoResult = ocrFeignClient.idCardOcr(file);
              IdCardOcrVo idCardOcrVo = ocrVoResult.getData();
              return idCardOcrVo;
          }
      

      實(shí)現(xiàn)后檢驗(yàn):
      Screenshot 2025-10-11 1

      在進(jìn)行登錄的時(shí)候數(shù)據(jù)出現(xiàn)這個(gè)小問(wèn)題:
      com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed
      MySQL 連接時(shí)常見(jiàn)的公鑰檢索問(wèn)題
      最新版mysql的版本問(wèn)題 需要設(shè)置一些 在配置文件加入
      useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC】
      

      記得修改nacos上傳的配置文件

      posted on 2025-10-11 16:39  蒸餃  閱讀(23)  評(píng)論(0)    收藏  舉報(bào)



      主站蜘蛛池模板: 久久99国产精品尤物| 乱60一70归性欧老妇| 免费观看全黄做爰大片| 国产精品色哟哟在线观看| 又爽又黄又无遮挡的视频| 国产三级国产精品久久成人| 国语精品一区二区三区| 国产美女裸身网站免费观看视频| 丰满少妇内射一区| 亚洲成人资源在线观看| 国精品午夜福利视频不卡| 婷婷四虎东京热无码群交双飞视频| 色婷婷欧美在线播放内射| 可以在线观看的亚洲视频| 99re热视频这里只精品| 亚洲国产一区二区三区久| 国产360激情盗摄全集| 性无码专区无码| 五月婷婷深开心五月天| 极品少妇无套内射视频| 中文在线最新版天堂| 青青草无码免费一二三区| 日日碰狠狠添天天爽五月婷| 精品人妻中文字幕在线| 午夜一区二区三区视频| 人妻内射一区二区在线视频| 国产欧美亚洲精品第一页在线| 久久精品免费无码区| 欧美日韩精品一区二区视频| 亚洲女同精品久久女同| 久久精品国产福利一区二区| 风流老熟女一区二区三区| 热久久美女精品天天吊色| 国产美女直播亚洲一区色| 西西人体44WWW高清大胆| 亚洲精品国产一二三区| 国产精品成人一区二区三| 亚洲高清WWW色好看美女| 四虎国产精品久久免费地址| 好男人社区影视在线WWW| 丰满老熟妇好大bbbbb|