getFind(array($this::MERCHANT_ID => $merchant_id)); if ($paySet) { $SystemConfigModel = D('SystemConfig'); $AgentModel = D('RetailAgent'); $MerchantModel = D('RetailMerchant'); $mMap = array( $MerchantModel::ID => $merchant_id ); $agent_id = $MerchantModel->getFindField($mMap, $MerchantModel::AGENT_ID); $aMap = array( $AgentModel::ID => $agent_id ); $aFields = array( $AgentModel::SET_SERVER_PAY, $AgentModel::SERVER_PAY_STATE, ); $agentPaySet = $AgentModel->getFind($aMap, $aFields); if ($agentPaySet[$AgentModel::SET_SERVER_PAY] == 1 && $agentPaySet[$AgentModel::SERVER_PAY_STATE] == 1) { $AgentPayConfigModel = D('AgentPayConfig'); $map = array( $AgentPayConfigModel::AGENT_ID => $agent_id ); $paySet['systemConfig'] = $AgentPayConfigModel->getFind($map); } else { $paySet['systemConfig'] = $SystemConfigModel->getFind(); } $res['config'] = $paySet; $res['status'] = 1; } else { $res['status'] = 0; $res['msg'] = '商户未配置支付'; } } catch (\Exception $e) { $res['status'] = 0; $res['msg'] = '商户未配置支付'; } return $res; } /** * 获取商户支付模式及权限 * @param $merchant_id 商户id * @param $pay_type 支付方式 1微信 2支付宝 3微信小程序 * @return mixed */ public function getFindMerchantConfig($merchant_id, $pay_type, $store_id = 0) { $store_id = is_numeric($store_id) ? $store_id : 0; $paySet = $this->getFind(array($this::MERCHANT_ID => $merchant_id, 'storeid' => $store_id)); if ($paySet) { //判断支付方式 switch ($pay_type) { case '1': //微信 $pay_name = '微信'; $pay_state = $paySet[$this::WX_PAY_STATE]; break; case '2': //支付宝 $pay_name = '支付宝'; $pay_state = $paySet[$this::AL_PAY_STATE]; break; case '3': //微信小程序 $pay_name = '微信小程序'; $pay_state = $paySet[$this::XCX_PAY_STATE]; } if ($pay_state == 0) { $res['status'] = 0; $res['msg'] = '商户未开启' . $pay_name . '支付'; return $res; } $MerchantModel = D('RetailMerchant'); $merchant = $MerchantModel->getFind(array($MerchantModel::ID => $merchant_id), $MerchantModel::AGENT_ID); //获取代理商id $PayPatternModel = D('PayPattern'); $agentPayAuth = $PayPatternModel->getAgentPattern($merchant[$MerchantModel::AGENT_ID]); // 获取代理商支付权限 if (!$agentPayAuth) { $res['status'] = 0; $res['msg'] = '代理商无线上支付权限'; return $res; } //判断代理商支付权限 switch ($pay_state) { case '1': //普通商户 if ($agentPayAuth[$PayPatternModel::GENERAL_PAY] != 1) { $res['status'] = 0; $res['msg'] = '代理商无普通商户支付模式权限'; return $res; } break; case '2': //服务商 if ($agentPayAuth[$PayPatternModel::SERVICE_PAY] != 1) { $res['status'] = 0; $res['msg'] = '代理商无服务商支付模式权限'; return $res; } break; case '3': //新大陆 if ($agentPayAuth[$PayPatternModel::CONTINENT_PAY] != 1) { $res['status'] = 0; $res['msg'] = '代理商无新大陆支付模式权限'; return $res; } break; case '4': //云闪付 if ($agentPayAuth[$PayPatternModel::CLOUD_PAY] != 1) { $res['status'] = 0; $res['msg'] = '代理商无云闪付支付模式权限'; return $res; } break; } $MerchantPayAuthModel = new MerchantPayAuthModel(); $merchantPayAuth = $MerchantPayAuthModel->getFind(array($MerchantPayAuthModel::MERCHANT_ID => $merchant_id));//商户支付权限 //判断商户支付权限 switch ($pay_state) { case '1': //普通商户 if ($merchantPayAuth[$MerchantPayAuthModel::GENERAL_PAY] != 1) { $res['status'] = 0; $res['msg'] = '商户无普通商户支付模式权限'; return $res; } break; case '2': //服务商 if ($merchantPayAuth[$MerchantPayAuthModel::SERVICE_PAY] != 1) { $res['status'] = 0; $res['msg'] = '商户无服务商支付模式权限'; return $res; } break; case '3': //新大陆 if ($merchantPayAuth[$MerchantPayAuthModel::CONTINENT_PAY] != 1) { $res['status'] = 0; $res['msg'] = '商户无新大陆支付模式权限'; return $res; } break; case '4': //云闪付 if ($merchantPayAuth[$MerchantPayAuthModel::CLOUD_PAY] != 1) { $res['status'] = 0; $res['msg'] = '商户无云闪付支付模式权限'; return $res; } break; } $res['status'] = 1; $res['m_pay_type'] = $pay_state; if ($pay_state == 2) { //服务商支付模式:判断服务商是取代理商配置还是合伙人配置 $SystemConfigModel = new SystemConfigModel(); $agent_id = $merchant[$MerchantModel::AGENT_ID]; $AgentModel = D('RetailAgent'); $aMap = array( $AgentModel::ID => $agent_id ); $aFields = array( $AgentModel::SET_SERVER_PAY, $AgentModel::SERVER_PAY_STATE, ); $agentPaySet = $AgentModel->getFind($aMap, $aFields); if ($agentPaySet[$AgentModel::SET_SERVER_PAY] == 1 && $agentPaySet[$AgentModel::SERVER_PAY_STATE] == 1) { //开启代理商配置支付服务商 $AgentPayConfigModel = D('AgentPayConfig'); $map = array( $AgentPayConfigModel::AGENT_ID => $agent_id ); $paySet['systemConfig'] = $AgentPayConfigModel->getFind($map); } else { $paySet['systemConfig'] = $SystemConfigModel->getFind(); } } else if ($pay_state == 4) { // 云闪付服务商配置 $SystemConfigModel = new SystemConfigModel(); $paySet['systemConfig'] = $SystemConfigModel->getFind(); } $paySet['name'] = $merchant['name']; $res['config'] = $paySet; } else { $res['status'] = 0; $res['msg'] = '商户未配置支付'; } return $res; } }