text: 'use strict';
  const crypto = require('crypto');
  module.exports = {
  	/**
  	 * 此函数名称
  	 * @url user/pub/test1 前端调用的url参数地址
  	 * @description 此函数描述
  	 * @params {Object} data 请求参数
  	 * @params {String} uniIdToken 用户token
  	 * @params {String} userInfo 当前登录用户信息（可信任，仅kh目录下的函数有此值）
  	 * pub目录下请求参数需要带上 need_user_info = true
  	 * @params {Object} util 公共工具包
  	 * @params {Object} filterResponse 过滤器返回的数据
  	 * @params {Object} originalParam 原始请求参数（包含了原始event和context）
  	 * data 请求参数 说明
  	 * @params {String} uid 当前登录用户id（可信任，仅kh目录下的函数有此值）
  	 * res 返回参数说明
  	 * @params {Number} code 错误码，0表示成功
  	 * @params {String} msg 详细信息
  	 */
  	main: async (event) => {
  		//  注意: userInfo 和 uid 是可信任的，但默认只有kh目录下的函数才有此值
  		let { data = {}, userInfo, util, filterResponse, originalParam } = event;
  		let { customUtil, uniID, config,uniPay, pubFun, vk, db, _ } = util;
  		//处理子账户父账户关系
  		userInfo.pid && (data.uid = userInfo.pid);
  		let { uid } = data;
  		let res = { code: 0, msg: '' };
  		// 业务逻辑开始----------------------------------------------------------- 
  		// 可写与数据库的交互逻辑等等
  		const outTradeNo = parseInt(Date.now() / 1000) + crypto
  			.createHash('md5')
  			.update(data.uid, 'utf-8')
  			.digest('hex').substring(0, 8);
  		const totalFee = data.totalFee * 100; //客户端输入进来的单位是元，微信支付的单位是分，所以需要将元转为分。
  		const orderResult = await vk.baseDao.add({
  			dbName: "invest_log",
  			dataJson: {
  				uid,
  				outTradeNo,
  				totalFee,
  				status: 1 // 1 - 未支付，2 - 已支付
  			}
  		})
  		if (!orderResult) {
  			return {
  				code: 1,
  				msg: "订单创建失败！"
  			}
  		}
  		let unipayIns, tradeType;
  		switch ('wxpay_' + originalParam.context.PLATFORM) {
  			case 'wxpay_mp-weixin':
  				unipayIns = uniPay.initWeixin({
  					appId: 'wx12476f1a32ccc485',
  					secret: '8782a289edab9ec3e7d18d127b3d698f',
  					mchId: '1579802651',
  					key: 'dgJwmszz795898761234300112356214'
  				})
  				tradeType = 'JSAPI'
  				break;
  			case 'wxpay_app-plus':
  				unipayIns = uniPay.initWeixin({
  					appId: 'wxbf7866ebafe55458',
  					mchId: '1579802651',
  					key: 'dgJwmszz795898761234300112356214'
  				})
  				tradeType = 'APP'
  				break;
  			case 'wxpay_h5':
  				unipayIns = uniPay.initWeixin(wxConfigH5)
  				tradeType = 'NATIVE'
  				break;
  			default:
  				return {
  					code: -1,
  						msg: '参数错误'
  				}
  		}
  		const curUser = await vk.baseDao.findById({
  			dbName: "uni-id-users", // 表名
  			id: uid // id
  		});
  		if(!(curUser.wx_openid)||!(curUser.wx_openid['mp-weixin'])){
  			return {
  				code:1,
  				msg:"微信充值需要先绑定微信后才能使用，请在【我的】页面中绑定微信！"
  			}
  		}
  		console.log(curUser)
  		res.orderInfo = await unipayIns.getOrderInfo({
  			openid: curUser.wx_openid['mp-weixin'],
  			subject: '码上增值充值订单', // 微信支付时不可填写此项
  			body: '码上增值充值订单',
  			outTradeNo: outTradeNo,
  			totalFee: totalFee, // 金额，单位分
  			notifyUrl: `https://tcb-uhheyvljogrmjv62a00c4-57e527.service.tcloudbase.com/paynotify/wxpay_${originalParam.context.PLATFORM}`, // 支付结果通知地址
  			tradeType
  		})
  		res.outTradeNo = outTradeNo;
  		// 业务逻辑结束-----------------------------------------------------------
  		return res;
  	}
  }
  