『壹』 微信小程序如何開發,怎麼獲取openID和用戶信息
您好!很高興能為您解答, :
,您提到的「微信小程序怎麼開發」開發之前必須要完成和注冊認證。如果是個人或者小公司想開發微信小程序,也可以找微信認證第三方開發商,比如贏在移動、正品科技等。
1、微信小程序注冊
在微信公眾平台官網首頁,按照提示點擊右上角的「立即注冊」按鈕,裡面總過有12步,按照要求提交就可以了。
2、小程序申請微信認證
政府、媒體、其他組織類型帳號,必須通過微信認證驗證主體身份。企業類型帳號,可以根據需要確定是否申請微信認證。已認證帳號可使用微信支付、微信卡券等高級許可權。
認證入口:登錄小程序—設置—基本設置—微信認證—詳情
3、小程序申請微信支付
已認證的小程序可申請微信支付。
4、小程序綁定微信開放平台帳號
小程序綁定微信開放平台帳號後,可與帳號下的其他移動應用、網站應用及公眾號打通,通過UnionID機制滿足在多個應用和公眾號之間統一用戶帳號的需求。
UnionID機制說明:如果開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程序),可通過UnionID來區分用戶的唯一性,因為只要是同一個微信開放平台帳號下的移動應用、網站應用和公眾帳號(包括小程序),用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平台下的不同應用,UnionID是相同的。用戶的UnionID可通過調用「獲取用戶信息」介面獲取。
5、了解「獲取用戶信息」介面請查看開發文檔—API—開放介面—用戶信息。
綁定小程序流程說明:登錄微信開放平台、—管理中心—公眾帳號—綁定公眾帳號
注意:微信開放平台帳號必須完成開發者資質認證才可以綁定小程序。
『貳』 微信小程序獲取用戶openId、手機號
對於第一次實現小程序獲取握慎謹用戶手機號、用戶信息功能的程序猿來說,有一個著手的思路可以事半功倍。本文可以給你提供這個思路,助你快速准確完成需求。
調用wx.login,在成功回調中孝派,拿自己小程序的appId、secret請求介面 url: ' https://api.weixin.qq.com/sns/jscode2session?appid=' + appId + '&secret=' + secret + '&js_code=' +code + '&grant_type=authorization_code',請求成功即可拿到openid和session-key
小程序的appId必須要在微信公眾平台完成微信認證(裡面需要上傳一些企業的一些證件和信息)才能有獲取用戶手機號的許可權
最後拿用戶的獲取到的e.detail.iv、和e.detail.encryptedData(加密的手機號)和前面拿到過的session-key傳給後台,交給後台解密即可
具體解密規則參段基考官方文檔:( https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html )
『叄』 如何獲取微信小程序用戶openid
onLaunch: function(){
var that = this
var user=wx.getStorageSync('user') || {};
var userInfo=wx.getStorageSync('userInfo') || {}; //查看緩存是否檔好有**值
if((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600))&&(!userInfo.nickName)){
wx.login({
success: function(res) {
if (res.code) {
//爛此發起網路請求獲取openid
// console.log(res.code)
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appId=你的appid&secret=你的secret&js_code='+res.code+'&grant_type=authorization_code',
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
// header: {}, // 設置請求的 header
success: function(res){
var obj={};
obj.openid=res.data.openid;
obj.expires_in=Date.now()+res.data.expires_in;
// console.log(obj);
wx.setStorageSync('openid', obj);//存儲openid
}
});
//獲取用戶資料
wx.getUserInfo({
success: function (res) {
// console.log("111")
var users={};
users.avatarUrl=res.userInfo.avatarUrl;
users.nickName=res.userInfo.nickName;
console.log(users);
wx.setStorageSync('userInfo', users);//存儲用戶信息
}
})
} else {
console.log('飢蠢迅獲取用戶登錄態失敗!' + res.errMsg)
}
}
})
}
}