scan.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // logs.js
  2. const util = require('../../utils/util.js')
  3. Page({
  4. data: {
  5. logs: [],
  6. canGetPhoneNumber: false,
  7. },
  8. onSaveExitState: function() {
  9. wx.clearStorage();
  10. console.log("onSaveExitState=");
  11. // 返回保存的数据和超时时间(可选)
  12. return {
  13. expireTimeStamp: Date.now() + 24 * 60 * 60 * 1000 // 超时时间戳,例如设置为1天后过期
  14. };
  15. },
  16. //扫码
  17. tapScan(){
  18. wx.scanCode({
  19. success: function(res) {
  20. console.log('扫码获取的参数',res);
  21. wx.clearStorage();
  22. wx.setStorageSync('res',res);
  23. wx.setStorageSync('scanResultExpiresAt', Date.now() + 2 * 60 * 60 * 1000); // 超时时间戳,例如设置为2小时后过期
  24. wx.reLaunch({
  25. url: '/pages/index/index?res='+res,//传res
  26. })
  27. }
  28. })
  29. },
  30. onLoad() {
  31. console.log("scan页面");
  32. },
  33. login: function() {
  34. var that = this;
  35. wx.login({
  36. success: res => {
  37. if (res.code) {
  38. // 发送 code 到服务器换取 session_key, openid
  39. wx.request({
  40. url: 'https://yourserver.com/api/login',
  41. data: {
  42. code: res.code
  43. },
  44. success: function(loginRes) {
  45. if (loginRes.data.success) {
  46. wx.setStorageSync('session_key', loginRes.data.session_key);
  47. wx.setStorageSync('openid', loginRes.data.openid);
  48. // 可以在这里提示用户进行手机号授权
  49. this.setData({
  50. canGetPhoneNumber: true
  51. });
  52. }
  53. }
  54. });
  55. }
  56. }
  57. });
  58. },
  59. getPhoneNumber: function(e) {
  60. if (e.detail.errMsg !== "getPhoneNumber:ok") {
  61. return;
  62. }
  63. const { encryptedData, iv } = e.detail;
  64. wx.request({
  65. url: 'https://yourserver.com/api/decrypt_phone',
  66. data: {
  67. encryptedData,
  68. iv,
  69. session_key: wx.getStorageSync('session_key')
  70. },
  71. success: function(decryptRes) {
  72. if (decryptRes.data.success) {
  73. console.log('解密后的手机号:', decryptRes.data.phoneNumber);
  74. // 处理解密后的手机号
  75. }
  76. }
  77. });
  78. },
  79. // 绑定按钮点击事件
  80. bindGetPhoneNumber: function() {
  81. if (this.data.canGetPhoneNumber) {
  82. wx.getPhoneNumber({
  83. success: this.getPhoneNumber
  84. });
  85. }
  86. }
  87. })