当前位置:   article > 正文

WeChat------授权手机号操作_海外版wechat如何微信授权手机号

海外版wechat如何微信授权手机号

 

手机号授权简单流程

公司项目的流程,不代表大众的写法哦 

 

JS部分:

  1. data: {
  2. isGetNumber: true, // 按钮切换
  3. },
  4. methods: {
  5. // 手机号授权
  6. getPhoneNumber(e) {
  7. console.log(e);
  8. this.setData({
  9. iv: e.detail.iv,
  10. encryptedData: e.detail.encryptedData
  11. })
  12. this.getPhone()
  13. },
  14. getPhone: function () {
  15. let self = this;
  16. // 小程序自身的解析加密字段的方法,成功即证明存在session_key(登录未失效),直接请求后端接口获取手机号
  17. wx.checkSession({
  18. success() {
  19. self.savePhone();
  20. },
  21. fail() {
  22. // session_key 已经失效,需要重新执行登录流程
  23. self.getopenid().then(function (res) {
  24. self.savePhone();
  25. }) //重新登录
  26. }
  27. })
  28. },
  29. // 后台接口:为了获取到授权后的手机号,赋值到需要的地方
  30. savePhone: function () {
  31. let self = this;
  32. wx.request({
  33. method: 'POST',
  34. url: app.globalData.requestHostYmm + '/ymmopenapi/sgw/v1/wechat/aesdecrypt',
  35. header: app.globalData.header,
  36. data: {
  37. openId: app.globalData.openId, // 这个在登录时赋值全局即可
  38. secretKey: app.globalData.session_key, 这里在下面获取或者全局有的话赋值获取
  39. encryptedData: self.data.encryptedData,
  40. iv: self.data.iv,
  41. sceneType: 'PhoneNoAuthorization',
  42. appId: '自己小程序的appid'
  43. },
  44. success: function (res) {
  45. console.log('res.data.phoneNo', res.data.phoneNo);
  46. if (res.data.phoneNo) {
  47. wx.setStorageSync('isGetNumber', 'getNumber=' + res.data.phoneNo);
  48. // 赋值手机号
  49. self.setData({
  50. mobile: res.data.phoneNo,
  51. })
  52. // 这里是调用任何接口,在手机号授权后的一切操作
  53. self.quickDocumentSkip()
  54. }
  55. }
  56. })
  57. },
  58. //获取openoid : 后台接口处理返回对应的session_key
  59. getopenid() {
  60. var self = this;
  61. return new Promise(function (resolve, reject) {
  62. wx.login({
  63. success(res) {
  64. if (res.code) {
  65. // 发起网络请求
  66. wx.request({
  67. url: app.globalData.requestHostYmm + '/ymmopenapi/sgw/v1/third/aid/getOpenId',
  68. header: app.globalData.header,
  69. data: {
  70. appid: app.globalData.appId,
  71. js_code: res.code,
  72. param: app.globalData.param,
  73. platformType: 'MiniProgram'
  74. },
  75. success: function (res) {
  76. app.globalData.session_key = res.data.session_key;
  77. resolve(res)
  78. }
  79. })
  80. }
  81. }
  82. })
  83. })
  84. },
  85. }

wxml部分:

  1. <view class="footer">
  2. <view class="sureBtn" bindtap='quickDocumentSkip' wx:if="{{isGetNumber}}">
  3. 确认
  4. </view>
  5. <button class="sureBtn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" wx:if="{{!isGetNumber}}">确认</button>
  6. </view>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/284633
推荐阅读
相关标签
  

闽ICP备14008679号