3***@qq.com
3***@qq.com
  • 发布:2024-07-31 08:24
  • 更新:2024-07-31 09:55
  • 阅读:131

没有权限,请先开通云开发或者云托管 请问云托管怎么弄

分类:uniCloud

微信报错
my.js? [sm]:35 调用云函数失败: Error: cloud.callFunction:fail Error: errCode: -601034 | errMsg: 没有权限,请先开通云开发或者云托管 (callId: 1722384784328-0.7449541406839615) (trace: 8:13:4 start->8:13:4 system error (Error: errCode: -601034 | errMsg: 没有权限,请先开通云开发或者云托管), abort)
at R (<anonymous>:1:245532)
at <anonymous>:1:280548(env: Windows,mp,1.06.2405020; lib: 3.5.0)

vue文件
<template>
<button open-type="getPhoneNumber" @getphonenumber="handleGetPhoneNumber">获取手机号</button>
</template>

<script setup>
const handleGetPhoneNumber = (e) => {
// 检查用户是否同意授权
if (e.detail.errMsg === 'getPhoneNumber:ok') {
const encryptedData = e.detail.encryptedData; // 获取加密数据
const iv = e.detail.iv; // 获取初始向量

// 先初始化云开发环境  
wx.cloud.init({  
  env: 'your-env-id', // 替换为你的云环境 ID  
  traceUser: true, // 是否在将用户访问记录到用户管理中,在控制台中可见  
});  

// 获取 sessionKey,通常在用户登录后获得  
wx.login({  
  success: (res) => {  
    // 假设你有一个后端接口来获取 sessionKey  
    wx.cloud.callFunction({  
      name: 'user', // 调用云函数  
      data: {  
        encryptedData: encryptedData,  
        iv: iv,  
        sessionKey: wx.getStorageSync('sessionKey') // 从本地存储获取 sessionKey  
      },  
      success: (res) => {  
        if (res.result.success) {  
          console.log('解密后的手机号:', res.result.data.phoneNumber);  
          // 处理解密后的手机号  
        } else {  
          console.error('解密失败:', res.result.error);  
        }  
      },  
      fail: (err) => {  
        console.error('调用云函数失败:', err);  
      }  
    });  
  }  
});  

} else {
console.log('用户拒绝授权手机号');
}
};
</script>

<style scoped>
/ 可以添加样式 /
</style>

云端服务代码
const cloud = require('wx-server-sdk');
const crypto = require('crypto');

cloud.init({
env: 'env-00jxh1dsnrnx', // 替换为你的云环境 ID
});

exports.main = async (event, context) => {
const { encryptedData, iv, sessionKey } = event;

// 解密手机号
try {
const decryptedData = decryptData(encryptedData, iv, sessionKey);
return { success: true, data: decryptedData };
} catch (err) {
return { success: false, error: err.message };
}
};

// 解密函数
function decryptData(encryptedData, iv, sessionKey) {
// base64 decode
const sessionKeyBuffer = Buffer.from(sessionKey, 'base64');
const encryptedDataBuffer = Buffer.from(encryptedData, 'base64');
const ivBuffer = Buffer.from(iv, 'base64');

// decrypt
const decipher = crypto.createDecipheriv('aes-128-cbc', sessionKeyBuffer, ivBuffer);
let decoded = decipher.update(encryptedDataBuffer, 'binary', 'utf8');
decoded += decipher.final('utf8');

decoded = JSON.parse(decoded);

// 校验数据的来源
if (decoded.watermark.appid !== cloud.getWXContext().APPID) {
throw new Error('Invalid Buffer');
}
return decoded;
}
自己不懂这个是什么也找不到教程,我很想要开发自己的业务,麻烦好心人帮帮我

2024-07-31 08:24 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

你发错的地方了,你这是微信云开发,要去微信社区发

  • 3***@qq.com (作者)

    但是我是uniapp

    2024-07-31 10:04

  • 3***@qq.com (作者)

    他和微信写的也不一样

    2024-07-31 10:05

  • 3***@qq.com (作者)

    你可以帮我解决获取手机号事件: {type: "getphonenumber", timeStamp: 16431, target: {…}, currentTarget: {…}, mark: {…}, …}

    my.js? [sm]:12 encryptedData: cs2excyGDuFxL/mzfGD5eoscyZrAVDNb3yQrEck+KZTMpBTDRhxM2RNpb/NzEc/U09rXT0e04ejaO6gAg/JKjW0DqGHjWEDmV6enxxdIO6EEwKUG4odWuuEzdefq8xNV/jKnNCWGl0Ae1MNybUMS0wD3mFsquwIs5e9t62qGF/ybEAePYntaMxZsUirmipKUW/9mmPquOOX3/OmmDB1BPQ==

    my.js? [sm]:13 iv: sYnJdJpb4/mP6orILfos/A==

    my.js? [sm]:22 云函数返回: {result: {…}}result: error: "解码失败: Session Key 未获取"proto: Objectproto: Object

    my.js? [sm]:27 解码失败: 解码失败: Session Key 未获取(env: Windows,mp,1.06.2405020; lib: 3.5.0)吗,我以后做大了肯定会感谢你的

    2024-07-31 10:08

  • DCloud_UNI_yuhe

    回复 3***@qq.com: 你是用的uniCloud吗?你这不是微信云开发?

    2024-07-31 10:40

  • DCloud_UNI_yuhe

    回复 DCloud_UNI_yuhe: 微信云开发我记得都不用Session Key 直接就能获取吧

    2024-07-31 10:40

要回复问题请先登录注册