1. 程式人生 > 實用技巧 >小程式授權

小程式授權

  public function getopenid()
{
$APPID = 'wx1a8b582067ebb8a5';//自己配置
$AppSecret = '08fb395003441b482583b218d306280b';//自己配置
$file =file_get_contents("php://input");

$code=json_decode($file,true);

if (!$code) {
$code =$code['code'];
}

if ($code['code']) {
$url = "https://api.weixin.qq.com/sns/jscode2session?appid=$APPID&secret=$AppSecret&js_code=" . $code['code'] . "&grant_type=authorization_code";
$rst = $this->http_get($url, TRUE);
$lists = json_decode($rst, TRUE);
//$is_dl 是否繫結手機號(1未繫結手機號 2繫結手機號)
//$is_pwd 是否繫結提現密碼(1未繫結提現密碼 2繫結提現密碼)
if ($lists['openid']) {
$yhxx = M('user')->where(array('openid' => $lists['openid']))->find();
if ($yhxx['id']) {
$lists1['login_time'] = time();
$lists1['openid'] = $lists['openid'];
// vendor("PHP.wxBizDataCrypt");
// $encryptedData = I('encryptedData');
//
// $iv = I('iv');
// $pc= new \WXBizDataCrypt($APPID, $lists['sign']);
// $errCode=$pc->decryptData($encryptedData,$iv,$code);
$aa1 = M('user')->where(array('openid' => $lists['openid'], 'is_xs' => 1))->save($lists1);
$aa = M('user')->where(array('id' => $yhxx['id']))->find();
} else {
$lists1['login_time'] = time();
$lists1['last_time'] = time();
$lists1['addtime'] = time();
$lists1['openid'] = $lists['openid'];

//$lists1['session_key']=$lists['session_key'];

//設定推薦人
/*if($_POST['t_id']){
$lists1['t_id']=$_POST['t_id'];
}*/
if ($yhaa = M('user')->add($lists1)) {
$id= M()->getLastInsID();
$aa = M('user')->where(array('id' => $id))->find();
}

}
if ($aa) {
$lists['phone'] = $aa['phone'];
$data = array("result" => '1', "message" => "登入成功!",'openid' => $lists['openid'],"id"=>$aa['id'],"is_dl"=>1); //組裝JSON
echo json_encode($data); //返回
die;
} else {
$data = array("result" => '2', "message" => "系統繁忙,請重試!"); //組裝JSON
echo json_encode($data); //返回
die;
}
} else {
$data = array("result" => '11', "message" => "系統繁忙,請重試!"); //組裝JSON
echo json_encode($data); //返回
die;
}
} else {
$data = array("result" => '3', "message" => "引數有誤!", "code" => $code); //組裝JSON
echo json_encode($data); //返回
die;
}
}

public function http_get($url, $ssl = FALSE)
{
$curl = curl_init();//啟動一個curl會話
curl_setopt($curl, CURLOPT_URL, $url);//要訪問的地址
if ($ssl) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);//對認證證書檢查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);//從證書中檢查ssl加密演算法是否存在
curl_setopt($curl, CURLOPT_SSLVERSION, 4);
}
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);//模擬使用者使用的瀏覽器
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);//自動設定referer
curl_setopt($curl, CURLOPT_TIMEOUT, 30);//設定超時限制防止死迴圈
curl_setopt($curl, CURLOPT_HEADER, 0);//顯示返回的header區域內容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//獲取的資訊以檔案流的形式返回
$tmpinfo = curl_exec($curl);//執行操作
if (curl_errno($curl)) {
var_dump(curl_error($curl));
return FALSE;
}
curl_close($curl);//關閉會話
return $tmpinfo;
}