| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <?php
- namespace addons\HuijuBill\common\global_func;
- use addons\HuijuBill\common\enums\HuijuBillTypeEnum;
- use common\enums\AddonsEnum;
- use common\enums\PayTypeEnum;
- use Yii;
- use yii\helpers\Json;
- /**
- * 获取支付方式公共调用
- */
- class PaymentList
- {
- /**
- * 获取支付方式
- *
- * @param array $params
- * @return array
- */
- public static function getPaymentList($params)
- {
- // 当前商城ID
- $mall_id = $params['mall_id'];
- // 当前平台
- $app_platform = $params['app_platform'];
- $req_source = $params['req_source'] ?? 1;
- $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[] = 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;
- }
- }
|