| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- <?php
- class Leshua {
- //测试
- // private $leshua_agent_id = '10';
- // private $leshua_agent_key = '17B10781A8C5178870197906F71749D8';
- // private $leshua_agent_url = 'http://61.141.235.66:61000/cgi-bin/merchantitf.cgi';
- //正式
- private $leshua_agent_id = '55765';
- private $leshua_agent_key = '38AF22C1EBF3884F31D741138347BFF9';//进件key
- private $leshua_agent_url = 'http://qudaoshang.yeahka.com/cgi-bin/merchantitf.cgi';
- /**
- * 乐刷商户导入
- * @param [type] $admin_id 主账号id
- */
- public static function addLeshuaMerchant($id){
- $leshua = new leshua();
- $result = $leshua->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;
- }
- }
|