WeChatウィジェット携帯番号getPhoneNumberを取得

10976 ワード

WeChatウィジェット携帯番号getPhoneNumberを取得

  • 1. buttonにopen-typeを設定するタイプはgetPhoneNumber
  • です.
  • 2. codeを取得し、取得したivをencryptedDataとともにバックエンド復号
  • に渡す.
    最近、微信の小さなプログラムを開発して、ユーザーの携帯電話の番号を取得して展示する必要があります.ネット上には多くのケースがありますが、違いがあって、頭が痛いです.最後に数十編の同業者の共有を結びつけてからやっとできました.今、共有して、穴に入らないことを望んでいます.

    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でパラメータを伝達することをサポートし、その他は公式サイトと一致している.
    后ろに书きます~~初めて小さいプログラムに接触して、多くの知识の点はとてもはっきりしていないで、今このように携帯番号を授権する机能を実现しましたが、问题があるかどうかはしばらく知らないで、大牛のオンライン指正を歓迎して、下で早めにあなたの批判に感谢します.