题目要求如下
实现思路
B1.电子邮件用node emailer 实现
B2.文字聊天/留言用客服消息实现
B3.题目后来改成可以导入财务报表放在小程序里 核心是通过wx.openDocument实现;自行取数定制化财务报表功能没有实现
B4.查询就是简单的云数据库查询
C.通过腾讯云开发的VatInvoiceOCR实现
具体操作
电子邮件用node emailer 实现
小程序发送电子邮件的方法在社区已经有老师分享过,不再赘述。这里分享一下邮件添加附件功能的实现:
首先node emailer官网在这里: https://nodemailer.com/about/
关于附件的官方文档 https://nodemailer.com/message/attachments/
attachments: [
{ // file on disk as an attachment
filename: 'text3.txt',
path: '/path/to/file.txt' // stream this file
},
]
上面是一小段例子,可以看到比较关键是path,所以关键就是把附件的path写活写正确就可以实现这个功能了。
邮件中插云开发相关
因为在这个云开发控制台的云存储里面,可以看到每个上传到云存储的文件,都有一个file id和下载地址。我们知道这个下载地址是可以在浏览器中打开,并且下载的。于是就考虑,只要这个path里放下载地址,就可以实现为邮件添加附件的功能。即我们每上传一个文件之后,把这个文件在云存储里的下载地址取到,传到用于发送邮件的云函数的attachments 的path里。
票据识别OCR(以增值税发票为例)
- 腾讯云开发已经有直接识别票据的了,在官网上搜索可以找到。
- 有一个“识别功能演示”的页面可以自己找图片尝试然后看到识别效果;在官方文档里有一个API Explorer 里可以生成nodejs代码,比较方便;然后有一个“数据结构”的页面可以查到各接口识别结果,链接在这里 https://cloud.tencent.com/document/api/866/33527
- 当时查资料还会点进去一个腾讯云V2版本的文字识别,接口用法啥的和V3的有区别,要注意不要搞混了
其他贯穿在作业中的思路
因为还有的要求可能需要查看/查询/打开在云数据库里的文件/图片,核心思路就是拿wx.cloud.getTempFileURL拿着file ID去拿下载链接的过程
作业总结
- 比较大的收获在于对js异步有了比较粗浅的认识,做的时候遇到写的代码没按我想的顺序执行,后来查资料问问题之后发现是因为没了解异步运行机制的原理。当时把一个wx.downloadFile放在主线程里,但是里面有一个要用到的参数被我放在了回调函数里,那因为是先执行主线程,主线程空了才去读“任务队列”,所以就一直报undefined之类的错。
- 还有就是要养成不管success还是fail都写完整的习惯,有的时候控制台上面也没有打出来,不能确定是没执行还是fail了还要重头去改,所以还是最好一开始就写完整
- 还有下载链接和文件的临时链接也要区分好,做的时候命名没命好全混在一起了改起来就只好疯狂打印,非常麻烦
感想与收获
anyway虽然总的逻辑不是很复杂,但是从题目到自己做出来,想通的过程还是花费了很长时间。第一个发布的小程序,审核也很快,头天下午提交的审核第二题早上十一点就收到了审核通过的消息,还挺开心的。
部分截图展示
其他
这个去年7月就写好了我以为我发了今天才发现它一直安静地躺在草稿箱里…
希望有大佬多多指教呀,有想要一起交流学习也可以评论私信一起讨论一下