你提交账号找回后,系统页面上就会给你一个打款账户的,每次的账户和金额都是随机的,以系统显示为准。
微信小程序找回提交后,需用该对公账户向腾讯公司进行打款,发现没有腾讯对公账户信息,应该给哪个打款?为验证真实性,此对公账户需给腾讯打款验证。 请尽快联系贵公司/单位财务进行打款。 账号找回提交后,需用该对公账户向腾讯公司进行打款 但是我看是没有信息出来的
08-04微信认证,收取的费用是审核服务费。无论认证成功或者失败,都是不会退费的。
认证失败的300收费怎么退还?2025.7.7日在到期之前进行了一次认证,并且付费300,银行转账验证也通过了。后来账号收件箱里又收到到期通知,没法只好在2025.8.4日又认证了一次,再次付费300元。这失败的300怎么申请退还?[图片][图片]
08-04你觉得扫码麻烦,那你就注册一个服务商,走代开发模式。对方只需要一次授权给服务商代开发,后续你都可以直接通过接口代开发,无需联系他们扫码。
小程序扫码认证流程及其繁琐,能不能改下方式?微信小程序开发扫码这个环节真的是折腾人,非要法人频繁扫码 现实情况有很多种: 1、大公司法人一般每天都是非常忙,没时间跟你扫码 2、小公司法人其实大量都是找的一些大爷大妈当法人,企业真正实际控制人并不是法人,这些老年人压根不会也不懂扫码 3、很多扫码还需要对准扫,还不能识别扫 我知道是出于安全考虑,但是能不能考虑一下实际情况? 频繁扫码对开发者来说,事情特别多,平均一个小程序从开发到备案上线,起码要扫几十次,真的是严重影响效率 为什么就不能改进一下呢 比如:首次扫码后邀请法人授权公司负责人或者开发者可以做哪些操作,如:认证,改类目,改名称,改简介,开通支付等等,有一个明确的授权清单,让法人逐一授权,这样对各方来说效率都提升了 授权后的敏感操作每一次推送到法人微信,这样子即便有问题,法人可以撤回授权不是挺好吗 我们遇到的国企央企客户,简直是都折腾几个月了,扫码都迟迟无法完成,因为人家是真的忙,而且对频繁扫码非常敏感,以为在收集他的个人信息 比如现在要求马总来扫,频繁扫码你看他有没有时间鸟你,搞不懂微信团队在做考虑什么东西?
08-03上传文件,需要配置到uploadfile域名里
小程序正式版用阿里云服务器上传文件时,已经后台添加了request合法域名,上传还是报错,为什么?[图片] [图片] <script> import ActivityService from "@/app/service/activityService.js"; const ActivityServices = new ActivityService(); import CryptoJS from 'crypto-js'; import { Base64 } from 'js-base64'; let uid = 0 export default { props: { showInfo:{ type:Object, default:{ from:'release', loadingText:true, maxNum:true, showPreview:true, } }, userId: { type: String, required: true }, initFileList: { type: Array, default: [] }, // 0:图片 1:视频 fileType: { type: Number, default: 0 }, activityId: String, recordingParams: Object, cameraParams: Object, ossConfig: { region: "yourRegion", accessKeyId: "yourAccessKeyId", accessKeySecret: "yourAccessKeySecret", stsToken: "yourSecurityToken", bucket: "examplebucket", authorizationV4: true } }, computed: { activity_info() { return this.$store.getters['activity/activity_info'] }, }, watch: { // 监听props变化 initFileList: { immediate: true, handler(newVal) { if (newVal) { console.log(this.activityId,"活动ID") console.log(newVal) this.fileList = [...newVal].filter(item=>item.url).map(item=>{ item.preview = item.url; return item; }) }else{ console.log(newVal) } } } }, data() { return { fileList: [], // 文件列表 uploading: false, progress: 0, previewUrl: '', currentFile: null, files:null, } }, methods: { async handleUpload() { if (this.uploading) return try { // 1. 选择文件 const files = await this.chooseMedia() this.files =files; console.log(files,"files") if (!files.length) return // 2. 校验文件 const validFiles = this.validateFiles(files) this.fileList = [...this.fileList, ...validFiles] // 3. 逐个上传 for (const file of validFiles) { await this.uploadFile(file) } uni.showToast({ title: '全部上传完成' }) } catch (error) { // debugger // uni.showToast({ title: error.errMsg, icon: 'none' }) } finally { this.uploading = false } }, // 统一选择媒体文件 chooseMedia() { return new Promise((resolve, reject) => { wx.requirePrivacyAuthorize({ success: () => { uni.chooseMedia({ count: 4 - this.fileList.length, // 剩余可选数量 mediaType: ['image', 'video'], sourceType: ['album', 'camera'], maxDuration: 30, // 视频最大时长30秒 success: res => resolve(res.tempFiles), fail: reject }) }, fail: () => { // 用户拒绝,提示引导 wx.showToast({ title: '需同意隐私协议才能使用该功能', icon: 'none' }); } }) }) }, // 文件校验 validateFiles(files) { return files.map(file => { const isVideo = file.fileType === 'video' const maxSize = isVideo ? 10 * 1024 * 1024 : 2 * 1024 * 1024 if (file.size > maxSize) { throw new Error(`${isVideo ? '视频' : '图片'}大小不能超过${isVideo ? 10 : 2}MB`) } return { uid: uid++, type: file.fileType, name: file.tempFilePath.split('/').pop(), size: file.size, preview: file.tempFilePath, progress: 0, status: 'pending' } }) }, // 新增:读取文件内容 readFileContent(tempFilePath) { return new Promise((resolve, reject) => { uni.getFileSystemManager().readFile({ filePath: tempFilePath, success: res => resolve(res.data), fail: err => reject(new Error('文件读取失败')) }); }); }, // 单个文件上传 async uploadFile(file) { try { file.status = 'uploading'; // 1. 获取OSS配置 const ossConfig = await ActivityServices.getAliyunConfig({ user_id: this.userId, file_name: file.name, file_type: file.type === 'video' ? 1 : 0 }); // 2. 读取文件内容 // const fileContent = await this.readFileContent(file.preview); // 3. 上传到OSS const ossUrl = await this.uploadToOSS(file, ossConfig.data.data ); // 4. 更新文件状态 file.progress = 100; file.status = 'success'; file.url = ossUrl; // 5. 视频需要通知后台 // if (file.type === 'video') { // await this.notifyBackend(ossUrl); // } } catch (error) { file.status = 'error'; throw error; } }, formatEndpoint(endpoint) { if (endpoint.startsWith('http://')) return endpoint; if (endpoint.startsWith('https://')) return endpoint; return `https://${endpoint}`; }, getMimeType(fileType) { const types = { image: 'image/jpeg', video: 'video/mp4' }; return types[fileType] || 'application/octet-stream'; }, getUTCDate() { const expiration = new Date(); expiration.setUTCHours(expiration.getUTCHours() + 1); return expiration.toISOString().split('.')[0] + 'Z'; // 去除毫秒 }, async uploadToOSS(file,config) { try { // 生成 Policy const policy = { expiration: this.getUTCDate(config.expiration), conditions: [ ['content-length-range', 0, 104857600], ['eq', '$bucket', config.bucket], ['starts-with', '$key', `${this.userId}/`] ] }; const policyBase64 = Base64.encode(JSON.stringify(policy)); // 计算 Signature const signature = CryptoJS.HmacSHA1(policyBase64, config.access_key_secret) .toString(CryptoJS.enc.Base64); const fileName = `${this.userId}/${Date.now()}_${file.name}`; const formData = { key: fileName, OSSAccessKeyId: config.access_key_id, policy: policyBase64, signature: signature, 'x-oss-security-token': config.security_token }; console.log(formData,"formData") const endpoint = config.endpoint .replace('https//', '') // 修正用户示例中的错误格式 .replace(/^(http:\/\/|https:\/\/)/, '') // 移除可能存在的协议头 const uploadRes = await uni.uploadFile({ url: `https://${config.bucket}.${endpoint}`, filePath: file.preview, name: 'file', formData: formData }); if (uploadRes.statusCode === 204) { this.uploadResult = "上传成功"; console.log("imgUrl:" ,`https://${config.bucket}.${endpoint}/${fileName}`) const uploadImgUrl = `https://${config.bucket}.${endpoint}/${fileName}`; // https://wq-image.oss-cn-beijing.aliyuncs.com/xiaobaibai/1747571994354_xBHNLh7uEbJ39969f668b97a0b5ce473f96cba31918d.png this.uploadComplete(uploadImgUrl, file) } else { console.log(uploadRes.data,"上传失败") this.uploadResult = `上传失败: ${uploadRes.data}`; } } catch (err) { console.error("上传失败33:", err); this.uploadResult = "上传失败"; } }, uploadComplete(fileUrl, file){ const param = { user_id:this.userId, video_url:fileUrl, type:file.type === 'video' ? 1 : 0, privacy:0, // 0:公开 1:隐藏 sence:0 //0:个人相册 1:活动相册 } if(this.activity_info.activity_id){ param.activity_id=this.activity_info.activity_id } ActivityServices.uploadData(param).then(res=>{ console.log(res,"complete") if (res.data.code === 0 && res.data.data && res.data.data.video_url) { this.fileList = this.fileList.map(item => { const newItem = {...item} if (item.uid === file.uid) { newItem.url = res.data.data.video_url } return newItem }) this.$emit('fileListChange', this.fileList) } }) }, removeFile(index) { if (this.uploading) return this.fileList.splice(index, 1) this.$emit('fileListChange', this.fileList) }, // 格式化文件大小 formatSize(bytes) { const units = ['B', 'KB', 'MB', 'GB'] let size = bytes let unitIndex = 0 while (size >= 1024 && unitIndex < units.length - 1) { size /= 1024 unitIndex++ } return `${size.toFixed(1)}${units[unitIndex]}` }, // 通知后端 async notifyBackend(ossUrl) { const params = { userId: this.userId, videoUrl: ossUrl, type: this.activityId ? 1 : 0, activity_id: this.activityId } if (this.fileType === 1) { params.recordingParams = this.validateRecordingParams() params.cameraIntrinsicParameters = this.validateCameraParams() } await ActivityServices.uploadData(params) }, // 参数校验方法 validateRecordingParams() { const requiredFields = [ 'recordType', 'sceneType', 'quality', 'players', 'startTime', 'endTime' ] requiredFields.forEach(field => { if (!this.recordingParams?.[field]) { throw new Error(`缺少必要录制参数: ${field}`) } }) return { ...this.recordingParams, startTime: new Date(this.recordingParams.startTime).getTime(), endTime: new Date(this.recordingParams.endTime).getTime() } }, validateCameraParams() { const requiredFields = [ 'focalLength', 'principalPoint', 'sensorSize', 'distortionCoefficients', 'deviceModel' ] requiredFields.forEach(field => { if (!this.cameraParams?.[field]) { throw new Error(`缺少必要相机参数: ${field}`) } }) return this.cameraParams } } } </script>
08-03请正确区分“管理员”和”运营者“。一个账号只有一个管理员,不存在授权你为管理员的情况。
秀米上做完推送同步到公众号时,扫码授权公众号显示无账号,但之前已被授权为管理员?如图 [图片] [图片]
08-02封禁的账号,不支持注销。
公众号被永久封禁,新开设的公众号无法身份验证,怎么注销被封禁的账号?公众号被永久封禁,新开设的公众号无法身份验证,怎么注销被封禁的账号
08-02封禁的账号不支持注销的。
如何注销永久封禁的微信公众号?注销该微信公众号 [图片]
08-02服务号没有订阅消息能力。发送肯定不会成功的
服务号发送订阅消息 发送不成功?'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.$access_token; 返回: "errcode" => 48001 "errmsg" => "api unauthorized rid: 688cb0a7-63282065-5e9575df
08-01企业账号只能通过重新微信认证进行改名。
我在公众号年审的时候不小心把名称改错了,我该如何更改公众号昵称?[图片]我在公众号年审的时候不小心把名称改错了我该如何更改公众号昵称,现在用其他方法在手机端修改公众号账号昵称但是出现了图片上的情况,这个是怎么回事,那我该怎么做可以把公众号账号昵称改回来
08-01小程序直播目前不支持新开通。
微信小程序开通直播功能需要哪些准备?微信小程序后台没有开通直播功能的入口,不知道怎么可以开通
08-01