Commit 2e762403 by lixinming

no message

parent e9189687
...@@ -2,17 +2,16 @@ ...@@ -2,17 +2,16 @@
* 收费 * 收费
*/ */
import { ORDERSTATE, PAYMENTTYPE } from "../../config/enum"; import { ORDERSTATE, PAYMENTTYPE, WEICHARTPAYSTATE } from "../../config/enum";
import { TABLEENUM } from "../../data/models/model"; import { TABLEENUM } from "../../data/models/model";
import { findOnce } from "../../data/select"; import { findOnce } from "../../data/select";
import { eccEnumValue } from "../../util/verificationEnum"; import { eccEnumValue } from "../../util/verificationEnum";
import { update } from "../portal/fenZhiJiGou/jiGouGuanLi";
import * as path from "path"; import * as path from "path";
const WxPay = require('wechatpay-node-v3'); const WxPay = require('wechatpay-node-v3');
import * as fs from 'fs'; import * as fs from 'fs';
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
import { ERRORENUM } from "../../config/errorEnum"; import { ERRORENUM } from "../../config/errorEnum";
import { generateWXOrderId } from "../../tools/system"; import { generateWXOrderId, successResult } from "../../tools/system";
import { updateOneData } from "../../data/update"; import { updateOneData } from "../../data/update";
import moment = require("moment"); import moment = require("moment");
...@@ -34,13 +33,14 @@ const pay = new WxPay({ ...@@ -34,13 +33,14 @@ const pay = new WxPay({
export async function placeAnOrder({id}) { export async function placeAnOrder({id}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "loginId", "userId", "memberCategory", "money", "orderCycleStart", "orderCycleEnd"]); let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "loginId", "userId", "memberCategory", "money", "orderCycleStart", "orderCycleEnd"]);
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在); if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在);
if (orderInfo.state != ORDERSTATE.已支付) throw new BizError(ERRORENUM.该订单已支付); if (orderInfo.state == ORDERSTATE.已支付) throw new BizError(ERRORENUM.该订单已支付);
if (orderInfo.weChartState != WEICHARTPAYSTATE.未提交 ) throw new BizError(ERRORENUM.该订单正在支付);
/**生成 out_trade_no */ /**生成 out_trade_no */
let out_trade_no = generateWXOrderId(orderInfo.memberCategory, orderInfo.userId); let out_trade_no = generateWXOrderId(orderInfo.memberCategory, orderInfo.userId);
let desc = `${orderInfo.loginId}_${moment(orderInfo.orderCycleStart).format("YYYY-MM-DD")}${moment(orderInfo.orderCycleEnd).format("YYYY-MM-DD")}`; let desc = `${orderInfo.loginId}_${moment(orderInfo.orderCycleStart).format("YYYY-MM-DD")}${moment(orderInfo.orderCycleEnd).format("YYYY-MM-DD")}`;
await updateOneData(TABLEENUM.订单表, {id}, {weChartPR:out_trade_no, paymentMethod:PAYMENTTYPE.微信支付}); await updateOneData(TABLEENUM.订单表, {id}, {weChartPR:out_trade_no, paymentMethod:PAYMENTTYPE.微信支付, weChartState:WEICHARTPAYSTATE.未支付 });
/**请求参数 */ /**请求参数 */
const Param = { const Param = {
appid: AppId, appid: AppId,
...@@ -54,62 +54,44 @@ export async function placeAnOrder({id}) { ...@@ -54,62 +54,44 @@ export async function placeAnOrder({id}) {
}; };
const result = await pay.transactions_native(Param); const result = await pay.transactions_native(Param);
if (result.status != 200) throw new BizError(ERRORENUM.调起微信支付失败); if (result.status != 200) throw new BizError(ERRORENUM.调起微信支付失败);
return {code_url:result.code_url}; return {code_url:result.code_url, weChartPR:out_trade_no};
} }
/** /**
* 订单查询状态【前端调用】 * 订单查询状态【前端调用】
*/ */
export async function orderState({orderId}) { export async function orderState({id, weChartPR}) {
const result = await pay.query({out_trade_no: '1609914303237'}); let orderInfo = await findOnce(TABLEENUM.订单表, {id, weChartPR}, ["id"]);
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在);
if (orderInfo.state == ORDERSTATE.已支付) {
return {state:WEICHARTPAYSTATE.已支付, msg:"已支付"};//已支付
}
const result = await pay.query({out_trade_no: weChartPR});
if (result.status != 200 && result.status != 204 ) throw new BizError(ERRORENUM.查看微信支付状态失败);
if (result.trade_state == 'CLOSED' ) {
await updateOneData(TABLEENUM.订单表, {id}, { weChartState:WEICHARTPAYSTATE.未支付 });
return {state:WEICHARTPAYSTATE.未提交, msg:"订单已关闭"};
}
return {state:WEICHARTPAYSTATE.未支付, msg:result.trade_state_desc};
} }
/** /**
* 关闭订单【前端调用】 * 关闭订单【前端调用】
*/ */
export async function orderClose() { export async function orderClose({id, weChartPR}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id, weChartPR}, ["id"]);
} if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.订单不存在);
// var initConfig = {
// partnerKey: "<partnerkey>",
// appId: "<appid>",
// mchId: "<mchid>",
// notifyUrl: "<notifyurl>",
// pfx: fs.readFileSync("<location-of-your-apiclient-cert.p12>")
// };
// var payment = new Payment(initConfig);
// /**
// * 订单列表
// * @param param0
// */
// export async function orderList({userId}) {
// }
// /**发起支付接口 */
// /**支付状态更新接口 给微信用 */
// /**订单状态查询 */
await pay.close(weChartPR);
/** await updateOneData(TABLEENUM.订单表, {id}, { weChartState:WEICHARTPAYSTATE.未支付 });
* 发起支付
* @param param0
*/
export async function initiationPay({userId, id, paymentType}) {
eccEnumValue("发起支付", "支付方式", PAYMENTTYPE, paymentType);
if (id == PAYMENTTYPE.线下支付) { return successResult();
}
} else {//线上支付
let orderInfo = await findOnce(TABLEENUM.订单表, {id});
/**清除微信支付订单 */
// await update(TABLEENUM);
}
} // export async function
\ No newline at end of file \ No newline at end of file
...@@ -540,4 +540,13 @@ export enum ADMINLV { ...@@ -540,4 +540,13 @@ export enum ADMINLV {
会费管理, 会费管理,
发票管理, 发票管理,
权限管理 权限管理
}
/**
* 微信支付状态
*/
export enum WEICHARTPAYSTATE{
未提交=0,
未支付,
已支付
} }
\ No newline at end of file
...@@ -37,10 +37,12 @@ export enum ERRORENUM { ...@@ -37,10 +37,12 @@ export enum ERRORENUM {
该用户已在宽限期内, 该用户已在宽限期内,
该订单已支付, 该订单已支付,
调起微信支付失败, 调起微信支付失败,
查看微信支付状态失败,
订单不存在, 订单不存在,
发票已开具不可重复提交, 发票已开具不可重复提交,
请求已被退回请重新申请, 请求已被退回请重新申请,
不满足重新请求条件 不满足重新请求条件,
该订单正在支付,
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -449,6 +449,7 @@ const ModelArray = [ ...@@ -449,6 +449,7 @@ const ModelArray = [
offlinePaymentUrl:{type:'String', default:""},//转账图片 offlinePaymentUrl:{type:'String', default:""},//转账图片
memberCategory:'Number',//会员类别 枚举 MEMBERTYPE memberCategory:'Number',//会员类别 枚举 MEMBERTYPE
weChartPR:{type:'String', default:""},//微信订单号 微信支付用 weChartPR:{type:'String', default:""},//微信订单号 微信支付用
weChartState:'Number',//微信支付状态 WEICHARTPAYSTATE
// membershipFeesType:'Number',//会费类别 枚举 // membershipFeesType:'Number',//会费类别 枚举
invoiceAdd:'String',//发票图片地址 invoiceAdd:'String',//发票图片地址
isFirst:{type:'Boolean', default:true},//首次订单 isFirst:{type:'Boolean', default:true},//首次订单
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment