[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"content:\u002Fposts\u002F2022\u002Fminiprogram-scancode-get-invoice-title":3,"surround:\u002Fposts\u002F2022\u002Fminiprogram-scancode-get-invoice-title":98},{"id":4,"title":5,"body":6,"canonical":74,"categories":75,"date":77,"description":74,"draft":78,"extension":79,"image":80,"meta":81,"navigation":82,"path":83,"permalink":74,"readingTime":84,"recommend":74,"references":74,"seo":89,"sitemap":90,"stem":91,"tags":92,"type":74,"updated":77,"__hash__":97},"content\u002Fposts\u002F2022\u002Fminiprogram-scancode-get-invoice-title.md","扫码获取微信抬头",{"type":7,"value":8,"toc":65},"minimark",[9,19,23,33,37,48,51,57],[10,11,12],"p",{},[13,14,18],"a",{"href":15,"rel":16},"https:\u002F\u002Fdevelopers.weixin.qq.com\u002Fdoc\u002Foffiaccount\u002FWeChat_Invoice\u002FQuick_issuing\u002FInterface_Instructions.html",[17],"nofollow","官方文档地址",[20,21,22],"h2",{"id":22},"实现步骤",[24,25,26,30],"ol",{},[27,28,29],"li",{},"前端扫码微信抬头，获取到返回的 result（链接）",[27,31,32],{},"后端实现解析链接内容接口，在后端部分调用公众号接口解析链接内容",[34,35,36],"h3",{"id":36},"前端部分处理",[38,39,45],"pre",{"className":40,"code":42,"language":43,"meta":44},[41],"language-html","\u003Cscript setup>\nimport { ref } from 'vue';\nconst result = ref('');\nconst sancode = () => {\n  uni.scanCode({\n    success(res) {\n      result.value = res.result;\n      console.log(result.value);\n      uni.request({\n        url: 'http:\u002F\u002Flocalhost:3020\u002Fapi\u002FgetInvoiceTitle',\n        method: 'POST',\n        data: { link: result.value },\n        success(invoiceTitle) {\n          console.log(invoiceTitle);\n        },\n        fail(e) {\n          console.log(e);\n        }\n      });\n    },\n    fail(e) {\n      console.log('e: ', e);\n    }\n  });\n};\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cview class=\"content\">\u003Cbutton @click=\"sancode\">获取扫码结果\u003C\u002Fbutton>\u003C\u002Fview>\n\u003C\u002Ftemplate>\n\n\u003Cstyle lang=\"scss\">\u003C\u002Fstyle>\n","html","",[46,47,42],"code",{"__ignoreMap":44},[34,49,50],{"id":50},"后端部分的处理",[52,53,54],"blockquote",{},[10,55,56],{},"这里的 APPID 和 SECRET 需要在公众号中获取",[38,58,63],{"className":59,"code":61,"language":62,"meta":44},[60],"language-js","import axios from \"axios\"\nimport Fastify from \"fastify\"\n\nimport { APPID, SECRET } from \".\u002Fconfig\"\n\nconst fastify = Fastify({ logger: true })\n\nfastify.post(\"\u002Fapi\u002FgetInvoiceTitle\", async (req, res) => {\n    const { link } = req.body\n    const access_token = await getAccessToken()\n    const data = await getInvoiceTitle(link, access_token)\n    return { data }\n})\n\nasync function getAccessToken() {\n    const res = await axios.get(\n        `https:\u002F\u002Fapi.weixin.qq.com\u002Fcgi-bin\u002Ftoken?grant_type=client_credential&appid=${APPID}&secret=${SECRET}`\n    )\n    const { access_token } = res.data\n    return access_token\n}\nasync function getInvoiceTitle(link, access_token) {\n    const res = await axios.post(`https:\u002F\u002Fapi.weixin.qq.com\u002Fcard\u002Finvoice\u002Fscantitle?access_token=${access_token}`, {\n        scan_text: link,\n    })\n    const { data } = res\n    return data\n}\n\n\u002F\u002F eslint-disable-next-line node\u002Fhandle-callback-err\nfastify.listen({ port: 3020 }, (err, address) => {\n    console.log(\"http:\u002F\u002Flocalhost:3020\")\n})\n","js",[46,64,61],{"__ignoreMap":44},{"title":44,"searchDepth":66,"depth":66,"links":67},4,[68],{"id":22,"depth":69,"text":22,"children":70},2,[71,73],{"id":36,"depth":72,"text":36},3,{"id":50,"depth":72,"text":50},null,[76],"代码","2022-12-04 15:29:48",false,"md","https:\u002F\u002Fbitmc.uno\u002Fpicgo\u002Fminiprogram-scancode-get-invoice-title.jpg",{},true,"\u002Fposts\u002F2022\u002Fminiprogram-scancode-get-invoice-title",{"text":85,"minutes":86,"time":87,"words":88},"2 min read",1.295,77700,259,{"title":5,"description":74},{"loc":83},"posts\u002F2022\u002Fminiprogram-scancode-get-invoice-title",[93,94,95,96],"uniapp","server","公众号","小程序","gGD0mW4yT51jOqP4fMWRtn7-PnMm_3xgiGIptlMvcPM",[99,104],{"title":100,"path":101,"stem":102,"date":103,"type":74,"children":-1},"小程序简易请求数据封装","\u002Fposts\u002F2022\u002Fminiprogram-fetch-data-function","posts\u002F2022\u002Fminiprogram-fetch-data-function","2022-12-04 15:29:02",{"title":105,"path":106,"stem":107,"date":108,"type":74,"children":-1},"小程序常用工具\u002F文档","\u002Fposts\u002F2022\u002Fminiprogram-tools","posts\u002F2022\u002Fminiprogram-tools","2022-12-04 15:30:56",1789642597203]