微信云开发官网
在使用云开发时,使用申请退款云函数CloudPay.refund(),返回结果是受理关系不存在,请问是什么原因?[图片][图片]
如题,我在小程序里读取数据库,提示database query result size,超过1m了,如果我改成在云函数里调用这个数据,优化后再返回给小程序,这样还会有这个大小限制吗?
云函数代码: const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 // 云函数入口函数 exports.main = async (event, context) => { await cloud.database().collection("data").add({ data: { imageUrl: event.imageUrl, imageNumber: event.imageNumber, page: event.page, address: event.address, expression: event.expression, phonenumber: event.phonenumber, view: event.view, index: event.index, date: event.date } }).then(res=>{ console.log("成功上传", res) }) } 调用js的代码: uploadData(){ wx.cloud.callFunction({ name:"upData", data:{ imageUrl:this.imageUrl, imageNumber:this.imageNumber, page:this.page, address:this.address, expression:this.expression, phonenumber:this.phonenumber, view:this.view, index:this.index, date:this.date } }).then(res=>{ console.log("云函数调用成功") }) }
是云开发,部分功能在本地和真机调试中都正常,但在体验版中出现问题。体验版在手机上调试后功能又变正常了。
求助!!!!!!! 微信云开发调用API:接口地址:https://api.weixin.qq.com/cgi-bin/express/intracity/addorder?access_token={ACCESS_TOKEN} 返回值显示失败,errcode啥的信息都没有 大神们帮忙看看,哪里有问题 [图片] ----------------main 代码---------------------------------------------------------------- exports.main = async (event, context) => { try { // 获取调用接口所需的 access_token const accessToken = event.accessToken; // 构造请求参数,包括订单数据等 const order = event.order; // 加密和签名 const { iv, data, authtag } = encrypt(order); const signature = calculateSignature(data); // 发起 POST 请求调用微信同城配送接口 const response = await postToWeixinAPI(accessToken, iv, data, authtag, signature, req_ts); // 返回结果 return response.data; } catch (error) { // 错误处理 console.error('调用微信同城配送接口失败:', error); return { error: '调用微信同城配送接口失败', details: error }; } }; --------------------- 加密函数-------------------------------------------------------------------------------------------------------------------------------- function encrypt(order) { // 从上下文对象获取本地对称密钥、对称序列号、应用ID和请求路径 const ctx = getCtx(); const { local_sym_key, local_sym_sn, local_appid, url_path } = ctx; // 获取当前时间戳和随机生成的16字节的Base64编码的随机数 const local_ts = Math.floor(Date.now() / 1000); const nonce = crypto.randomBytes(16).toString('base64').replace(/=/g, ''); // 构造请求参数对象 const reqex = { _n: nonce, _appid: local_appid, _timestamp: local_ts }; const real_req = Object.assign({}, reqex, order); // 将请求参数对象转换为JSON字符串 const plaintext = JSON.stringify(real_req); // 构造附加认证数据 (AAD) const aad = `${url_path}|${local_appid}|${local_ts}|${local_sym_sn}`; // 将密钥解码为Buffer格式,并生成随机的IV const real_key = Buffer.from(local_sym_key, "base64"); const real_iv = crypto.randomBytes(12); // 将AAD、明文和IV输入到AES-256-GCM加密器中进行加密 const cipher = crypto.createCipheriv("aes-256-gcm", real_key, real_iv); cipher.setAAD(Buffer.from(aad, "utf-8")); let cipher_update = cipher.update(Buffer.from(plaintext, "utf-8")); let cipher_final = cipher.final(); const real_ciphertext = Buffer.concat([cipher_update, cipher_final]); const real_authTag = cipher.getAuthTag(); // 获取加密结果中的密文、认证标签和IV,并转换为Base64格式 const iv = real_iv.toString("base64"); const data = real_ciphertext.toString("base64"); const authtag = real_authTag.toString("base64"); // 构造加密后的请求数据对象 const req_data = { iv, data, authtag, }; // 返回加密后的请求数据 const new_req = { req_ts: local_ts, req_data: JSON.stringify(req_data) } return new_req } --------------------- 签名函数-------------------------------------------------------------------------------------------------------------------------------- function calculateSignature(data) { // 从上下文对象获取本地私钥、序列号、应用ID和请求路径 const ctx = getSigCtx(); const { local_private_key, local_sn, local_appid, url_path } = ctx; // 获取请求数据中的时间戳和加密后的请求数据 const { req_ts, req_data } = data; // 构造待签名的数据 const payload = `${url_path}\n${local_appid}\n${req_ts}\n${req_data}`; const data_buffer = Buffer.from(payload, 'utf-8'); // 构造签名使用的密钥对象 const key_obj = { key: local_private_key, padding: crypto.constants.RSA_PKCS1_PSS_PADDING, saltLength: crypto.constants.RSA_PSS_SALTLEN_DIGEST // salt长度,需与SHA256结果长度(32)一致 }; // 对数据进行签名 const sig_buffer = crypto.sign( 'RSA-SHA256', data_buffer, key_obj ); // 将签名结果转换为Base64字符串并返回 const signature = sig_buffer.toString('base64'); return signature; } ---------------------API调用-------------------------------------------------------------------------------------------------------------------------------- function postToWeixinAPI(accessToken, iv, data, authtag, signature, req_ts) { return axios.post('https://api.weixin.qq.com/cgi-bin/express/intracity/addorder', { iv, data, authtag, req_ts // 使用传入的时间戳 }, { headers: { 'Wechatmp-Appid': Appid', 'Wechatmp-TimeStamp': req_ts, // 使用传入的时间戳 'Wechatmp-Signature': signature }, params: { access_token: accessToken } }); }
[图片][图片][图片]
1.调用云函数的代码逻辑(已设定useMock=false) [图片] 2.云函数 [图片] 3.处理代码 [图片] 4.测试结果 [图片] [图片] 5.问题:能从云函数返回列表,但是使用data接收的时候,无法接收到。导致前端无法显示。
在开发工具中进行云函数的本地调试,调用云函数后,云函数throw error后,例如throw new Error('connect fail: ' + error.message);,调试器无法打印错误内容,cloud.callFunction的catch块不能捕获并输出具体错误,只显示 Error: cloud.callFunction:fail -404006 empty poll result base resp. at R (<anonymous>:1:234885) at <anonymous>:1:266826
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseUpdate.html Date 类型怎么更新?
https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html
最近想做一个小程序,据了解目前小程序云开发的续费基础版还是19.9元,小程序也是简约化的,提供办公生活中需要的场景,后续想接入广告什么的,但是在设计初对云开发和服务器搭建开发这两种选择纠结难以抉择,云开发这个也不是很了解,测试环境和生产环境一起19.9呢还是没套环境都是单独的19.9,大家有什么好的建议啊,或者有没有已经走过这条路的大神指点指点,感谢啦。
[图片] 没地方设置常驻云函数
环境: MacOS 问题: 页面设计 使用默认的浏览器Safari打开,警告: [图片] 如何使用Chrome呢?如果复制链接在chrome,需要扫描二维码,扫描之后又要授权,最后。。。[图片] 具体步骤:微信开发工具 > 内容管理 > 商品管理模版的页面设计 [图片] 怎么破?究竟Safari不支持什么功能了呢?
我所有对云数据库的读写操作都是在云函数内完成的,为什么我运行在开发者工具中不做任何操作,云数据库的读写次数还是增加?而且我没有做任何定时触发器之类的操作过。[图片]
[图片]
[图片]
有一个商城小程序“用户端”和“管理员端”都采用的微信小程序页面展示,数据的存储和增删改查等都使用过微信小程序云开发实现(云函数、云存储、云数据库),想知道前后端采用的具体技术。自己总结的是:前端采用微信小程序框架、使用html、css、JavaScript前端技术实现页面布局、页面结构、样式、交互逻辑;后端采用微信云开发平台提供的云函数实现后端业务逻辑的编写和部署,同时使用云数据库和云存储管理存储数据。也不知道对不对,关于前后端和前台后台我也有点混淆,有没有懂得大佬指点迷津~
[图片] [图片]
[图片] 就点这个菜单,第一次是有的,第二次就不出现了,我是macos
[图片] 总提示我云端测试无法获取用户登录状态。我百度了很久,没发现有效解决方法。
小程序示例
小程序官方示例Demo,包含云开发示例。
小程序示例
扫码体验
有授权给云开发退款权限么?
[图片]