123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- defined('ONLY_ONLY_ONLY') or exit('Access Denied');
- define('LOG_CATALOG',basename(__FILE__));
- try{
- $subSystem=intval(SUBSYS_CAPITAL2_MINA);
- $GPC=input_param_handle(false);
- $ajaxdata = input_getPostObj();
- $baseUserId=isset($ajaxdata["baseUserId"])?$ajaxdata["baseUserId"]:$GPC["baseUserId"];
- $baseUser = pdo_fetch("select * from base_user where id=" . intval($baseUserId));
- if(empty($baseUser)) throw new GeneralException("","没有传递必要的baseUserId参数或没有定位到baseUser记录");
- if(intval($baseUser["subsystem"])!=intval($subSystem)) throw new GeneralException("","子系统不一致");
- $sesseion_key=$baseUser['weixin_sessionkey'];
- $iv=isset($ajaxdata["iv"])?$ajaxdata["iv"]:$GPC["iv"];
- if(empty($iv)) throw new GeneralException("","没有传递必要的iv参数");
- $encryptedData=isset($ajaxdata["encryptedData"])?$ajaxdata["encryptedData"]:$GPC["encryptedData"];
- if(empty($encryptedData)) throw new GeneralException("","没有传递必要的encryptedData参数");
- $wxParams = bizwx_fetchWxParams($subSystem);
- $mina_appid=$wxParams["mina_appid"];
- $mina_appSecret=$wxParams["mina_appSecret"];
- require_once WEB_PHY_ROOT."/base/wxsrv.php";
- $decryData=weixin_decryptData($mina_appid,$sesseion_key,$encryptedData,$iv);
- $phoneNumber=$decryData["purePhoneNumber"];
- if(empty($phoneNumber)) throw new GeneralException("","没有提取到手机号信息");
- $regmode = isset($ajaxdata["regmode"]) ? $ajaxdata["regmode"] : $GPC["regmode"];
- if(empty(trim($regmode))){
- /***UPSERT手机用户对应的业务用户记录**start***/
- $sqlTemp="";
- $sqlParam=array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":base_userid"]=$baseUser["id"];
- $sqlParam[":mobile"]=trim($phoneNumber);
- $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 补充手机号 \n";
- $sqlTemp.=" update base_user SET `updatetime`=:nowtime, mobile=:mobile ,remark=concat(:remark,ifnull(remark,'')) where id=:base_userid;";
- $backdata=pdo_query3($sqlTemp,$sqlParam);
- $bizTrader2=pdo_fetch("select zu.*,bu.id as buid,bu.wxmina_appid,bu.wxmina_openid
- from biz_trader2 as zu
- left join base_user as bu on bu.id=zu.base_userid
- where zu.`base_userid`=:base_userid limit 1;",array(":base_userid"=>$baseUser["id"],));
- }else{
- /***UPSERT手机用户记录**start***/
- $sqlTemp="";
- $sqlParam=array();
- $sqlParam[":nowtime"]=time();
- $sqlParam[":subsystem"]=intval($subSystem);
- $sqlParam[":mobile"]=trim($phoneNumber);
- $sqlParam[":salt"] = random(8);
- $sqlParam[":remark"]="[" . date("Y-m-d H:i:s", time()) . "] 初始化注册 \n";
- $sqlTemp.=" set @handle_id=0; ";
- $sqlTemp.=" select @handle_id:=id from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;";
- $sqlTemp.=" insert into base_user ( `createtime`,`subsystem`,`mobile`,`salt`, remark )";
- $sqlTemp.=" select :nowtime ,:subsystem ,:mobile , :salt,:remark from dual where ifnull(@handle_id,0)=0;";
- $sqlTemp.=" update base_user SET `updatetime`=:nowtime, `salt`=:salt, remark=concat(:remark,ifnull(remark,'')) where ifnull(@handle_id,0)<>0 and subsystem=:subsystem and `mobile`=:mobile;";
- $sqlTemp.=" set @base_userid=0; ";
- $sqlTemp.=" select @base_userid:=id from base_user where subsystem=:subsystem and `mobile`=:mobile limit 1;";
- $sqlTemp.=" set @handle_id=0; ";
- $sqlTemp.=" select @handle_id:=`id` from biz_trader2 where `base_userid`=@base_userid limit 1;";
- $sqlTemp.=" insert into biz_trader2 ( `createtime`,`base_userid`, remark )";
- $sqlTemp.=" select :nowtime, @base_userid,:remark from dual where ifnull(@handle_id,0)=0 ;";
- $sqlTemp.=" update biz_trader2 SET `updatetime`=:nowtime, remark=concat(:remark,ifnull(remark,'')) where ifnull(@handle_id,0)!=0 and `base_userid`=@base_userid;";
- $sqlTemp.=" set @biz_userid=0; ";
- $sqlTemp.=" select @biz_userid:=id from biz_trader2 where `base_userid`=@base_userid limit 1;";
- $sqlTemp.=" update base_user SET `updatetime`=:nowtime, biz_userid=@biz_userid where id=@base_userid;";
- $sqlTemp.=" select * from base_user where id=@base_userid limit 1;";
- $sqlTemp.=" select * from biz_trader2 where `base_userid`=@base_userid limit 1;";
- $dataset=pdo_query3($sqlTemp,$sqlParam);
- /***UPSERT手机用户记录**finish***/
- $baseUser=$dataset[13][0];
- if(empty($baseUser)) throw new GeneralException("","异常");
- $bizTrader2=$dataset[14][0];
- if(empty($bizTrader2)) throw new GeneralException("","异常");
- }
- $FOREND_TOKEN = base_buildForendToken($baseUser);
- $ajaxRes->Result=array(
- "forendToken"=>$FOREND_TOKEN,
- "baseUser"=>$baseUser,
- "bizTrader2"=>$bizTrader2,
- );
- }catch(Throwable $e){
- $friendMsg=get_class($e)=='GeneralException'?$e->friendmsg:$e->getMessage();
- throw new GeneralException("General","获取用户登录信息时发生异常:".$friendMsg,LOG_CATALOG,0,$e);
- }
|