suke-mp/src/utils/order/index.ts
2024-04-14 01:05:08 +08:00

59 lines
1.4 KiB
TypeScript

import { OrderBean } from '@/api/order/types';
import dayjs from 'dayjs';
import { showToast } from '@/utils';
/**
* 获取订单支付过期时间
* @param order
*/
export function getOrderDeadline(order: OrderBean) {
// return dayjs(order?.createTime).add(30, 'minute').toDate().getTime();
return dayjs(order?.createTime).add(30, 'minute').toDate().getTime();
}
/**
* 订单已过期
* @param item
*/
export const isExpired = (item: OrderBean) => {
return item?.payStatus == 1 && getOrderDeadline(item) < Date.now();
};
/**
* 订单待支付
* @param item
*/
export const isPending = (item: OrderBean | undefined) => {
return item?.payStatus == 1 && getOrderDeadline(item) > Date.now();
};
export const handlePayResult = (orderId: string | undefined, e: any, { onSuccess, onFailure }: any) => {
const payDetail = e.detail;
let url = payDetail.url;
const str = url.split('?')[1];
const resultObj = JSON.parse(str.replaceAll('result=', ''));
if(resultObj?.is_success === true) {
if(onSuccess) {
onSuccess();
} else {
showToast('支付成功', {
icon: 'success',
complete: () => {
uni.navigateBack();
}
});
}
} else {
if(onFailure) {
onFailure();
}
const msg = resultObj?.error_message || '支付失败';
showToast(msg, {
complete: () => {
uni.navigateBack();
}
});
}
};