Commit ccd4ce71 by lixinming

no message

parent 882cd34b
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* 收费 * 收费
*/ */
import { INDIVIDUALMEMBERTYPE, MEMBERLEVEL, MEMBERTYPE, ORDERSTATE, PAYMENTTYPE, WEICHARTPAYSTATE } from "../../config/enum"; import { ORDERSTATE, PAYMENTTYPE, RECEIPTCONFIRMATION, 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";
...@@ -33,11 +33,10 @@ const pay = new WxPay({ ...@@ -33,11 +33,10 @@ const pay = new WxPay({
* @returns * @returns
*/ */
export async function placeAnOrder({id}) { export async function placeAnOrder({id}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "loginId", "userId", "memberCategory", "money", "orderCycleStart", "orderCycleEnd","weChartState"]); let orderInfo = await findOnce(TABLEENUM.订单表, {id}, ["id", "loginId", "userId", "memberCategory", "money", "orderCycleStart", "orderCycleEnd","weChartState", "state"]);
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.该订单正在支付); 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")}`;
...@@ -103,9 +102,29 @@ export async function orderClose({id, weChartPR}) { ...@@ -103,9 +102,29 @@ export async function orderClose({id, weChartPR}) {
* 微信回调函数【微信用】 * 微信回调函数【微信用】
*/ */
export async function payCallback(body) { export async function payCallback(body) {
console.log(body); if (body.resource && body.summary == "支付成功") {
if (body.reource) { const wechartCallbackData = pay.decipher_gcm(body.resource.ciphertext, body.resource.associated_data, body.resource.nonce, V3Key);
if (wechartCallbackData.trade_state == "SUCCESS") {
/**支付成功 */
let oldInfo = await findOnce(TABLEENUM.订单表, {weChartPR:wechartCallbackData.out_trade_no});
if (!oldInfo || !oldInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
let updateInfo:any = {
paymentNum:wechartCallbackData.transaction_id,
state:ORDERSTATE.已支付,
paymentMethod:PAYMENTTYPE.微信支付
};
if (!oldInfo.isFirst) {
updateInfo.confirmReceipt = RECEIPTCONFIRMATION.待确认;
}
await updateOneData(TABLEENUM.订单表, {weChartPR:wechartCallbackData.out_trade_no}, updateInfo);
return {
code:"SUCCESS",
message:"成功"
}
} else {
throw new BizError(ERRORENUM.支付失败, wechartCallbackData.trade_state_desc);
}
} else {
throw new BizError(ERRORENUM.微信支付回调错误, body.summary);
} }
} }
\ No newline at end of file
...@@ -60,7 +60,7 @@ export async function pendingReviewList({unitName, joinTime, memberType, sheng, ...@@ -60,7 +60,7 @@ export async function pendingReviewList({unitName, joinTime, memberType, sheng,
* @returns * @returns
*/ */
export async function adopt({id, session}) { export async function adopt({id, session}) {
let userInfo = await findOnce(TABLEENUM.用户表, {userId:id, isAdmin:STATE.}, ["userId", "registerFlow", "userRegisterState", "memberType", "unitName", "name"]); let userInfo = await findOnce(TABLEENUM.用户表, {userId:id, isAdmin:STATE.}, ["userId", "registerFlow", "loginId","userRegisterState", "memberType", "unitName", "name"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在); if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.目标数据不存在);
if (userInfo.memberType == MEMBERTYPE.个人会员 && userInfo.registerFlow != REGISTERFLOW.完成第二步) { if (userInfo.memberType == MEMBERTYPE.个人会员 && userInfo.registerFlow != REGISTERFLOW.完成第二步) {
throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}为个人会员,并没有完成第二步`); throw new BizError(ERRORENUM.不具备审批条件, `${userInfo.userId}为个人会员,并没有完成第二步`);
...@@ -97,7 +97,7 @@ export async function adopt({id, session}) { ...@@ -97,7 +97,7 @@ export async function adopt({id, session}) {
//todo 创建一条初始订单 //todo 创建一条初始订单
await createOrder(id, unitName, NowMs, MEMBERLEVEL.普通会员, userInfo.memberType, subType, true); await createOrder(id, userInfo.loginId, unitName, NowMs, MEMBERLEVEL.普通会员, userInfo.memberType, subType, true);
await updateOneData(TABLEENUM.用户表, {userId:id}, addInfo); await updateOneData(TABLEENUM.用户表, {userId:id}, addInfo);
......
...@@ -25,7 +25,7 @@ import { updateOneData } from "../../data/update"; ...@@ -25,7 +25,7 @@ import { updateOneData } from "../../data/update";
* @param isFirst 是否首次缴费 * @param isFirst 是否首次缴费
* @returns * @returns
*/ */
export async function createOrder(id:string, unitName:string, orderStartMs:number, memberLv:number, memberType:number, subType:number, isFirst:boolean) { export async function createOrder(id:string, loginId:string, unitName:string, orderStartMs:number, memberLv:number, memberType:number, subType:number, isFirst:boolean) {
/**计算订单周期 */ /**计算订单周期 */
const EndMs = moment(orderStartMs).add(1, 'years').valueOf(); const EndMs = moment(orderStartMs).add(1, 'years').valueOf();
/**订单id */ /**订单id */
...@@ -57,6 +57,7 @@ export async function createOrder(id:string, unitName:string, orderStartMs:numbe ...@@ -57,6 +57,7 @@ export async function createOrder(id:string, unitName:string, orderStartMs:numbe
money, money,
paymentMethod:0, paymentMethod:0,
userId:id, userId:id,
loginId,
memberCategory:memberType, memberCategory:memberType,
paymentNum:"", paymentNum:"",
invoiceAdd:'', invoiceAdd:'',
......
...@@ -43,6 +43,8 @@ export enum ERRORENUM { ...@@ -43,6 +43,8 @@ export enum ERRORENUM {
请求已被退回请重新申请, 请求已被退回请重新申请,
不满足重新请求条件, 不满足重新请求条件,
该订单正在支付, 该订单正在支付,
微信支付回调错误,
支付失败
} }
export enum ERRORCODEENUM { export enum ERRORCODEENUM {
......
...@@ -446,7 +446,7 @@ const ModelArray = [ ...@@ -446,7 +446,7 @@ const ModelArray = [
userId:{type:'String', index:true},//会员id userId:{type:'String', index:true},//会员id
loginId:{type:'String', index:true},//登陆名 loginId:{type:'String', index:true},//登陆名
phone:"String",//登陆手机号 phone:"String",//登陆手机号
paymentNum:{type:'String', default:""},//支付单号(与订单号不一样) 线下付款时录入 paymentNum:{type:'String', default:""},//支付单号(与订单号不一样) 线下付款时录入 如果微信付款使用 微信支付的订单号
offlinePaymentUrl:{type:'String', default:""},//转账图片 offlinePaymentUrl:{type:'String', default:""},//转账图片
memberCategory:'Number',//会员类别 枚举 MEMBERTYPE memberCategory:'Number',//会员类别 枚举 MEMBERTYPE
weChartPR:{type:'String', default:""},//微信订单号 微信支付用 weChartPR:{type:'String', default:""},//微信订单号 微信支付用
......
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