社区真垃圾
onChunkReceived 在微信开发者工具能流式返回,为什么在真机就是一次性返回呀?api:onChunkReceived 基础库 3.811 微信版本8.0.61 如果基础调试库降低到3.6.6以及以下就能流式返回了。那我担心发生产后该问题仍然会存在 import { showToast } from '@/utils/index'; import store from '@/store'; const REQUEST_HOST = 'https://dashscope.aliyuncs.com'; function chatStream(content, { onMessage, onFinish, onError }) { const url = '/compatible-mode/v1/chat/completions'; const data = { "model": "qwen-plus", "stream": true, "messages": [ { "role": "system", "content": `请优化以下用户提供的工作经历描述。要求: 1. **突出成果与贡献:** 使用强动词开头,量化成果(金额、百分比、数量、时间等),强调对团队/公司的具体影响。 2. **增强专业性:** 使用行业相关术语,体现具体职责和所用技能/技术。 3. **清晰简洁:** 语言精炼,逻辑清晰,避免冗余信息。使用项目符号或分号分隔关键点。 4. **符合事实:** 优化基于提供的信息,不虚构未提及的内容。 5. **目标导向:** 优化后的描述应能体现用户在该职位上的核心价值和能力。 6. **包含技能关键词:** 自然地融入与职位相关的核心技能关键词。**请直接提供优化后的工作经历描述,不要包含解释或额外说明。**`}, { "role": "user", "content": content , } ] }; let buffer = ''; let isFinished = false; const requestTask = wx.request({ url: `${process.env.SiteUrl}chat/ai/${url}`, data, method: 'POST', // 请求方式 // method: 'GET', // 请求方式 enableChunked: true, responseType: 'arraybuffer', // 设置响应类型为 arraybuffer timeout: 100000, header: { 'Authorization': 'Bearer xxx', 'X-Requested-With': 'XMLHttpRequest', "Content-Type": 'application/json' }, success: (res) => { showChunkMsg(buffer, res, onMessage, onFinish); console.log('结束2') if (!isFinished) onFinish && onFinish(); }, fail: (err) => { console.log('错误', err); onError && onError(err); } }); requestTask.onChunkReceived(res => { console.log('接收', res); showChunkMsg(buffer, res, onMessage, onFinish); }) return requestTask; // 可用于外部 abort } const showChunkMsg = (buffer, res, onMessage, onFinish) => { let chunk; if (typeof TextDecoder !== 'undefined') { chunk = new TextDecoder('utf-8').decode(new Uint8Array(res.data)); // 本地开发者工具使用 } else if (res.data instanceof ArrayBuffer) { // 兜底:自己实现的 arrayBufferToString chunk = arrayBufferToString(res.data); } else if (typeof res.data === 'string') { chunk = res.data; } else { chunk = ''; } buffer += chunk; // 你需要按行分割,逐条处理 const lines = buffer.split('\n'); buffer = lines.pop(); // 最后一行可能是不完整的,留到下次 for (const line of lines) { if (!line.trim()) continue; if (line.startsWith('data: ')) { const jsonStr = line.replace(/^data: /, ''); try { const json = JSON.parse(jsonStr); const content = json.choices?.[0]?.delta?.content || ''; if (content) onMessage(content); if (json.choices?.[0]?.finish_reason) { isFinished = true; onFinish && onFinish(); } } catch (e) { // 解析失败,可能是 [DONE] 或其他非json内容,忽略 } } } } // 把 微信返回的arrayBuffer格式,转成字符串 const arrayBufferToString = (arr) => { if (typeof arr === "string") { return arr; } var dataview = new DataView(arr); var ints = new Uint8Array(arr.byteLength); for (var i = 0; i < ints.length; i++) { ints[i] = dataview.getUint8(i); } var str = "", _arr = ints; for (var i = 0; i < _arr.length; i++) { if (_arr[i]) { var one = _arr[i].toString(2), v = one.match(/^1+?(?=0)/); if (v && one.length == 8) { var bytesLength = v[0].length; var store = _arr[i].toString(2).slice(7 - bytesLength); for (var st = 1; st < bytesLength; st++) { if (_arr[st + i]) { store += _arr[st + i].toString(2).slice(2); } } str += String.fromCharCode(parseInt(store, 2)); i += bytesLength - 1; } else { str += String.fromCharCode(_arr[i]); } } } return str; }; export default { chatStream }
07-24配送单创建成功了但是接口并没有返回订单数据,请问怎么回事呢,文档里面明明写了能返回的,也是使用的沙箱环境。
同城配送沙箱环境创建配送单,如果其中某些参数有问题,就会正常报错提示,所有参数正确设置后,无返回值?沙箱环境下面,创建配送单,配送偏好:优先下单达达快送,无充值,如果其中某些参数未传或者错误,就会正常返回相关错误码和错误原因。当所有参数都正确之后,返回值竟然是空。 再次下单偶尔会提示订单号重复。 请问这是什么原因,可以帮忙排查下吗?
2024-05-19这几天又出现该问题了。 今天不是一个月新的一天吗? 咋还会提示:no customer to send, hint: [1685585293431490306737752], from ip: 124.78.61.66, more info at https://open.work.weixin.qq.com/devtool/query?e=41048 呢?
企业微信群发消息提示无可发送用户api:https://qyapi.weixin.qq.com/cgi-bin/externalcontact/add_msg_template?access_token=ACCESS_TOKEN 返回数据:{"errcode":41048,"errmsg":"no customer to send, hint: [1627287400_206_456bdbd75aae0ec14915bdf6f49c71a1], from ip: 47.98.245.5, more info at https://open.work.weixin.qq.com/devtool/query?e=41048","fail_list":["wmP5NzDwAAUtok7Ju6cgkmzjCyXA4kNg"]} hint值:1627287400_206_456bdbd75aae0ec14915bdf6f49c71a1 [图片] 是有好友关系的
2023-06-01可以了, 发送消息的appid要使用小程序的appid,不应该使用公众号的appid
企微应用 sendChatMessage:fail_not allow to cross corp?发送h5消息没有问题,发送小程序消息就有问题,小程序已关联企业微信。 windows电脑端和手机端都试过了。 企业ID: ww3304abeb80d04d53 小程序应用id: 1000007 小程序appid: wx5981a7dfc7494943 代码片段: [图片]
2023-01-30function curl_get_https($url) { $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json对象 //关闭URL请求 curl_close($curl); return $tmpInfo; //返回json对象 } $appid = "wxxxxxx"; $appsecret = "c32526c8af5be2eeaxxxsxxxxxx"; $code = input('code', ''); $getInfoUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$appsecret}&js_code={$code}&grant_type=authorization_code"; $info = curl_get_https($getInfoUrl); $info = json_decode($info,true); if(!$info['session_key']) $this->ajax(202,'session_key errors'); $groupId = 'grop_ooo00_tests'; $nonceStr = 'fdjkhdkhghwei7887438=='; $timeStamp = time(); $data = [ 'appid' => $appid, 'groupId' => $groupId, 'nonceStr' => $nonceStr, 'timeStamp' => $timeStamp ]; sort($data,5); //这里是个坑 php sort 的默认参数不会把数字进行字典排序 相关参数请自行查看php文档 $st = implode('',$data); //拼接成一个字符串 $signature = hash_hmac('sha256', $st,$info['session_key']); //通过 sha256 加密
微信小程序调用wx.joinVoIPChat api一直显示签名错误问题?//index.js 验证文档上默认的参数返回签名一致,点击调用的时候一直出现 签名错误问题 //获取应用实例 const app = getApp() Page({ data: { motto: 'Hello World', userInfo: {}, hasUserInfo: false, canIUse: wx.canIUse('button.open-type.getUserInfo'), data:{} }, onLoad:function(){ var t = this wx.login({ complete: (res) => { if(res.code){ wx.request({ data:{code:res.code}, url: 'https://www.lefakeji.com/api/user/getwxuserinfo', success:(re)=>{ var data = re.data wx.checkSession({ complete: (res) => { console.log(res) }, }) console.log(re) t.setData({ data:data }) } }) } }, }) }, joinVoIPChat:function(){ var t = this wx.getSetting({ success:function(r){ if(r.authSetting['scope.record']){ var data = t.data.data console.log(data.sign) console.log(data.nonceStr) console.log(data.timeStamp) console.log(data.groupId) wx.joinVoIPChat({ signature:data.sign, nonceStr:data.nonceStr, timeStamp:parseInt(data.timeStamp), groupId:data.groupId, complete:(re)=>{ console.log(re) wx.showModal({ title: '提示', content: re.errMsg, success (res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) } }) }else{ wx.startRecord({ complete: (res) => { wx.stopRecord({ complete: (res) => {}, }) }, }) } } }) return wx.startRecord({ success: (res) => { }, fail:(re)=>{ console.log(re) } }) } })
2021-03-23function curl_get_https($url) { $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json对象 //关闭URL请求 curl_close($curl); return $tmpInfo; //返回json对象 } $appid = "wxxxxxx"; $appsecret = "c32526c8af5be2eeaxxxsxxxxxx"; $code = input('code', ''); $getInfoUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$appsecret}&js_code={$code}&grant_type=authorization_code"; $info = curl_get_https($getInfoUrl); $info = json_decode($info,true); if(!$info['session_key']) $this->ajax(202,'session_key errors'); $groupId = 'grop_ooo00_tests'; $nonceStr = 'fdjkhdkhghwei7887438=='; $timeStamp = time(); $data = [ 'appid' => $appid, 'groupId' => $groupId, 'nonceStr' => $nonceStr, 'timeStamp' => $timeStamp ]; sort($data,5); //这里是个坑 php sort 的默认参数不会把数字进行字典排序 相关参数请自行查看php文档 $st = implode('',$data); //拼接成一个字符串 $signature = hash_hmac('sha256', $st,$info['session_key']); //通过 sha256 加密
多人音视频API:wx.joinVoIPChat 显示签名失败?API:wx.joinVoIPChat,微信版本号:7.0.15,基础库:2.12.0,参数appid为小程序id号,groupId,timeStamp,nonceStr 开发者随机创建,根据签名算法: str = [appId, groupId, nonceStr, timeStamp].sort().join('') signature = hmac_sha256(str, sessionKey)生成signature, 但是接口返回签名失败: [图片] 是因为groupId,timestamp,nonceStr这几个参数后台自己创建的格式不对吗?还是确定sessionKey的问题呢?求大佬解答
2021-03-23function curl_get_https($url) { $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json对象 //关闭URL请求 curl_close($curl); return $tmpInfo; //返回json对象 } $appid = "wxxxxxx"; $appsecret = "c32526c8af5be2eeaxxxsxxxxxx"; $code = input('code', ''); $getInfoUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$appsecret}&js_code={$code}&grant_type=authorization_code"; $info = curl_get_https($getInfoUrl); $info = json_decode($info,true); if(!$info['session_key']) $this->ajax(202,'session_key errors'); $groupId = 'grop_ooo00_tests'; $nonceStr = 'fdjkhdkhghwei7887438=='; $timeStamp = time(); $data = [ 'appid' => $appid, 'groupId' => $groupId, 'nonceStr' => $nonceStr, 'timeStamp' => $timeStamp ]; sort($data,5); //这里是个坑 php sort 的默认参数不会把数字进行字典排序 相关参数请自行查看php文档 $st = implode('',$data); //拼接成一个字符串 $signature = hash_hmac('sha256', $st,$info['session_key']); //通过 sha256 加密
多人音视频通话接口 wx.joinVoIPChat签名问题?多人音视频对话 用的是这两个接口wx.joinVoIPChat 和组件 voip-room。 1、在调用过程中一直提示这个错误 joinVoIPChat:fail: -10088, -10, join room failed. errType: 4, errCode: -12020, errMsg: invalid signature, -1 2、这个接口是免费试用的吗 服务端签名(php) $data[] = "自己的appid"; $data[] = 'grop_ooo00_tests';//测试房间 这个groupId 需要生成唯一的 使用这个id 签名的人员进入都会进入一个实时语音房间 $data[] = getNonceStr(); $data[] = time(); sort($data,5); // $st = implode('',$data); //拼接成一个字符串 $hash = hash_hmac('sha256', $st,$session_key); //通过 sha256 接口权限已经开通了 [图片]
2021-03-23礼貌询问,解决了吗?
小程序直播悬浮时 navigateTo 跳转失败从首页点击链接跳转直播间,之后从直播间橱窗点击商品链接跳转商品详情,从商品详情使用switchTab跳转至首页,此时首页出现直播间悬浮框,此时首页所以的wx.navigateTo跳转全部报错 navigateTo:fail rejected due to no permission currently 将小程序切换成后台模式,在次onShow未做任何处理wx.navigateTo 方法会自动恢复跳转。 [图片] [图片]
2021-03-04我也遇到了同样问题
navigateTo:fail rejected due to no permission?插件分享出来的卡片,点开之后直接加载的是插件的页面,我们想在app.js的onShow里判断没有登陆先跳到我们的登陆页做登陆,用wx.navigateTo跳转报了navigateTo:fail rejected due to no permission currently,这个是什么原因导致的,有什么方案解决吗?
2021-03-04公众平台安全助手 这个公众号可以提供绑定查询,解除绑定的操作
开发者怎么解除微信公众号的开发绑定现在又抽风限制“该微信号已经绑定了5个公众号,无法绑定成为开发者”了,我已经绑定过很多,怎么解绑?
2021-02-23