WeChatウィジェット携帯番号getPhoneNumberを取得
10976 ワード
WeChatウィジェット携帯番号getPhoneNumberを取得
最近、微信の小さなプログラムを開発して、ユーザーの携帯電話の番号を取得して展示する必要があります.ネット上には多くのケースがありますが、違いがあって、頭が痛いです.最後に数十編の同業者の共有を結びつけてからやっとできました.今、共有して、穴に入らないことを望んでいます.
1.buttonにopen-typeを設定するタイプはgetPhoneNumber
// a.wxml
<button formType="submit" class="formbutton" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> </button>
2.codeを取得し、取得したivをencryptedDataとともにバックエンド復号に渡す
認証された携帯電話番号でログインステータスがリフレッシュされる可能性があるため、ここではonloadライフサイクルでログインし、ログインステータスが有効かどうかを検証し、暗号化情報をバックエンドに転送して復号します.a.jsのonloadページにコードを追加
// a.js
onLoad: function (options) {
this.login()
}
携帯番号を取得する関数は次のとおりです.
// a.js
//
getPhoneNumber: function (e) {
console.log("getPhoneNumber", e.detail)
let iv = e.detail.iv
let encryptedData = e.detail.encryptedData
let self = this
//
wx.checkSession({
success: res => {
console.log("res_checkSession- ", res)
if (e.detail.errMsg == "getPhoneNumber:ok") {
cwx.request({
// iv,encryptedData,code
url: "*********",
data: {
code: self.data.code,
encryptedData: encryptedData,
iv: iv
},
complete: res => {
console.log(" ", res)
if (res && res.data && res.data.retCode == 0) {
let phoneNumber = res.data.phoneNumber
self.setData({
phoneNumber
})
} else {
wx.showToast({
title: " , ",
icon: "none",
duration: 2000
})
}
}
})
} else {
wx.showToast({
title: " , ",
icon: "none",
duration: 2000
})
}
},
fail: res => {
console.log("res_checkSession- ", res)
self.login()
}
})
},
// wx.login code
login: function () {
let self = this
cwx.login({
success: res => {
console.log("login-code", res)
let code = res.code
self.setData({
code
})
}
})
}
ここでcwxは会社パッケージの方法であり、dataでパラメータを伝達することをサポートし、その他は公式サイトと一致している.
后ろに书きます~~初めて小さいプログラムに接触して、多くの知识の点はとてもはっきりしていないで、今このように携帯番号を授権する机能を実现しましたが、问题があるかどうかはしばらく知らないで、大牛のオンライン指正を歓迎して、下で早めにあなたの批判に感谢します.