const Router = require('koa-router'); const router = new Router(); const path = require('path') const WeChat = require('../util/wechat') const fs = require('fs') const configLocal = path.join(__dirname, '../static/wechats.json') const wcConfig = { get () { return JSON.parse(fs.readFileSync(configLocal).toString()) }, set (data) { fs.writeFileSync(configLocal, JSON.stringify(data)) } } router.get('/', async ctx => { let { name, uri, callback } = ctx.request.query let config = wcConfig.get().find(it => it.name === name) if (!config) { return ctx.body = '该服务号不存在' } let token = await WeChat.getAccessToken(config.AppID, config.AppSecret) let ticket = await WeChat.getTicket(token) let timestamp = WeChat.grentTimeStamp() let nonceStr = WeChat.grentNonceStr() let signature = await WeChat.getSignature(ticket, nonceStr, timestamp, uri) let result = { appId: config.AppID, timestamp, nonceStr, signature } ctx.body = `${callback}(${JSON.stringify(result)})` }) router.post('/repect', async ctx => { let { data } = ctx.request.body data.forEach(item => { item.domains = item.domains || [] }) wcConfig.set(data) ctx.body = { code: 200 } }) module.exports = exports = { path: '/share', router };