33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import type { ShopOrderStatus, PaymentParams } from '@mp-pilates/shared'
|
|
import { post } from './request'
|
|
export const shopMoney = (fen: number) => (fen / 100).toFixed(2)
|
|
export const shopStatus: Record<ShopOrderStatus, string> = {
|
|
PENDING: '待付款',
|
|
PAID: '待发货',
|
|
COMPLETED: '已完成',
|
|
CANCELLED: '已取消',
|
|
}
|
|
export const shopError = (error: unknown) =>
|
|
uni.showToast({
|
|
title: error instanceof Error ? error.message : '操作失败,请重试',
|
|
icon: 'none',
|
|
})
|
|
export async function payShopOrder(id: string) {
|
|
const params = await post<PaymentParams>(`/shop/orders/${id}/pay`)
|
|
await new Promise<void>((resolve, reject) =>
|
|
uni.requestPayment({
|
|
...params,
|
|
provider: 'wxpay',
|
|
success: () => resolve(),
|
|
fail: (error) =>
|
|
reject(
|
|
new Error(
|
|
error.errMsg.includes('cancel')
|
|
? '已取消支付,可在订单中继续付款'
|
|
: '支付未完成,请刷新订单确认状态',
|
|
),
|
|
),
|
|
}),
|
|
)
|
|
}
|