1.
微信小程序開發靜默登入,通過獲取用戶的open_id來實現靜默登入,獲取open_id,不需要用戶同意,獲取code再通過code獲取微信的open_id。
wx.login({
success(res){
_this.setData({
code:res.code,
});
console.log(res.code);
}
});
獲取code后用code去獲取用戶的open_id
/**獲取open_id*/
publicfunctionweixin_login($code){
$ret['code']=200;
$app_id='xxxx';
$app_secret='xxxx';
$code=$code;//微信前端登陸獲取的CODE
//server調用微信提供的jsoncode2session接口獲取openid,session_key
$url="https://api.weixin.qq.com/sns/jscode2session";
$params=array(
'appid'=>$app_id,
'secret'=>$app_secret,
'js_code'=>$code,
'grant_type'=>'authorization_code'
);
$res=makeRequest($url,$params);//curl
if($res['code']!==200||!isset($res['result'])||!isset($res['result'])){
$ret['code']=500;
$ret['msg']='調用jsoncode2session失敗';
}
$reqData=json_decode($res['result'],true);
if(!isset($reqData['session_key'])){
$ret['code']=500;
$ret['msg']='獲得session_key失敗';
$ret['error']=$reqData;
}
//$ret['session_key']=$reqData['session_key'];
$ret=$reqData['openid'];
return$ret;
}
2.獲取用戶頭像、昵稱 信息
getUserProfile(){
constapp=this
console.log("wx.canIUse('getUserProfile')",wx.canIUse('getUserProfile'));
wx.canIUse('getUserProfile')&&wx.getUserProfile({
lang:'zh_CN',
desc:'獲取用戶相關信息',
success({
userInfo
}){
console.log('用戶同意了授權')
console.log('userInfo:',userInfo)
App.getUserInfo(userInfo,()=>{
//跳轉回原頁面
app.onNavigateBack(1)
});
},
fail(){
console.log('用戶拒絕了授權')
}
})
},
/**
*授權登錄
*/
getUserInfo(userInfo,callback){
letApp=this;
wx.showLoading({
title:"正在登錄",
mask:true
});
//執行微信登錄
App._post_form('Member/userInfo',{
user_info:JSON.stringify(userInfo),
},result=>{
//執行回調函數
callback&&callback();
},false,()=>{
wx.hideLoading();
});
},
3.獲取用戶手機號,新版的必須要用戶點擊button才能觸發獲取手機
通過code 在去獲取手機
<buttonclass="btnAuthorize"open-type="getPhoneNumber"bindgetphonenumber="getPhoneNumber">去授權</button>
getPhoneNumber(e){
let_this=this
//app.wx_login(e.detail.code);
app._post_form('Member/get_phone',{
phone_code:e.detail.code,
},result=>{
},false,()=>{
wx.hideLoading();
});
},
先獲取access_token
/**獲取AccessToken*/
functionaccess_token(){
$app_id='xxxx';
$app_secret=xxxx;
$url="https://api.weixin.qq.com/cgi-bin/token";
$params=array(
'appid'=>$app_id,
'secret'=>$app_secret,
'grant_type'=>'client_credential'
);
$res=makeRequest($url,$params);
$reqData=json_decode($res['result'],true);
return$reqData['access_token'];
}
通過access_token和code 獲取手機
publicfunctionweixin_phone($code){
//$ret['code']=200;
$key=$this->access_token();
$url="https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=".$key;
$params=array(
'code'=>$code,
);
$res=makeRequest($url,$params,'json');//curl params數據必須是json
$reqData=json_decode($res['result'],true);
return$reqData['phone_info']['phoneNumber'];
}
消息訂閱,這里以狀態審核為例子
紅圈就是發送數據的鍵名
publicfunctionsubmessage(){
/**@var*
*微信小程序消息訂閱
*/
$access_token=$this->access_token();
$url_2="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=".$access_token;
$template_id="xxx";//模板id
$data['touser']=$openid;//open_id
$data['template_id']=$template_id;
$data['page']="pages/login/index";//用戶點擊消息跳轉頁面
$data['data']=array(
'thing7'=>array('value'=>$realname),
'phrase2'=>array('value'=>'審核通過'),//字數不能超過5個
'time3'=>array('value'=>date('Y-m-dH:i',time())),
'thing4'=>array('value'=>'身份驗證審核'),
);
//$data['data']=json_encode($data['data']);
//跳轉小程序類型:developer為開發版;trial為體驗版;formal為正式版;默認為正式版
$data['miniprogram_state']='trial';
//print_r($data);
$result=$this->posturl($url_2,$data);
if($result['errmsg']=='ok'){
return1;
}else{
return$result['errmsg'];
}
本文題目:微信小程序開發應用之靜默登錄
文章源于:http://m.newbst.com/news15/237365.html
網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有小程序開發、微信小程序等
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯