column(['status','id'], 'id', true); $payTypeList = extension_config('payment', 'pay_type')??[]; foreach ($paymentList as $payment) { $payment->status = $statusMap[$payment->id]['status']; $payment->enabled = in_array($payment->id, $payTypeList, true); } return $paymentList; } /** * 创建支付订单 */ public function create(string $paymentID, array $order, PaymentBizEnum $bizType = PaymentBizEnum::ORDER_PAY): PaymentResponse { Event::trigger(new BeforePayEvent($order, $paymentID, $bizType)); return $this->getPaymentProvider($paymentID)->create($order, $bizType); } /** * 查询支付订单 */ public function query(string $paymentID, $recordID): PaymentQueryResult { return $this->getPaymentProvider($paymentID)->query($recordID); } /** * 退款 */ public function refund(string $paymentID, int $recordID, PaymentRefundRequest $param): PaymentRefundResult { return $this->getPaymentProvider($paymentID)->refund($recordID, $param); } /** * 查询退款 */ public function refundQuery(string $paymentID, int $refundID): PaymentRefundResult { return $this->getPaymentProvider($paymentID)->refundQuery($refundID); } /** * 获取指定支付方式 */ public function getPayment($paymentID):array { return [ // todo ]; } /** * 开启支付方式 */ public function enablePayment($paymentID):bool { // todo return true; } /** * 关闭支付方式 */ public function disablePayment($paymentID):bool { // todo return true; } public function getPaymentProvider(string $paymentID): PaymentProviderInterface { $extension = $this->extensionManager->getExtension($paymentID); return $extension->getPaymentProvider(); } }