- 微信人脸核身接口能力怎么得到供司法采信的核验通过或者不通过的报告?
微信人脸核身接口能力怎么得到供司法采信的核验通过或者不通过的报告?同上,就是小程序使用了微信人脸核身接口能力。在可能遇到的需要司法机关提供核身证据的时候,怎么提供?
11-14 - 微信人脸核身接口能力中再次获取核验结果api返回的数据中md5怎么解码?
请问四、再次获取核验结果api第四步,返回的数据中:id_card_number_md5string身份证号的md5(最后一位X为大写)name_utf8_md5string姓名MD5,怎么效验?或者说,通过认证了,拿到的这两个md5,怎么解码成姓名和身份证?
11-14 - 小程序主体变更后重新备案,提示需要注销,选择哪种注销?
小程序主体变更后重新备案,提示需要注销后才能重新备案,但是进入注销页面后,有三种注销,分别是注销微信小程序,注销小程序,注销主体和小程序,到底是选择哪种啊?我现在是对小程序主体进行了变更,系统提示需要变更备案。
10-20 - 人脸核身接口调用后,返回的verifyResult,怎么进一步获取验身认证的结果信息?
人脸核身接口调用后,返回的verifyResult,怎么进一步获取验身认证的结果信息?同时怎么获取可用于法院诉讼等场景使用的认证结果报告?
09-26 - 微信小程序调用人脸验身接口,怎么获取验身通过后的返回凭证?
开发的微信小程序想调用人脸验身接口,用于在某些特殊场景对用户进行人脸验证,用户人脸验证通过后,怎么获取返回的是一串数字,怎么获取返回凭证,用于后续后续提取凭证?
09-25 - 静态网站 H5 跳小程序,怎么带参数进入小程序指定页面?
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() switch (event.action) { case 'getUrlScheme': { return getUrlScheme(event.options) } } return 'action not found' } async function getUrlScheme(options) { // 使用环境共享时,需要注意此处传入 appid 来保证打开的是调用方小程序,否则默认将打开资源方小程序 // 参考如下: // cloud.openapi({ appid: wxContent.FROM_APPID }).urlscheme.generate return cloud.openapi.urlscheme.generate({ jumpWxa: { path: '/page/component/index', // <!-- replace --> query: '', }, // 如果想不过期则置为 false,并可以存到数据库 isExpire: true, // 一分钟有效期 expireTime: parseInt(Date.now() / 1000 + 60), }) } 这个query: '',能否加入参数,加入的参数的格式?我尝试加入参数后,本地云函数调式,发现返回的URL Scheme是一串'weixin://dl/business/?t= \*TICKET\*', 看不出带的参数
09-25 - 云开发数据库查询条件where中_.in以数组为查询关键字后,不能模糊查询?
使用_.in 以数组中的所有字段为关键字,对数据库进行查询,但是不能使用正则表达式进行模糊查询,尝试通过for循环,将数组中的每一个字段单独模糊查询后,再将每一次查询结果进行拼接汇总后输出,但是又遇到for循环里有向数据库发起查询请求的异步申请,而导致最后的查询返回结果的数组拼接有问题。请教各位大神,应该怎么解决这个问题啊? for (let index = 0; index < resKeyWord.length; index++) { console.log('当前的keyWord是:',resKeyWord[index]) const legalTerms = db.collection('legalTerms').where({ keyWord:{ $regex:'.*'+ resKeyWord[index], $options: 'i' } }).orderBy('checkNO', 'desc') .get({ success(res) { console.log('当前数组查询的返回值是:',res.data) oldTest = oldTest.concat(res.data) console.log('oldTest:',oldTest) } }) } console.log('oldTest:',oldTest) 最后一行打印出的oldTest是空的,意味着for循环还没有执行完,就执行了最后一行的打印了,尝试了各种方法,都解决不了,感谢各位支招。 或者有没有什么方法直接支持对resKeyWord这个数组对每一个字段进行模糊查询?
2023-04-03 - 数据库查询_.in不支持对数组中每个元素的模糊查询?怎么办
云开发数据库,已包含多个字符串的数组为关键字,对数据库数据进行检索,使用了 db.collection('legalTerms').where({ category: _.in(queryConten) }) for (let index = 0; index < resKeyWord.length; index++) { console.log('当前的keyWord是:',resKeyWord[index]) const legalTerms = db.collection('legalTerms').where({ keyWord:{ $regex:'.*'+ resKeyWord[index], $options: 'i' } }).orderBy('checkNO', 'desc') .get({ success(res) { console.log('当前数组查询的返回值是:',res.data) oldTest = oldTest.concat(res.data) console.log('oldTest:',oldTest) } }) } queryConten是一个数组,但是想实现的是,将数组中的每一个字符串都进行模糊查询,好像_.in没有这个功能,应该怎么办啊? 我现在想到的是使用for循环对数组每一个元素进行模糊检索,再将每一次检索结果拼接,最后输出,但是中间又发生了for循环中有异步请求,导致拼接结果不完整的问题。 请各位大神支招
2023-04-03 - 云函数调用“office-to-pdf”库,本地调试成功,但真机调试失败?
云函数调用“office-to-pdf”库,将word的buffer转换成PDF文件,本地调试成功,但真机调试失败,真机调试因为不能看到云函数的本地调试打印,只能看到真机调试时的打印报错如下: message: "errCode: -401003 api parameter type error | errMsg: parameter.fileID should be string instead of undefined;", errCode: -401003, errMsg: "parameter.fileID should be string instead of undefined;", requestID: , line: 1, …} 调用云函数的js片段如下: imageToDocx(){ wx.showLoading({ title: '加载中', }) wx.cloud.callFunction({ // 云函数名称 name: 'imageToDocx', // 传给云函数的参数 data: { downloadFileID: this.data.downloadFileID, //CDN当事人签字图片 signPathLitigantURL: wx.cloud.CDN({ type: 'filePath', filePath: this.data.signPathLitigant, // 临时文件的路径 }), //CDN执法人员签字图片 signPathOfficersURL: wx.cloud.CDN({ type: 'filePath', filePath: this.data.signPathOfficers, // 临时文件的路径 }), sealURL: this.data.sealURL }, }) .then(res => { console.log('云存储文件的ID是:',res) wx.cloud.downloadFile({ fileID: res.result.fileID, success: res => { // 返回并存储临时文件路径 console.log('下载PDF路径:',res.tempFilePath) this.setData({ exportTempFilePath: res.tempFilePath }) wx.openDocument({ filePath: res.tempFilePath, showMenu: 'true', success: function (res) { console.log('打开文档成功') wx.hideLoading() } }) }, fail: console.error }) }) .catch(res=> { console.log('执行出错:',res) wx.hideLoading() if (this.data.previewTempFilePath=='') { var showModalContent = '未生成预览文书' } else { if (typeof(this.data.signPathLitigant)=='undefined' || typeof(this.data.signPathOfficers)=='undefined') { var showModalContent = '未生成手写签名' } else { var showModalContent = '未知错误' } } console.log(showModalContent) wx.showModal({ title: '导出失败', showCancel: false, content: showModalContent, success (res) { } }) }) }, 这里再把云函数的代码粘贴如下: // 云函数入口文件 const cloud = require('wx-server-sdk') const { createReport } = require('docx-templates') const fs = require('fs') const path = require('path') const dayjs = require('dayjs') const axios = require("axios") const toPdf = require('office-to-pdf') cloud.init({ env: 'cloud1-7g1pdoii23b288bf' }) // 云函数入口函数 exports.main = async (event, context) => { console.log(event) const res = await cloud.downloadFile({ fileID: event.downloadFileID, }) const template = res.fileContent console.log('当前下载读取文件成功') //导入当事人签字图片并转码 let signBuffer1 = await axios({ method: 'get', url: event.signPathLitigantURL, responseType: 'arraybuffer', }) const signPathLitigant64 = new Buffer.from(signBuffer1.data, 'binary').toString('base64') //导入执法人员签字图片并转码 let signBuffer2 = await axios({ method: 'get', url: event.signPathOfficersURL, responseType: 'arraybuffer', headers: { "Content-Type": "*" } }) const signPathOfficer64 = new Buffer.from(signBuffer2.data, 'binary').toString('base64') //导入印章图片并转码 let signBuffer3 = await axios({ method: 'get', url: event.sealURL, responseType: 'arraybuffer', headers: { "Content-Type": "*" } }) const seal64 = new Buffer.from(signBuffer3.data, 'binary').toString('base64') //开始编译插入 const wordBuffer = await createReport({ template, data: { //变量 }, additionalJsContext: { getMapPicture1: async () => { const res = signPathLitigant64; return { width: 3, height: 1.6875, data: res, extension: '.png', layout: 'Text wrapping' }; }, getMapPicture2: async () => { const res = signPathOfficer64; return { width: 3, height: 1.6875, data: res, extension: '.png' }; }, getMapPicture3: async () => { const res = seal64; return { width: 4, height: 4, data: res, extension: '.png', layout: 'Text wrapping' }; }, }, cmdDelimiter: ['+', '+'] //以+作为变量分隔符 }) const preDir = dayjs().format("YYYYMMDD");//日期 console.log('当前的日期是',preDir) const stringRandom = require('string-random') const randfilename = stringRandom(32)//随机文件名 const cloudPath = `${preDir}/${randfilename}.pdf`//文件 console.log('当前云路径是',cloudPath) //开始生成PDF文件 try { const pdfBuffer = await toPdf(wordBuffer) console.log('PDF生成成功') //上传云存储 return await cloud.uploadFile({ cloudPath: cloudPath, fileContent: Buffer.from(pdfBuffer, 'base64') }) } catch (error) { return error } } 我的分析是因为云函数中间发生问题,导致没有返回云存储的PDF文件的fileID,所以这样报错,但是因为真机调试时看不到云函数执行中的打印,所以确实找不到问题在哪里,请各位大神指点,在线等,感谢!!!
2022-11-23 - 小程序怎么实现word转PDF?
请教各位大神,小程序怎么在云函数中实现word转pdf? 我尝试用了libreoffice-convert这个库,但是总是有问题,又不知道问题在哪里,把代码贴出来,请各位指教。 或者还有没有其他的方法啊? 感谢各位指点! // 云函数入口文件 const cloud = require('wx-server-sdk') const { createReport } = require('docx-templates') const fs = require('fs') const path = require('path') const dayjs = require('dayjs') const axios = require("axios") const libre = require('libreoffice-convert') libre.convertAsync = require('util').promisify(libre.convert) cloud.init({ env: 'cloud1-7g1pdoii23b288bf' }) // 云函数入口函数 exports.main = async (event, context) => { console.log(event) const res = await cloud.downloadFile({ fileID: event.downloadFileID, }) const template = res.fileContent console.log('当前下载读取文件成功') //导入当事人签字图片并转码 let signBuffer1 = await axios({ method: 'get', url: event.signPathLitigantURL, responseType: 'arraybuffer', }) const signPathLitigant64 = new Buffer.from(signBuffer1.data, 'binary').toString('base64') //导入执法人员签字图片并转码 let signBuffer2 = await axios({ method: 'get', url: event.signPathOfficersURL, responseType: 'arraybuffer', headers: { "Content-Type": "*" } }) const signPathOfficer64 = new Buffer.from(signBuffer2.data, 'binary').toString('base64') //导入印章图片并转码 let signBuffer3 = await axios({ method: 'get', url: event.sealURL, responseType: 'arraybuffer', headers: { "Content-Type": "*" } }) const seal64 = new Buffer.from(signBuffer3.data, 'binary').toString('base64') //开始编译插入 const buffer = await createReport({ template, data: { //变量 }, additionalJsContext: { getMapPicture1: async () => { const res = signPathLitigant64; return { width: 3, height: 1.6875, data: res, extension: '.png' }; }, getMapPicture2: async () => { const res = signPathOfficer64; return { width: 3, height: 1.6875, data: res, extension: '.png' }; }, getMapPicture3: async () => { const res = seal64; return { width: 4, height: 4, data: res, extension: '.png' }; }, }, cmdDelimiter: ['+', '+'] //以{}作为变量分隔符 }) //开始转换PDF const ext = '.pdf' const pdfBuf = await libre.convertAsync(buffer, ext, undefined); console.log('pdfBuf:',pdfBuf) const preDir = dayjs().format("YYYYMMDD");//日期 console.log('当前的日期是',preDir) const stringRandom = require('string-random') const randfilename = stringRandom(32)//随机文件名 const cloudPath = `${preDir}/${randfilename}.pdf`//文件 console.log('当前云路径是',cloudPath) return await cloud.uploadFile({ cloudPath: cloudPath, fileContent: pdfBuf }) }
2022-11-21