123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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 };
|