import logger from 'logger/logger' import BaseController from 'common/base.controller' import {ZError} from 'common/ZError' import { router } from 'decorators/router' import {createPageSign, refreshToken} from 'service/alchemy.svr' import {generateKVStr} from 'utils/net.util' class AlchemyController extends BaseController { @router('post /pay/alchemy/buy') async beginPay(req, res) { const user = req.user const {chain, currency, address} = req.params const tokenResult = await refreshToken(user.emailReal) console.log(tokenResult) if (!tokenResult.success) { logger.info(`fetch pay token error::code: ${tokenResult.returnCode} msg: ${tokenResult.returnMsg}`) throw new ZError(10, 'fetch pay token error') } const { id, email, accessToken } = tokenResult.data const redirectUrl = '' const callbackUrl = '' const merchantOrderNo = '' let dataOrign:any = { token: accessToken, email, id, showTable: 'buy', } if (chain) dataOrign.network=chain if (currency) dataOrign.crypto=currency let dataSign = { appId: process.env.ALCHEMY_APPID, address } let signStr = generateKVStr({data: dataSign, sort: true}) let sign = createPageSign(signStr) dataOrign.sign = sign Object.assign(dataOrign, dataSign) const urlBase = process.env.ALCHEMY_PAGE_BASE let url = `${urlBase}/` url = generateKVStr({data: dataOrign, encode: true, uri: url}) return {url} } }