doAddLeshuaMerchant($id); return $result; } /** * 乐刷商户导入 * @param [type] $admin_id 主账号id * @return array | string 成功情况下返回array,否则返回 false */ private function doAddLeshuaMerchant($id){ $sql = 'select * from wx_leshua_apply where id = :id;'; $data = Yii::app()->db->createCommand($sql)->queryRow(true,array(':id'=>$id)); if (empty($data) || $data == false) { return '系统繁忙,请重试!'; } if ($data['merchant_type'] > 3 || $data['merchant_type'] < 1) { return '商户类型不正确!'; } //必传参数 $keyArray = array( "merchant_type","applicant","idcard","mobile","merchant_name","province_code","city_code","address","bank_name_code","bank_account_type","bank_unionpay_code","bank_branch","bank_holder","bank_account","mcc_code","mcc_type","commission_type","commission" ); $imageKeyArray = array('idcard_front','idcard_back','idcard_hand','bankcard_front'); switch ($data['merchant_type']) { case '2': $array = array('business_license_c'); $imageKeyArray = array_merge($imageKeyArray,$array); $array = array('license','license_start','license_end'); $keyArray = array_merge($keyArray,$array); break; case '3': $array = array('business_license_p'); $imageKeyArray = array_merge($imageKeyArray,$array); $array = array('license','license_start','license_end'); $keyArray = array_merge($keyArray,$array); break; } $imageArray = array(); foreach ($imageKeyArray as $key => $value) { $imageArray[$value] = IMAGEDOMAIN.$data[$value]; } $imageDataArray = $this->getImageData($imageArray); if ($imageDataArray == false) { return '获取图片信息失败,请重试!'; } unset($imageArray,$imageKeyArray); $paramArray = array(); foreach ($keyArray as $key => $value) { $paramArray[$value] = $data[$value]; } $paramArray['user_name'] = $data['leshua_name']; $paramArray['user_pwd'] = strtoupper(md5($data['leshua_password'])); unset($keyArray); $paramArray['applicant'] = trim($paramArray['applicant']); $paramArray['bank_holder'] = trim($paramArray['bank_holder']); $paramArray['agentid'] = $this->leshua_agent_id; $paramArray['t1_commission_by_weixin'] = 60; $paramArray['t1_commission_by_alipay'] = 60; $paramArray['cmd'] = 1; $paramArray['sign'] = $this->getLeshuaSign(array($this->leshua_agent_id,$data['bank_account'],$data['idcard'],$data['mobile'])); $paramArray = array_merge($paramArray,$imageDataArray); //刷卡费率 $feeArray = array('t1_debit_card_commission'=>'60','t1_debit_card_max_fee'=>'30000000','t1_credit_card_commission'=>'70','t1_overseas_card_commission'=>'300'); $paramArray = array_merge($paramArray,$feeArray); $paramArray['commission'] = 78; Yii::log('商户参数:'.json_encode($paramArray)); $result = LewaimaiHttp::POST($this->leshua_agent_url,$paramArray); Yii::log('乐刷商户导入的结果:'); Yii::log($result); $result = json_decode($result,true); return $result; } /** * 检查身份证号和营业执照 * @param [type] $admin_id 主账号id */ public static function checkLeshuaParam($array){ $leshua = new leshua(); return $leshua->doCheckLeshuaParam($array); } /** * 调用乐刷提供的接口进行参数检查 * @param [type] $array [description] * @return [type] [description] */ private function doCheckLeshuaParam($array){ $cmdArray = array('idcard'=>9,'license'=>10); foreach ($array as $key => $value) { if (empty($value)) { continue; } $paramArray = array(); $paramArray['agentid'] = LESHAU_AGENT_ID; $paramArray['cmd'] = $cmdArray[$key]; $paramArray[$key] = $value; $paramArray['sign'] = $this->getLeshuaSign(array($value)); $result = LewaimaiHttp::POST(LESHUA_AGENT_URL,$paramArray); $result = json_decode($result,true); if ((!is_array($result)) || (!isset($result['error_code'])) || $result['error_code'] != 0) { return $result; } } return true; } /** * 修改乐刷商户基本信息 * @param [type] $admin_id 主账号id */ public static function editMerchantInfo($id){ $sql = 'select * from wx_leshua_apply where id = :id;'; $data = Yii::app()->db->createCommand($sql)->queryRow(true,array(':id'=>$id)); if (empty($data) || $data == false) { return '系统繁忙,请重试!'; } $leshua = new leshua(); $result = $leshua->doEditMerchantBasicInfo($data); if (!is_array($result)) return $result; $result = $leshua->doEditMerchantBandInfo($data); if (!is_array($result)) return $result; return true; } /** * 修改乐刷商户基本信息 * @param [type] $admin_id [description] * @return [type] [description] */ private function doEditMerchantBasicInfo($data){ if ($data['merchant_type'] > 3 || $data['merchant_type'] < 1) { return '商户类型不正确!'; } //必传参数 $keyArray = array( "merchant_type","applicant","merchant_name","province_code","city_code","address" ); $paramArray = array(); foreach ($keyArray as $key => $value) { $paramArray[$value] = $data[$value]; } unset($keyArray); $paramArray['t1_commission_by_weixin'] = $data['weixin_commission']*10000; $paramArray['t1_commission_by_alipay'] = $data['zhifubao_commission']*10000; $paramArray['merchantid'] = $data['leshua_id']; $paramArray['agentid'] = $this->leshua_agent_id; $paramArray['cmd'] = 4; $paramArray['sign'] = $this->getLeshuaSign(array($this->leshua_agent_id,$data['leshua_id'])); var_dump(json_encode($paramArray)); $result = LewaimaiHttp::POST($this->leshua_agent_url,$paramArray); $result = json_decode($result,true); var_dump($result);exit; if (is_array($result) && isset($result['error_code']) && $result['error_code'] == 0 && $result['error_msg'] == '修改成功') { if (!empty($data['query_num'])) { $array = explode(',', $data['query_num']); } else { $array = array(); } $array[] = $result['query_num']; $sql = 'UPDATE wx_leshua_apply set query_num = "'.implode(',',$array).'" where id = :id;'; $data = Yii::app()->db->createCommand($sql)->execute(array(':id'=>$data['id'])); if (!$data || $data < 1) { return '系统繁忙,导入失败,请联系技术!'; } } return $result; } /** * 修改乐刷商户银行账号 * @param [type] $admin_id [description] * @return [type] [description] */ private function doEditMerchantBandInfo($data){ //必传参数 $keyArray = array( "bank_account_type","bank_unionpay_code","bank_holder","bank_account", ); $imageKeyArray = array('bankcard_front'); $imageArray = array(); foreach ($imageKeyArray as $key => $value) { $imageArray[$value] = IMAGEDOMAIN.$data[$value]; } $imageDataArray = $this->getImageData($imageArray); if ($imageDataArray == false) { return '获取图片信息失败,请重试!'; } $paramArray = array(); foreach ($keyArray as $key => $value) { $paramArray[$value] = $data[$value]; } unset($keyArray); $paramArray['merchantid'] = $data['leshua_id']; $paramArray['agentid'] = $this->leshua_agent_id; $paramArray['cmd'] = 5; $paramArray['sign'] = $this->getLeshuaSign(array($this->leshua_agent_id,$data['leshua_id'],$data['bank_account'])); $paramArray = array_merge($paramArray,$imageDataArray); $result = LewaimaiHttp::POST($this->leshua_agent_url,$paramArray); $result = json_decode($result,true); if (is_array($result) && isset($result['error_code']) && $result['error_code'] == 0 && $result['error_msg'] == '修改成功') { if (!empty($data['query_num'])) { $array = explode(',', $data['query_num']); } else { $array = array(); } $array[] = $result['query_num']; $sql = 'UPDATE wx_leshua_apply set query_num = "'.implode(',',$array).'" where id = :id;'; $data = Yii::app()->db->createCommand($sql)->execute(array(':id'=>$data['id'])); if (!$data || $data < 1) { return '系统繁忙,导入失败,请联系技术!'; } } return $result; } /** * 通过身份证获取乐刷账号id * @param [type] $idcard [description] * @return [type] [description] */ public static function getMerchantIdByIdcard($idcard){ $leshua = new leshua(); $result = $leshua->doGetMerchantIdByIdcard($idcard); return $result; } /** * 修改乐刷商户银行账号 * @param [type] $admin_id [description] * @return [type] [description] */ private function doGetMerchantIdByIdcard($idcard){ $paramArray = array(); $paramArray['cmd'] = 8; $paramArray['agentid'] = $this->leshua_agent_id; $paramArray['idcard'] = $idcard; $paramArray['sign'] = $this->getLeshuaSign(array($idcard)); $result = LewaimaiHttp::POST($this->leshua_agent_url,$paramArray); $result = json_decode($result,true); if (is_array($result) && isset($result['error_code']) && $result['error_code'] == 0 && $result['error_msg'] == '查询成功') { } return $result; } /** * 绑定乐刷pos机 * @param [type] $merchantid 乐刷商户id * @param [type] $machine_sn pos机sn * @return [type] [description] */ public static function bindPosMachine($merchantid, $machine_sn){ $leshua = new leshua(); $result = $leshua->doBindPosMachine($merchantid, $machine_sn, 1); return $result; } /** * 解除绑定乐刷pos机 * @param [type] $merchantid 乐刷商户id * @param [type] $machine_sn pos机sn * @return [type] [description] */ public static function unbindPosMachine($merchantid, $machine_sn){ $leshua = new leshua(); $result = $leshua->doBindPosMachine($merchantid, $machine_sn, 2); return $result; } /** * 绑定或者接触绑定乐刷POS机 * @param [type] $merchantid 乐刷商户id * @param [type] $machine_sn pos机sn * @param [type] $type 类型,:1:增加绑定, 2:取消绑定 * @return [type] [description] */ private function doBindPosMachine($merchantid, $machine_sn, $type){ $paramArray = array(); $paramArray['cmd'] = 3; $paramArray['agentid'] = $this->leshua_agent_id; $paramArray['operate_type'] = $type; $paramArray['merchantid'] = $merchantid; $paramArray['pinpad_uuid'] = $machine_sn; $paramArray['sign'] = $this->getLeshuaSign(array($this->leshua_agent_id,$type,$merchantid,$machine_sn)); $result = LewaimaiHttp::POST($this->leshua_agent_url,$paramArray); $result = json_decode($result,true); if (is_array($result) && isset($result['error_code']) && $result['error_code'] == 0 && $result['error_msg'] == '成功') { return true; } return $result['error_msg']; } /** * 获取签名信息 * @param [type] $paramArray [description] * @return [type] [description] */ private function getLeshuaSign($paramArray){ $array = array( $this->leshua_agent_key, date('Ymd',time()), ); foreach ($paramArray as $key => $value) { $array[] = $value; } $string = implode('',$array); $sign = strtoupper(md5($string)); return $sign; } /** * 获取二进制图片信息 * @param [type] $array [description] * @return [type] [description] */ private function getImageData($array){ $returnArray = array(); foreach ($array as $key => $value) { $data = file_get_contents($value); if (empty($data)) { unset($returnArray); return false; } $returnArray[$key] = base64_encode($data); } return $returnArray; } }