微信小程式獲取手機號,雲函式解密,寫入雲資料庫
阿新 • • 發佈:2020-11-25
1.頁面
在miniprogram下新建getPhoneNumber資料夾
getPhoneNumber.wxml
<view class="container"> <view class='header'> <image class="img" mode="widthFix" src='/images/wx_login.png'></image> </view> <view class='content'> <view class="tx">申請獲取你的手機號</view> </view> <button class="bt" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">授權登入</button> </view>
getPhoneNumber.wxss
.container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box; } .tx{ font-weight: bold; } .bt{ margin-top: 10px; border: 1px solid #3b3d3b; background-color: #4ac44a; } .header{ display:flex; justify-content: center; align-items:center; } .img{ width: 100px; }
getPhoneNumber.js
const db = wx.cloud.database() Page({ getPhoneNumber(e) { console.log("點選後獲得",e) wx.cloud.callFunction({ name:'getPhone', data:{ cloudID:e.detail.cloudID } }).then(res=>{ console.log("獲取成功",res) this.setData({ phone:"獲得的手機號:"+res.result.list[0].data.phoneNumber }) db.collection('user').add({ data:{ telephone:res.result.list[0].data.phoneNumber }, success: res => { wx.showToast({ title: '新增記錄成功', }) console.log('[資料庫] [新增記錄] 成功,記錄 _id: ', res._id) }, fail: err => { wx.showToast({ icon: 'none', title: '新增記錄失敗' }) console.error('[資料庫] [新增記錄] 失敗:', err) } }) wx.redirectTo({ url: '../homepage/homepage'//寫入資料庫後跳轉到首頁 }) }).catch(err=>{ console.log("獲取失敗",err) }) }, })
2.雲函式
(1)首先確認你是否安裝了Node和npm
進入cmd終端,檢視node和npm版本,顯示版本則已安裝,若未安裝請先安裝
(2)右擊專案的此資料夾,選擇新建Node.js雲函式
設定雲函式名為getPhone
(3)編寫雲函式(getPhone/index.js)
// 雲函式入口檔案
const cloud = require('wx-server-sdk')
cloud.init({
env:'XXXXX'//此處為你的環境名
})
// 雲函式入口函式
exports.main = async (event, context) => {
const res=await cloud.getOpenData({
list:[event.cloudID]
})
return res
}
(4)上傳雲函式
以管理員身份執行cmd命令列,進入雲函式資料夾路徑,執行
npm install --save wx-server-sdk@latest
如圖,wx-server-sdk安裝完畢
右擊此資料夾,選擇”上傳並部署:所有檔案“
至此,雲函式上傳完畢。
注意:每次修改雲函式後都要上傳一次,否則修改無效!(這個坑之前踩了很久才發現原因)
(5)執行
資料庫增加了一條登入手機號資訊