services->setting->addons->get($mall_id, AddonsEnum::ADDONS_NAME_HUIJU_BILL, 'basic'); $enable_pay_type = []; // 是否开启支付 if (!(!empty($settings['huijubill_status']) && $settings['huijubill_status'])) { return []; } if (!empty($settings['huijubill_status'])) $enable_pay_type[] = HuijuBillTypeEnum::HUIJU_BILL_JOINPAY; $all_payment = HuijuBillTypeEnum::allTypeConf(); $enable_payment = []; foreach ($enable_pay_type as $pay_type) { // 当前支付 $payment_info = $all_payment[$pay_type] ?? []; if (empty($payment_info)) continue; $trade_type = ''; $payment_type = ''; switch ($payment_info['pay_type']) { case HuijuBillTypeEnum::BILL_JOINPAY: $payment_type = PayTypeEnum::HUIJU_BILL; $trade_type = HuijuBillTypeEnum::getTypeByPlatform($app_platform); if (!empty($trade_type)) { $name = '汇聚分账'; if (is_array($trade_type)) { foreach ($trade_type as $item) { if (in_array($item, [HuijuBillTypeEnum::ALIPAY_H5])) { //支付宝支付 $new_pay['name'] = $settings['huijubill_alipay_trade_name'] ?? $name . '-' . '支付宝支付'; $new_pay['img'] = str_replace('huiju_bill', 'alipay', $payment_info['img']); $new_pay['pay_type'] = $payment_type; $new_pay['trade_type'] = $item; $new_pay['action'] = HuijuBillTypeEnum::action($payment_type); $enable_payment['huiju_bill'][] = $new_pay; } if (in_array($item, [HuijuBillTypeEnum::WEIXIN_GZH, HuijuBillTypeEnum::WEIXIN_XCX])) { //微信支付 $new_pay['name'] = $settings['huijubill_wechat_trade_name'] ?? $name . '-' . '微信支付'; $new_pay['img'] = str_replace('huiju_bill', 'wechat', $payment_info['img']); $new_pay['pay_type'] = $payment_type; $new_pay['trade_type'] = $item; $new_pay['action'] = HuijuBillTypeEnum::action($payment_type); $enable_payment['huiju_bill'][] = $new_pay; } } } else { if (in_array($trade_type, [HuijuBillTypeEnum::ALIPAY_H5])) { $payment_info['name'] = $settings['huijubill_alipay_trade_name'] ?? $name . '-' . '支付宝支付'; $payment_info['img'] = str_replace('huiju_bill', 'alipay', $payment_info['img']); } if (in_array($trade_type, [HuijuBillTypeEnum::WEIXIN_GZH, HuijuBillTypeEnum::WEIXIN_XCX])) { $payment_info['name'] = $settings['huijubill_wechat_trade_name'] ?? $name . '-' . '微信支付'; $payment_info['img'] = str_replace('huiju_bill', 'wechat', $payment_info['img']); } $payment_info['trade_type'] = $trade_type; $payment_info['action'] = HuijuBillTypeEnum::action($payment_type); $enable_payment[$pay_type] = $payment_info; } } break; } } // 支付--汇聚支付渠道,1:商品订单,2:余额充值 $huijubill_trade_channel = Json::decode($settings['huijubill_trade_channel']); if(empty($huijubill_trade_channel)) $huijubill_trade_channel = []; // 汇聚支付的支付渠道为空,不支持汇聚支付 if (empty($huijubill_trade_channel)) { unset($enable_payment['huiju_bill']); } if (HuijuBillTypeEnum::JOINPAY_CHANNEL_ORDER == $req_source) { if (!in_array(1, $huijubill_trade_channel)) { // 商品订单不支持汇聚支付 unset($enable_payment['huiju_bill']); } } if (HuijuBillTypeEnum::JOINPAY_CHANNEL_RECHARGE == $req_source) { if (!in_array(2, $huijubill_trade_channel)) { // 余额充值不支持汇聚支付 unset($enable_payment['huiju_bill']); } } if (!empty($enable_payment['huiju_bill'])) { $joinpay_info = $enable_payment['huiju_bill']; unset($enable_payment['huiju_bill']); $arr = [ HuijuBillTypeEnum::WEIXIN_GZH => 'huijubill_wechat_open', HuijuBillTypeEnum::WEIXIN_XCX => 'huijubill_mp_wx_open', HuijuBillTypeEnum::ALIPAY_H5 => 'huijubill_alipay_h5_open', ]; if (count($joinpay_info) == count($joinpay_info, 1)) { // 支付方式开关过滤 if (1 == $settings[$arr[$joinpay_info['trade_type']]]) { $enable_payment[strtolower($joinpay_info['trade_type'])] = $joinpay_info; } } else { foreach ($joinpay_info as $val) { if (1 == $settings[$arr[$val['trade_type']]]) { $enable_payment[strtolower($val['trade_type'])] = $val; } } } } return $enable_payment; } /** * 获取支付方式 * * @param array $params * @return array */ public static function getPaymentType($params) { // 当前商城ID $mall_id = $params['mall_id']; $settings = Yii::$app->services->setting->addons->get($mall_id, AddonsEnum::ADDONS_NAME_HUIJU_BILL, 'basic'); $enable_pay_type = []; // 是否开启支付 if (!(!empty($settings['huijubill_status']) && $settings['huijubill_status'])) { return []; } if (!empty($settings['huijubill_status'])) $enable_pay_type[] = [ "name" => '汇聚分账支付', "pay_type" => PayTypeEnum::HUIJU_BILL, ]; return $enable_pay_type; } }