diff --git a/game-server/app.ts b/game-server/app.ts index cd6c5504f..207169a3f 100644 --- a/game-server/app.ts +++ b/game-server/app.ts @@ -54,7 +54,7 @@ let app = pinus.createApp(); app.set('name', 'chatofpomelo-websocket'); // 加载数据库和redis -app.configure(function() { +app.configure(function () { app.loadConfig('database', app.getBase() + '/config/database'); console.log('env:', app.get('env')); console.log('db:', app.get('database')); @@ -139,15 +139,15 @@ app.configure(ALL_ENVS, 'systimer', function () { connector: pinus.connectors.hybridconnector, useProtobuf: true }); - timeTaskService.init(); + timeTaskService.init(); }); function errorHandler(err: Error, msg: any, resp: any, - session: FrontendOrBackendSession, cb: HandlerCallback) { - console.error(`${ pinus.app.serverId } error handler msg[${ JSON.stringify(msg) }] ,resp[${ JSON.stringify(resp) }] , - to resolve unknown exception: sessionId:${ JSON.stringify(session.export()) } , - error stack: ${ err.stack }`); + session: FrontendOrBackendSession, cb: HandlerCallback) { + console.error(`${pinus.app.serverId} error handler msg[${JSON.stringify(msg)}] ,resp[${JSON.stringify(resp)}] , + to resolve unknown exception: sessionId:${JSON.stringify(session.export())} , + error stack: ${err.stack}`); if (!resp) { resp = resResult(STATUS.GLOBAL_ERR); } @@ -155,10 +155,10 @@ function errorHandler(err: Error, msg: any, resp: any, } export function globalErrorHandler(err: Error, msg: any, resp: any, - session: FrontendOrBackendSession, cb: HandlerCallback) { - console.error(`${ pinus.app.serverId } globalErrorHandler msg[${ JSON.stringify(msg) }] ,resp[${ JSON.stringify(resp) }] , - to resolve unknown exception: sessionId:${ JSON.stringify(session.export()) } , - error stack: ${ err.stack }`); + session: FrontendOrBackendSession, cb: HandlerCallback) { + console.error(`${pinus.app.serverId} globalErrorHandler msg[${JSON.stringify(msg)}] ,resp[${JSON.stringify(resp)}] , + to resolve unknown exception: sessionId:${JSON.stringify(session.export())} , + error stack: ${err.stack}`); if (cb) { @@ -171,12 +171,12 @@ app.configure(ALL_ENVS, function () { app.set(RESERVED.ERROR_HANDLER, errorHandler); app.set(RESERVED.GLOBAL_ERROR_HANDLER, globalErrorHandler); app.globalAfter((err: Error, routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, resp: any, cb: HandlerCallback) => { - console.log('global after ', err, msg&&msg.route, msg&&JSON.stringify(msg.body), session&&session.get('roleId')) + console.log('global after ', err, msg && msg.route, msg && JSON.stringify(msg.body), session && session.get('roleId')) }) app.globalBefore((routeRecord: RouteRecord, msg: any, session: FrontendOrBackendSession, cb: HandlerCallback) => { if (msg.body === null) { - cb(new Error(`msg body ===null maybe protobuf check error uid:${ session.uid } ${ JSON.stringify(msg) }`), { code: 499 }); + cb(new Error(`msg body ===null maybe protobuf check error uid:${session.uid} ${JSON.stringify(msg)}`), { code: 499 }); return; } cb(null); @@ -188,6 +188,7 @@ app.configure(ALL_ENVS, function () { app.route('gm', routeUtil.gm); app.route('guild', routeUtil.guild); app.route('activity', routeUtil.activity); + app.route('order', routeUtil.order); // filter configures app.filter(new pinus.filters.time()); diff --git a/game-server/app/servers/order/handler/orderHandler.ts b/game-server/app/servers/order/handler/orderHandler.ts index a2d1760b1..b1281a0f9 100644 --- a/game-server/app/servers/order/handler/orderHandler.ts +++ b/game-server/app/servers/order/handler/orderHandler.ts @@ -6,6 +6,7 @@ import { addReward, stringToRewardParam, useGiftPackage } from '../../../service import { dicRMB } from '../../../pubUtils/dictionary/DicRMB'; import { UserOrderModel } from '../../../db/UserOrder'; import _ = require('underscore'); +import { applyOrderWX, checkOrderWX } from '../../../services/pay/weixinPay'; export default function (app: Application) { return new orderHandler(app); @@ -40,13 +41,43 @@ export class orderHandler { let price = productInfo.price;//价格 let productType = productInfo.type;//类型 + let message = productInfo.message;//商品信息 let localOrderID = genCode(32);//本地订单号 let orderID = '';//平台订单号 - //生成订单号 - let orderInfo = await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType); - return resResult(STATUS.SUCCESS, { orderInfo, productInfo }); + let sdkOrderInfo = null;//客户端需要的平台订单信息 + switch (payType) { + case PAY_TYPE.WX: + { + //生成订单号 + let weixinOrder = await applyOrderWX(localOrderID, price * 100, message); + if (weixinOrder.code == 0) { + console.log('微信下单失败') + return resResult(STATUS.APPLY_ORDER_ERROR); + } + sdkOrderInfo = weixinOrder.data; + orderID = weixinOrder.data.prepayid;//微信订单号 + break; + } + case PAY_TYPE.ALI: + { + break; + } + + case PAY_TYPE.APPLE: + { + break; + } + default: + console.log('未知支付类型'); + return resResult(STATUS.NO_PAY_TYPE); + } + + await UserOrderModel.applyOrder(serverId, roleId, productID, localOrderID, orderID, price, payType); + return resResult(STATUS.SUCCESS, { orderInfo: sdkOrderInfo, productInfo, localOrderID }); + + } @@ -104,6 +135,20 @@ export class orderHandler { switch (payType) { case PAY_TYPE.WX: { + let weixinResult = await checkOrderWX(localOrderID); + if (weixinResult.code == 0) { + console.log('微信订单查询失败') + return resResult(STATUS.ORDER_ERROR); + } + if (parseInt(weixinResult.data.total_fee) / 100 != price) { + console.log('订单价格错误') + return resResult(STATUS.PRICE_ERROR); + } + if (weixinResult.data.trade_state != "SUCCESS" || + weixinResult.data.result_code != "SUCCESS" || + weixinResult.data.return_code != "SUCCESS") { + return resResult(STATUS.NO_PAY); + } break; } case PAY_TYPE.ALI: diff --git a/game-server/app/services/pay/weixinPay.ts b/game-server/app/services/pay/weixinPay.ts new file mode 100644 index 000000000..2fd1d954c --- /dev/null +++ b/game-server/app/services/pay/weixinPay.ts @@ -0,0 +1,94 @@ + +import tenpay = require('tenpay'); +import path = require('path'); + +/* +包名:com.bantu.sgzzyz +APPID:wx1d3cd5cd2f065358 +AppSecret:ebf099c41da57edf8693b5bb234d9b31 +商户号:1272966801 +APISECRET:ABCabc328BantuPKU726BANTUMPRCghb +*/ + +const config = { + appid: 'wx1d3cd5cd2f065358', + mchid: '1272966801', + partnerKey: 'ABCabc328BantuPKU726BANTUMPRCghb', + pfx: require('fs').readFileSync(path.resolve(__dirname, '../../../../../key/weixinpay/apiclient_cert.p12')), + notify_url: "https://" + "10.29.176.166" + "/order/weixinpaycallback",//支付回调网址 + spbill_create_ip: '127.0.0.1' +}; +// 方式一 +const api = new tenpay(config); +// 调试模式 +// const api = new tenpay(config, true); +// 沙盒模式(用于微信支付验收) +// const sandboxAPI = await tenpay.sandbox(config); + + + + +/** + * 微信下单 + * + * @param {number} price 价格订单金额(分) + * @param {string} message 商品信息 + * @param {string} localOrderID 本地订单号 + * + */ +export async function applyOrderWX(localOrderID: string, price: number, message: string) { + let data = { + out_trade_no: localOrderID, + body: message,//'商品简单描述', + total_fee: price,//'订单金额(分)', + } + console.log('applyOrderWX :', data) + let result = await api.getAppParams(data) + // { appid: 'wx1d3cd5cd2f065358', + // partnerid: '1272966801', + // prepayid: 'wx12171213153829021f7cfe9413f0a20000',//微信订单号 + // package: 'Sign=WXPay', + // noncestr: 'OohMyaHNK0iP77uh', + // timestamp: '1620810734', + // sign: '7A1B41C577E78602344D03DE4A2F7B0A' } + console.log('applyOrderWX result: ', result) + if (result.appid == config.appid && result.partnerid == config.mchid) { + return { code: 1, data: result }; + } + return { code: 0, data: JSON.stringify(result) }; +} + + + +/** + * 微信查询支付结果 + * + * @param {number} serverId 区Id + * @param {string} roleId 角色Id + * @param {string} localOrderID 本地订单号 + * + */ +export async function checkOrderWX(localOrderID: string) { + let data = { + out_trade_no: localOrderID, + } + console.log('checkOrderWX :', data) + let result = await api.orderQuery(data) + // { return_code: 'SUCCESS', + // return_msg: 'OK', + // result_code: 'SUCCESS', + // mch_id: '1272966801', + // appid: 'wx1d3cd5cd2f065358', + // device_info: '', + // trade_state: 'NOTPAY', + // total_fee: '6', + // out_trade_no: 'nMeyvwjJSmNXPmfGcr6kzalTR3jlp7jW', + // trade_state_desc: '订单未支付', + // nonce_str: 'aJevQOtSDgvNDbtQ', + // sign: '955CE5F8AA2F046DA66E0A5DA56B338A' } + console.log('checkOrderWX result: ', result) + if (result.appid == config.appid && result.mch_id == config.mchid) { + return { code: 1, data: result }; + } + return { code: 0, data: JSON.stringify(result) }; +} \ No newline at end of file diff --git a/game-server/app/util/routeUtil.ts b/game-server/app/util/routeUtil.ts index f378be89e..4e8560725 100644 --- a/game-server/app/util/routeUtil.ts +++ b/game-server/app/util/routeUtil.ts @@ -1,11 +1,11 @@ -import { dispatch} from './dispatcher'; +import { dispatch } from './dispatcher'; import { Session, Application } from 'pinus'; -export function chat(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) { +export function chat(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) { let chatServers = app.getServersByType('chat'); - if(!chatServers || chatServers.length === 0) { + if (!chatServers || chatServers.length === 0) { cb(new Error('can not find chat servers.')); return; } @@ -14,10 +14,10 @@ export function chat(session: Session, msg: any, app: Application, cb: (err: Err cb(null, res.id); } -export function battle(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) { +export function battle(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) { let battleServers = app.getServersByType('battle'); - if(!battleServers || battleServers.length === 0) { + if (!battleServers || battleServers.length === 0) { cb(new Error('can not find battle servers.')); return; } @@ -43,10 +43,10 @@ export function battle(session: Session, msg: any, app: Application, cb: (err: E } -export function guild(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) { +export function guild(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) { let guildServers = app.getServersByType('guild'); - if(!guildServers || guildServers.length === 0) { + if (!guildServers || guildServers.length === 0) { cb(new Error('can not find guild servers.')); return; } @@ -56,36 +56,36 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er if (msg.args && msg.args.length > 0) { for (let arg of msg.args) { if (!arg.route) continue; - + if (['guild.gateActivityHandler.getGateActivity', - 'guild.gateActivityHandler.checkBattle', // 军团活动蛮夷入侵路由,按军团路由 - 'guild.gateActivityHandler.action', - 'guild.gateActivityHandler.hitGate', - 'guild.gateActivityHandler.battleEnd', - 'guild.gateActivityHandler.debugGetPrivate', - 'guild.gateActivityHandler.debugStartActivity', - 'guild.gateActivityHandler.debugEndActivity' - ].indexOf(arg.route) !== -1) { - rid = session.get('guildCode'); + 'guild.gateActivityHandler.checkBattle', // 军团活动蛮夷入侵路由,按军团路由 + 'guild.gateActivityHandler.action', + 'guild.gateActivityHandler.hitGate', + 'guild.gateActivityHandler.battleEnd', + 'guild.gateActivityHandler.debugGetPrivate', + 'guild.gateActivityHandler.debugStartActivity', + 'guild.gateActivityHandler.debugEndActivity' + ].indexOf(arg.route) !== -1) { + rid = session.get('guildCode'); } else if (['guild.cityActivityHandler.getCityStatus', - 'guild.cityActivityHandler.declareCity', - 'guild.cityActivityHandler.checkBattle', - 'guild.cityActivityHandler.hitGate', - 'guild.cityActivityHandler.battleEnd' - ].indexOf(arg.route) !== -1) { - + 'guild.cityActivityHandler.declareCity', + 'guild.cityActivityHandler.checkBattle', + 'guild.cityActivityHandler.hitGate', + 'guild.cityActivityHandler.battleEnd' + ].indexOf(arg.route) !== -1) { + if (arg.body.cityId) { rid = arg.body.cityId.toString(); } } else if (['guild.raceActivityHandler.getRaceActivity', - 'guild.raceActivityHandler.join', - 'guild.raceActivityHandler.getRace', - 'guild.raceActivityHandler.useItem', - 'guild.raceActivityHandler.battleEnd', - ].indexOf(arg.route) !== -1) { - rid = session.get('serverId').toString(); + 'guild.raceActivityHandler.join', + 'guild.raceActivityHandler.getRace', + 'guild.raceActivityHandler.useItem', + 'guild.raceActivityHandler.battleEnd', + ].indexOf(arg.route) !== -1) { + rid = session.get('serverId').toString(); } - + } } @@ -93,10 +93,10 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er cb(null, res.id); } -export function activity(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) { +export function activity(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) { let activityServers = app.getServersByType('activity'); - if(!activityServers || activityServers.length === 0) { + if (!activityServers || activityServers.length === 0) { cb(new Error('can not find activity servers.')); return; } @@ -105,14 +105,26 @@ export function activity(session: Session, msg: any, app: Application, cb: (err: cb(null, res.id); } -export function gm(session: Session, msg: any, app: Application, cb: (err: Error , serverId ?: string) => void) { +export function gm(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) { let gmServers = app.getServersByType('gm'); - if(!gmServers || gmServers.length === 0) { + if (!gmServers || gmServers.length === 0) { cb(new Error('can not find gm servers.')); return; } let res = dispatch(session.get('roleId'), gmServers); cb(null, res.id); +} + +export function order(session: Session, msg: any, app: Application, cb: (err: Error, serverId?: string) => void) { + let orderServers = app.getServersByType('order'); + + if (!orderServers || orderServers.length === 0) { + cb(new Error('can not find activity servers.')); + return; + } + + let res = dispatch(session.get('roleId'), orderServers); + cb(null, res.id); } \ No newline at end of file diff --git a/game-server/package-lock.json b/game-server/package-lock.json index bdcce742e..fd274286a 100644 --- a/game-server/package-lock.json +++ b/game-server/package-lock.json @@ -30,6 +30,11 @@ "js-tokens": "^4.0.0" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.nlark.com/@tootallnate/once/download/@tootallnate/once-1.1.2.tgz", + "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" + }, "@typegoose/typegoose": { "version": "7.3.5", "resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.5.tgz", @@ -201,11 +206,24 @@ "negotiator": "0.6.2" } }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=" + }, "after": { "version": "0.8.2", "resolved": "https://registry.npm.taobao.org/after/download/after-0.8.2.tgz", "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.nlark.com/agent-base/download/agent-base-6.0.2.tgz", + "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", + "requires": { + "debug": "4" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -285,6 +303,21 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npm.taobao.org/ast-types/download/ast-types-0.13.4.tgz", + "integrity": "sha1-7g13s0MmOWXsw/ti2hbnIisrZ4I=", + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.2.0.tgz?cache=0&sync_timestamp=1617647281845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz", + "integrity": "sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=" + } + } + }, "async": { "version": "3.2.0", "resolved": "https://registry.npm.taobao.org/async/download/async-3.2.0.tgz", @@ -371,6 +404,71 @@ "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=" }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566551397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433856030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.nlark.com/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", @@ -418,6 +516,11 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" + }, "call-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", @@ -602,11 +705,21 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" + }, "cookie": { "version": "0.3.1", "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "copy-to": { + "version": "2.0.1", + "resolved": "https://registry.nlark.com/copy-to/download/copy-to-2.0.1.tgz", + "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", @@ -652,6 +765,11 @@ "resolved": "https://registry.npm.taobao.org/cycle/download/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/data-uri-to-buffer/download/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha1-WUuJc5OMW8LDMEZTV4U0GrxPNjY=" + }, "date-format": { "version": "3.0.0", "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-3.0.0.tgz?cache=0&sync_timestamp=1572559173297&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdate-format%2Fdownload%2Fdate-format-3.0.0.tgz", @@ -683,6 +801,19 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-user-agent": { + "version": "1.0.0", + "resolved": "https://registry.nlark.com/default-user-agent/download/default-user-agent-1.0.0.tgz", + "integrity": "sha1-FsRu/cq6PtxF8k8r1IaLAbfCrcY=", + "requires": { + "os-name": "~1.0.3" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -691,6 +822,16 @@ "object-keys": "^1.0.12" } }, + "degenerator": { + "version": "2.2.0", + "resolved": "https://registry.nlark.com/degenerator/download/degenerator-2.2.0.tgz", + "integrity": "sha1-SemMEfoCk8Wybt+7UvFXKa/NslQ=", + "requires": { + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -706,6 +847,16 @@ "resolved": "https://registry.npm.taobao.org/denque/download/denque-1.4.1.tgz", "integrity": "sha1-Z0T/dkHBSMP4ppwwflEjXB9KN88=" }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -716,6 +867,24 @@ "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz?cache=0&sync_timestamp=1578890988059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff%2Fdownload%2Fdiff-4.0.2.tgz", "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=" }, + "digest-header": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/digest-header/download/digest-header-0.0.1.tgz", + "integrity": "sha1-Ecz23uxXZqw3l0TZAcEsuklRS+Y=", + "requires": { + "utility": "0.1.11" + }, + "dependencies": { + "utility": { + "version": "0.1.11", + "resolved": "https://registry.npm.taobao.org/utility/download/utility-0.1.11.tgz?cache=0&sync_timestamp=1608037982120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futility%2Fdownload%2Futility-0.1.11.tgz", + "integrity": "sha1-/eYM+bTkdRlHoM9dEEzik2ciZxU=", + "requires": { + "address": ">=0.0.1" + } + } + } + }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", @@ -727,6 +896,11 @@ "stream-shift": "^1.0.0" } }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz", @@ -826,22 +1000,67 @@ "is-symbol": "^1.0.2" } }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, "eyes": { "version": "0.1.8", "resolved": "https://registry.npm.taobao.org/eyes/download/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "file-uri-to-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-2.0.0.tgz", + "integrity": "sha1-e0Fa66In1XWFHgpbDGQNdlZAP7o=" + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -884,6 +1103,16 @@ "mime-types": "^2.1.12" } }, + "formstream": { + "version": "1.1.1", + "resolved": "https://registry.nlark.com/formstream/download/formstream-1.1.1.tgz", + "integrity": "sha1-FyWdJEDDXKlzbbn0X7O6P4Zpx1A=", + "requires": { + "destroy": "^1.0.4", + "mime": "^2.5.2", + "pause-stream": "~0.0.11" + } + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz", @@ -913,6 +1142,38 @@ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "optional": true }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.nlark.com/ftp/download/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -986,6 +1247,19 @@ "has-symbols": "^1.0.1" } }, + "get-uri": { + "version": "3.0.2", + "resolved": "https://registry.nlark.com/get-uri/download/get-uri-3.0.2.tgz", + "integrity": "sha1-8O8TVvqrxw4flAT6O2ayupv8clw=", + "requires": { + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" + } + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", @@ -1066,6 +1340,45 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz", + "integrity": "sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-4.0.1.tgz", + "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-5.0.0.tgz?cache=0&sync_timestamp=1614740547969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-5.0.0.tgz", + "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/humanize-ms/download/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "requires": { + "ms": "^2.0.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1111,6 +1424,11 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.nlark.com/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1129,6 +1447,11 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1237,6 +1560,15 @@ "resolved": "https://registry.npm.taobao.org/kareem/download/kareem-2.3.1.tgz", "integrity": "sha1-3vEtnJQQF/q/sA+HOvlenJnhvoc=" }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "local": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/local/-/local-0.3.3.tgz", @@ -1322,17 +1654,35 @@ "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", "integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ=" }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "requires": { + "yallist": "^3.0.2" + } + }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz?cache=0&sync_timestamp=1582105759247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-error%2Fdownload%2Fmake-error-1.3.6.tgz", "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=" }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.nlark.com/media-typer/download/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, "memory-pager": { "version": "1.5.0", "resolved": "https://registry.npm.taobao.org/memory-pager/download/memory-pager-1.5.0.tgz", "integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=", "optional": true }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz", + "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=" + }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz", @@ -1834,6 +2184,11 @@ "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/netmask/download/netmask-2.0.2.tgz", + "integrity": "sha1-iwGgdkQGXVNjg4NYI7xSAE66xec=" + }, "node-addon-api": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", @@ -1955,6 +2310,14 @@ "object-keys": "^1.1.1" } }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz?cache=0&sync_timestamp=1614930634590&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fon-finished%2Fdownload%2Fon-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", @@ -1963,11 +2326,33 @@ "wrappy": "1" } }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, + "os-name": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/os-name/download/os-name-1.0.3.tgz", + "integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=", + "requires": { + "osx-release": "^1.0.0", + "win-release": "^1.0.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -1982,6 +2367,14 @@ "os-tmpdir": "^1.0.0" } }, + "osx-release": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/osx-release/download/osx-release-1.1.0.tgz", + "integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=", + "requires": { + "minimist": "^1.1.0" + } + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594560064408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", @@ -2003,6 +2396,32 @@ "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" }, + "pac-proxy-agent": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/pac-proxy-agent/download/pac-proxy-agent-4.1.0.tgz", + "integrity": "sha1-Zog+6rrckV/F6VRXMkyw8Kx43vs=", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^4.1.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + } + }, + "pac-resolver": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pac-resolver/download/pac-resolver-4.2.0.tgz", + "integrity": "sha1-uCvLmZLUgWaSC8g8dUKrtFS9m90=", + "requires": { + "degenerator": "^2.2.0", + "ip": "^1.1.5", + "netmask": "^2.0.1" + } + }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz", @@ -2045,6 +2464,14 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.nlark.com/pause-stream/download/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "~2.3" + } + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -2244,21 +2671,63 @@ "resolved": "https://registry.npm.taobao.org/pkginfo/download/pkginfo-0.3.1.tgz", "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=" }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" }, + "proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/proxy-agent/download/proxy-agent-4.0.1.tgz?cache=0&sync_timestamp=1610406773864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fproxy-agent%2Fdownload%2Fproxy-agent-4.0.1.tgz", + "integrity": "sha1-MmwyUHdscETNGWVcy/rfLgZaBFw=", + "requires": { + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^4.1.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.nlark.com/proxy-from-env/download/proxy-from-env-1.1.0.tgz", + "integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=" + }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.10.1.tgz", + "integrity": "sha1-STFIL6jWR6Wqt5nFJx0hM7mB+2o=", + "requires": { + "side-channel": "^1.0.4" + } + }, "random-to": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/random-to/-/random-to-0.0.2.tgz", @@ -2272,6 +2741,17 @@ "safe-buffer": "^5.1.0" } }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.nlark.com/raw-body/download/raw-body-2.4.1.tgz", + "integrity": "sha1-MKyC+Yu1rowVLmcUnayNVRU7Fow=", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -2479,6 +2959,11 @@ "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -2492,6 +2977,16 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz", + "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "sift": { "version": "7.0.1", "resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz", @@ -2507,6 +3002,11 @@ "resolved": "https://registry.npm.taobao.org/sliced/download/sliced-1.0.1.tgz", "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.1.0.tgz", + "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" + }, "socket.io": { "version": "2.3.0", "resolved": "https://registry.npm.taobao.org/socket.io/download/socket.io-2.3.0.tgz", @@ -2595,6 +3095,25 @@ } } }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npm.taobao.org/socks/download/socks-2.6.1.tgz?cache=0&sync_timestamp=1618719243252&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsocks%2Fdownload%2Fsocks-2.6.1.tgz", + "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.nlark.com/socks-proxy-agent/download/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha1-fA82Tnsc9KekN+cSU77XLpAEvmA=", + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + } + }, "sorted-array-functions": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", @@ -2633,6 +3152,11 @@ "resolved": "https://registry.npm.taobao.org/stack-trace/download/stack-trace-0.0.10.tgz?cache=0&sync_timestamp=1575992264808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstack-trace%2Fdownload%2Fstack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654066899&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -2744,6 +3268,15 @@ "yallist": "^3.0.3" } }, + "tenpay": { + "version": "2.1.18", + "resolved": "https://registry.npm.taobao.org/tenpay/download/tenpay-2.1.18.tgz", + "integrity": "sha1-yxfEZmCYOCemFCCJIs9PcKiaxyw=", + "requires": { + "urllib": "^2.33.0", + "xml2js": "^0.4.19" + } + }, "thenify": { "version": "3.3.1", "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthenify%2Fdownload%2Fthenify-3.3.1.tgz", @@ -2760,6 +3293,11 @@ "thenify": ">= 3.1.0 < 4" } }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, "through2": { "version": "2.0.5", "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz?cache=0&sync_timestamp=1593478879807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrough2%2Fdownload%2Fthrough2-2.0.5.tgz", @@ -2782,6 +3320,11 @@ "is-number": "^7.0.0" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -2847,11 +3390,28 @@ "tslib": "^1.8.1" } }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, "typescript": { "version": "3.9.7", "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.9.7.tgz?cache=0&sync_timestamp=1596790269694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-3.9.7.tgz", @@ -2863,16 +3423,78 @@ "resolved": "https://registry.npm.taobao.org/underscore/download/underscore-1.9.1.tgz?cache=0&sync_timestamp=1585605854253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funderscore%2Fdownload%2Funderscore-1.9.1.tgz", "integrity": "sha1-BtzjSg5op7q8KbNluOdLiSUgOWE=" }, + "unescape": { + "version": "1.0.1", + "resolved": "https://registry.nlark.com/unescape/download/unescape-1.0.1.tgz", + "integrity": "sha1-lW5DD2HK2KTVfYLFGPXmzF0N2pY=", + "requires": { + "extend-shallow": "^2.0.1" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "urllib": { + "version": "2.37.1", + "resolved": "https://registry.npm.taobao.org/urllib/download/urllib-2.37.1.tgz?cache=0&sync_timestamp=1618453009809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furllib%2Fdownload%2Furllib-2.37.1.tgz", + "integrity": "sha1-EBa4iqsysnBIpNUtNiA3ccY+Ow8=", + "requires": { + "any-promise": "^1.3.0", + "content-type": "^1.0.2", + "debug": "^2.6.9", + "default-user-agent": "^1.0.0", + "digest-header": "^0.0.1", + "ee-first": "~1.1.1", + "formstream": "^1.1.0", + "humanize-ms": "^1.2.0", + "iconv-lite": "^0.4.15", + "ip": "^1.1.5", + "proxy-agent": "^4.0.1", + "pump": "^3.0.0", + "qs": "^6.4.0", + "statuses": "^1.3.1", + "utility": "^1.16.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566551397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433856030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "utility": { + "version": "1.17.0", + "resolved": "https://registry.npm.taobao.org/utility/download/utility-1.17.0.tgz?cache=0&sync_timestamp=1608037982120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futility%2Fdownload%2Futility-1.17.0.tgz", + "integrity": "sha1-YIGfcSpuDOd09S+x1pGZKl9Z02I=", + "requires": { + "copy-to": "^2.0.1", + "escape-html": "^1.0.3", + "mkdirp": "^0.5.1", + "mz": "^2.7.0", + "unescape": "^1.0.1" + } + }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1592944298186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", @@ -2928,6 +3550,14 @@ } } }, + "win-release": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/win-release/download/win-release-1.1.1.tgz", + "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", + "requires": { + "semver": "^5.0.1" + } + }, "winston": { "version": "0.8.3", "resolved": "https://registry.npm.taobao.org/winston/download/winston-0.8.3.tgz", @@ -2954,6 +3584,11 @@ } } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=" + }, "workerpool": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", @@ -2979,6 +3614,20 @@ "resolved": "https://registry.npm.taobao.org/ws/download/ws-7.3.1.tgz?cache=0&sync_timestamp=1593925670988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.3.1.tgz", "integrity": "sha1-0FR79n985PEqct/jEmLGjX3FUcg=" }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.23.tgz", + "integrity": "sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-11.0.1.tgz", + "integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM=" + }, "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.5.tgz?cache=0&sync_timestamp=1564594177335&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxmlhttprequest-ssl%2Fdownload%2Fxmlhttprequest-ssl-1.5.5.tgz", @@ -3020,6 +3669,11 @@ } } }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/xregexp/download/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", diff --git a/game-server/package.json b/game-server/package.json index 7508f651d..199445782 100644 --- a/game-server/package.json +++ b/game-server/package.json @@ -50,6 +50,7 @@ "request": "^2.88.2", "request-promise": "^4.2.6", "source-map-support": "^0.5.0", + "tenpay": "^2.1.18", "ts-node": "^8.2.0", "xprofiler": "^1.2.5" }, diff --git a/key/weixinpay/apiclient_cert.p12 b/key/weixinpay/apiclient_cert.p12 new file mode 100644 index 000000000..4d8b18b7a Binary files /dev/null and b/key/weixinpay/apiclient_cert.p12 differ diff --git a/key/weixinpay/apiclient_cert.pem b/key/weixinpay/apiclient_cert.pem new file mode 100644 index 000000000..374e49496 --- /dev/null +++ b/key/weixinpay/apiclient_cert.pem @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID8DCCAtigAwIBAgIUOsMp1mv8RAFmDb6SKsfJBsVXV6gwDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjEwNTA4MDQyODU1WhcNMjYwNTA3MDQyODU1WjCBgTETMBEGA1UEAwwK +MTI3Mjk2NjgwMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL +DCTkuIrmtbfnj63lm77nvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM +AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALd0girRSQ+/ytNbKEsJbm3qO3sZQF0Pg9IDoL8ix79OvCRW/DHKAYoh +fgNIOqdjzEyE+7Zj+wbHLnpGXwbV0gra2MIZdW9aOPy8LTZmdAnCZz9kctvT4rne +OhMgAGGqw0kog2K2sLmqH27ZCyKwNkseqyOMSImCPxdlZN8uGZykwNG6e/p5cIxF +tQATQMqf4hIXDE3Qwx6TN+TegjG2hNkXG6EZ6smwZQ9R6BtwuaHI93KX44uVN071 +Q508CXIsRdRf7oFWnVBGsYsHTq71Yjst4EB+BD7vT+jelbS6p1DVeQp1N3h/NoHr +syKzd2MJ1lJx3IGJ1EBC94L62wvoI3UCAwEAAaOBgTB/MAkGA1UdEwQCMAAwCwYD +VR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVzLmNv +bS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQzOTc1 +NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEATk9nhwyNko/tuf46 +9AKGQYo8boI0lS1zGp3oE8uTxjseeRK5F5HptXm1D/34DwS97w1Z/RE582C2Tlp4 +NczrN55Nm8Z82xjYNbT84FcG6u20+D2sok2TSw/S/LHHGp3BSDEa+eRYcgcDIluA +59FL1sKH2HXSAyWSV2c6hdSmJ1K9qxFDSDtbrJ4gv1TbJpCpshayYWL5k9C6V8+H +LT7zmSgkN7lBGwUNo4owCI6MmYLx4FTHzD+15rSQPrfGOt4ows+lRBG0YJkIN8n1 +sUzE7Jv0te7jqSnHuQWTkPYXeyWouX5DorbnezkOIh9sf2eyVqn2+f5gbf30q3mR +iZNYcQ== +-----END CERTIFICATE----- diff --git a/key/weixinpay/apiclient_key.pem b/key/weixinpay/apiclient_key.pem new file mode 100644 index 000000000..ee44adfcf --- /dev/null +++ b/key/weixinpay/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3dIIq0UkPv8rT +WyhLCW5t6jt7GUBdD4PSA6C/Ise/TrwkVvwxygGKIX4DSDqnY8xMhPu2Y/sGxy56 +Rl8G1dIK2tjCGXVvWjj8vC02ZnQJwmc/ZHLb0+K53joTIABhqsNJKINitrC5qh9u +2QsisDZLHqsjjEiJgj8XZWTfLhmcpMDRunv6eXCMRbUAE0DKn+ISFwxN0MMekzfk +3oIxtoTZFxuhGerJsGUPUegbcLmhyPdyl+OLlTdO9UOdPAlyLEXUX+6BVp1QRrGL +B06u9WI7LeBAfgQ+70/o3pW0uqdQ1XkKdTd4fzaB67Mis3djCdZScdyBidRAQveC ++tsL6CN1AgMBAAECggEAK06ut8rmE3i0OcbIMUaNshbcacfhQNa7yKUgml5shwXg +NjfumxZT3LbhV4cCiadugBXYkgryJHx6xVS9dBCf3/4fs1ptNZc34rnNdo0jEXa6 +BuYAk1JmsHf8f61LScMVDL0qnu//siSt/O3xygONHZikz+R67zM3D5/Y+zKXyzlX +Fe631SgAP8DYFdkjgpwRb9dB4opBFbmNl3X4+1JIcpvGNi5uDzR6IWoqr43FfgSz +/Q9opqZ7V0RZkbfOKb5FLMsK062DooouC6dpZWPlMgnrEZGHscVMTEkkmg4byluq +/FI+OKnMzTMVR0T+hmnC+6XZn+98w2V6RadM//LYdQKBgQDYx+uB9MJiX4U6nC9u +PY7F3IYYyKmDHBWYAZpPOvKUDPUeEupvsmaAgfASadYM8UgoOJOQ90aqewE9LdOd +/qHv4k21A90iR9DcoZd+dJ2eqTY3YGHtuPUdr0QuJxbhWYvnUN4+Fg+aZ5JxaS1i +yiiwzuaiGGlTPJwVw73KJs7I4wKBgQDYpR9qenlcclSxahMoYow8fn6J8/vBAtxZ +9aQQyhE8YuO+R7NoIlERlCUfLxs2KojiZF7wcARR7KnDt1kyyPdAAMtkjN/NeEFm +nJngERYLt3HXcoqifX0h1W+yxeeV+MCi6uVysVlDdc5rM9Ga0gdDtJvWQTJt7/kx +SWWx4J4JxwKBgH2KIV/MH7oaeSw9ANbFvWXmVJ4Lrucnn3W9D+DsUUjdzCHTcIKo +/OVU2nO/aN9r546rXQHpwbm+rDQC0vc/XAZwtvGqQCi3EESFLBdmb1VPxv8AyRWD +NCgxtLlJl91/Hx8hXOL1oamYa11UPJ1mV3Q1Dak3m99BTV7pUYK9QKljAoGATozA +MUkqy5wgnRsKyy/ADQcINliiRT8WSf/IdtXtHen1DT7OC8m1fxwpwX7A7QjLDNq7 +mY3j4xheDTpjOwimrSwckt6JHuSlQeEx4Y4QYjsnKai8H2JEhonur/EVoMjKf8eP +XeBzrwP9zdzB+NKCE8heYHbPJBFIVth36OC6LG0CgYAx9w61L3xzslz20XKpM3u4 +mO7aDTWBYIQUrZ4XmevUsbcwLfRhdWwHdMZbCM2DSviJE5P4htEonPy05QeVR6hO +K8lcp8GPHzWHqkhlXjU/PWXBPvyfIHifb82OswgEL9H4RUhwvBmidWhXQa4OW7ms +AysIlIaaw78Nq7M3oOs7MQ== +-----END PRIVATE KEY----- diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 66b5f46e4..7ffe52dda 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -371,6 +371,10 @@ export const STATUS = { NO_PRODUCT_ID: { code: 70001, simStr: '无效商品' }, NO_PAY_TYPE: { code: 70002, simStr: '无效支付类型' }, NO_ORDER: { code: 70003, simStr: '没有此订单' }, - DUPLICATE_ORDER: { code: 70004, simStr: '订单已经结算' } + DUPLICATE_ORDER: { code: 70004, simStr: '订单已经结算' }, + APPLY_ORDER_ERROR: { code: 70005, simStr: '下单失败' }, + ORDER_ERROR: { code: 70006, simStr: '订单错误' }, + PRICE_ERROR: { code: 70007, simStr: '价格错误' }, + NO_PAY: { code: 70008, simStr: '未支付' } } diff --git a/shared/resource/jsons/dic_zyz_rmb.json b/shared/resource/jsons/dic_zyz_rmb.json index e5daee0fe..9402991f1 100644 --- a/shared/resource/jsons/dic_zyz_rmb.json +++ b/shared/resource/jsons/dic_zyz_rmb.json @@ -1,12 +1,12 @@ [ { - "productID": "com.bantu.zyz.yb1", + "productID": "com.bantu.sgzzyz.yb1", "type": 15, "price": 6, "message": "赵云传购买元宝60" }, { - "productID": "com.bantu.zyz.yb2", + "productID": "com.bantu.sgzzyz.yb2", "type": 15, "price": 12, "message": "赵云传购买元宝160"