新增
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { PayWayEnum } from '.'
|
||||
|
||||
export class Pay {
|
||||
private static modules = new Map()
|
||||
static inject(name: string, module: any) {
|
||||
this.modules.set(name, module)
|
||||
}
|
||||
constructor() {
|
||||
//动态注入支付方式
|
||||
for (const [name, module] of Pay.modules.entries()) {
|
||||
module.init(name, this)
|
||||
}
|
||||
}
|
||||
|
||||
//调用支付
|
||||
async payment(payWay: PayWayEnum, options: any) {
|
||||
try {
|
||||
//@ts-ignore
|
||||
const module = this[PayWayEnum[payWay]]
|
||||
if (!module) {
|
||||
throw new Error(`can not find pay way ${payWay}`)
|
||||
}
|
||||
return await module.run(options)
|
||||
} catch (error) {
|
||||
return Promise.reject(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user