gatewayUrl,$this->app_id,$this->charset,$this->privateKeyFile,$this->zmPublicKeyFile);
$RSAUtil = new RSAUtil();
$identity_type ='2';
$identity_param =json_encode(array('certNo'=>$IDnumber,'name'=>$name,'certType'=>"IDENTITY_CARD"));
$request['app_id'] = $this->app_id;
$request['charset'] = $this->charset;
$request['method'] = 'zhima.auth.info.authorize';
$request['version'] = $this->version;
$request['platform'] = $this->platform;
$request['params'] = $RSAUtil->rsaEncrypt($str,$this->zmPublicKeyFile);
$request['sign'] = $RSAUtil->sign($str,$this->privateKeyFile);
$request['identity_type'] = $identity_type;
$request['identity_param'] = $identity_param;
$str ='identity_type='.urlencode($identity_type).'&identity_param='.urlencode($identity_param).'';
$request = new ZhimaAuthInfoAuthorizeRequest ();
$request->setIdentityType ("2");
// $request->setParams ("2");
$request->setIdentityParam ($identity_param);
//$request->setBizParams ( "{\"auth_code\":\"M_APPPC_CERT\",\"state\":\"透传参数\"}" ); //
$url = $client->generatePageRedirectInvokeUrl ( $request );
//dump($url);
if($url){
$json['msg'] =1;
$json['url'] =$url;
}else{
$json['msg'] =0;
$json['info'] ='参数错误';
}
echo json_encode($json);exit;
}else{
$json['msg'] =0;
$json['info'] ='参数错误';
echo json_encode($json);exit;
}
}
//返回
public function returndata(){
$params=$_GET['params'];
$sign=$_GET['sign'];
if(!$sign){
$this->redirect('Member/rz');exit;
}
// 判断串中是否有%,有则需要decode
// dump($sign);
$params = strstr ( $params, '%' ) ? urldecode ( $params ) : $params;
$sign = strstr ( $sign, '%' ) ? urldecode ( $sign ) : $sign;
$client = new ZmopClient ( $this->gatewayUrl, $this->app_id, $this->charset, $this->privateKeyFile, $this->zmPublicKeyFile );
$result = $client->decryptAndVerifySign ( $params, $sign );
//转数组
$parts = explode('&',$result);
$array=array();
foreach($parts as $k=>$v){
$parts[$k] = explode('=',$v);
$array[$parts[$k]['0']] = $parts[$k]['1'];
}
//dump($array['success']='false');
if($array['success']!='false'){
//dump($array);exit;
$res =$this->ToRz($array);
if($res->success){
//返回数据 更新会员信息
$is_zhima = M('member')->where(array('id'=>cookie('id')))->find();
if($is_zhima['zhima']!=$res->zm_score){
$save['open_id'] = $array['open_id'];
$save['zhima'] = $res->zm_score;
$save['state'] = '1';
$save['optime'] = time();
$save['rztime'] = time();
$member = M('member')->where(array('id'=>cookie('id')))->save($save);
}
echo '';
}
///dump($member);
// dump($result);
}else{
//echo '';
$this->redirect('Member/rz');exit;
}
}
}