已经解决了,是签名错误,不过文档能不能添加一个签名的例子,让开发可以对比看签名是不是正确。还有错误信息提示能不能详细点,除了错误码,错误信息也应该回传不要为null。
调用实时语音接口出错已授权scope.record权限,然后调用wx.joinVoIPChat接口返回如下错误: {"errCode":-1000,"errMsg":"joinVoIPChat:fail: -10088, -10, join room failed. errType: 4, errCode: -1, errMsg: null, -1"} 求官方解答下是啥问题,文档里面的错误描述太少了,无法定位问题
2019-05-14客服消息推送那,服务器收到echostr有值的,返回echostr。木有值的返回空字符串。只有这样客户端才不会提示服务出现异常
微信客服消息回复success ios还是显示改小程序提供的系统故障- 当前 Bug 的表现(可附上截图) - 预期表现 - 复现路径 - 提供一个最简复现 Demo 客服消息可以正常收发。但是就是一直显示该小程序提供的服务出现故障,请稍后再试[图片][图片]
2018-12-18微信客户端走的websocket协议,服务器只是简单的tcp数据流传输,协议不匹配
想做个前端后端联动的,怎么都调不通,求解答前端微信代码如下: wxml [代码]<[代码][代码]button[代码] [代码]type[代码][代码]=[代码][代码]'default'[代码] [代码]bindtap[代码][代码]=[代码][代码]'createConn'[代码][代码]>创建连接</[代码][代码]button[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'display:flex;flex-direction:row;margin:10px'[代码][代码]>[代码][代码]<[代码][代码]input[代码] [代码]type[代码][代码]=[代码][代码]'txet'[代码] [代码]name[代码][代码]=[代码][代码]'msg'[代码] [代码]bindblur[代码][代码]=[代码][代码]'getMsg'[代码] [代码]style[代码][代码]=[代码][代码]'width:200px;border:1px solid #cccccc'[代码][代码]></[代码][代码]input[代码][代码]>[代码][代码]<[代码][代码]button[代码] [代码]type[代码][代码]=[代码][代码]'primary'[代码] [代码]size[代码][代码]=[代码][代码]'mini'[代码] [代码]bindtap[代码][代码]=[代码][代码]'send'[代码][代码]>发送消息</[代码][代码]button[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'height:200px;'[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'font-weight:bold'[代码][代码]>客户端发送的消息:</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]block[代码] [代码]wx:for[代码][代码]=[代码][代码]'{{sendMsg}}'[代码] [代码]wx:for-item[代码][代码]=[代码][代码]'item1'[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'color:green'[代码][代码]>{{item1}}</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]block[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'height:200px'[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'font-weight:bold'[代码][代码]>服务器返回消息</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]block[代码] [代码]wx:for[代码][代码]=[代码][代码]'{{restData}}'[代码] [代码]wx:for-item[代码][代码]=[代码][代码]'item2'[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'color:red'[代码][代码]>{{item2}}</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]block[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]'margin:10px'[代码][代码]>{{content}}</[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]button[代码] [代码]type[代码][代码]=[代码][代码]'default'[代码] [代码]bindtap[代码][代码]=[代码][代码]'closeConn'[代码][代码]>关闭连接</[代码][代码]button[代码][代码]>[代码]js [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]},[代码][代码] [代码][代码]createConn:[代码][代码]function[代码][代码](){[代码][代码] [代码][代码]var[代码] [代码]page=[代码][代码]this[代码][代码];[代码][代码] [代码][代码]wx.connectSocket({[代码][代码] [代码][代码]url: [代码][代码]'192.168.31.233:7788'[代码][代码],[代码][代码] [代码][代码]data:{[代码][代码] [代码][代码]x:[代码][代码]''[代码][代码],[代码][代码] [代码][代码]y:[代码][代码]''[代码][代码] [代码][代码]},[代码][代码] [代码][代码]header:{[代码][代码] [代码][代码]'content-type'[代码][代码]:[代码][代码]'Application/json'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]method:[代码][代码]'GET'[代码][代码] [代码][代码]});[代码][代码] [代码][代码]wx.onSocketOpen([代码][代码]function[代码][代码](res){[代码][代码] [代码][代码]console.log(res);[代码][代码] [代码][代码]page.setData({socketOpen:[代码][代码]true[代码][代码]});[代码][代码] [代码][代码]console.log([代码][代码]'WebSocket连接已打开!'[代码][代码])[代码][代码] [代码][代码]});[代码][代码] [代码][代码]wx.onSocketError([代码][代码]function[代码][代码](res){[代码][代码] [代码][代码]console.log([代码][代码]'WebSocket连接打开失败,请检查!'[代码][代码])[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]send:[代码][代码]function[代码][代码](e){[代码][代码] [代码][代码]if[代码][代码]([代码][代码]this[代码][代码].data.socketOpen){[代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码].data.socketOpen);[代码][代码] [代码][代码]wx.sendSocketMessage({[代码][代码] [代码][代码]data: [代码][代码]this[代码][代码].data.msg[代码][代码] [代码][代码]});[代码][代码] [代码][代码]var[代码] [代码]sendMsg=[代码][代码]this[代码][代码].data.sendMsg;[代码][代码] [代码][代码]sendMsg.push([代码][代码]this[代码][代码].data.msg);[代码][代码] [代码][代码]this[代码][代码].setData({sendMsg:sendMsg});[代码][代码] [代码][代码]var[代码] [代码]page=[代码][代码]this[代码][代码];[代码][代码] [代码][代码]wx.onSocketMessage([代码][代码]function[代码][代码](res){[代码][代码] [代码][代码]var[代码] [代码]resData=page.data.resData;[代码][代码] [代码][代码]resData.push(res.data);[代码][代码] [代码][代码]page.setData({resData:resData});[代码][代码] [代码][代码]console.log(resData);[代码][代码] [代码][代码]console.log([代码][代码]'收到服务器内容:'[代码][代码]+res.data)[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]console.log([代码][代码]'WebSocket连接打开失败,请检查!'[代码][代码]);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码][代码] [代码][代码]closeConn:[代码][代码]function[代码][代码](e){[代码][代码] [代码][代码]wx.closeSocketClose([代码][代码]function[代码][代码](res){[代码][代码] [代码][代码]console.log([代码][代码]'WebSocket已关闭!'[代码][代码])[代码][代码] [代码][代码]});[代码][代码] [代码][代码]},[代码][代码] [代码][代码]getMsg:[代码][代码]function[代码][代码](e){[代码][代码] [代码][代码]var[代码] [代码]page=[代码][代码]this[代码][代码];[代码][代码] [代码][代码]page.setData({msg:e.detail.value});[代码][代码] [代码][代码]}[代码][代码]})[代码]显示界面如下 [图片] 报错如下: [图片] 用JAVA代码互操作可以实现相互通信: [图片] java服务器代码如下: [代码]import[代码] [代码]java.io.*;[代码][代码]import[代码] [代码]java.net.*;[代码][代码]public[代码] [代码]class[代码] [代码]Example06[代码][代码]{[代码][代码] [代码][代码]public[代码] [代码]static[代码] [代码]void[代码] [代码]main(String[] args)[代码][代码]throws[代码] [代码]Exception[代码][代码] [代码][代码]{[代码][代码] [代码][代码]new[代码] [代码]TCPServer().listen();[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]class[代码] [代码]TCPServer[代码][代码]{[代码][代码] [代码][代码]private[代码] [代码]static[代码] [代码]final[代码] [代码]int[代码] [代码]PORT=[代码][代码]7788[代码][代码];[代码][代码]//定义一个静态常量作为端口号[代码][代码] [代码][代码]public[代码] [代码]void[代码] [代码]listen()[代码][代码]throws[代码] [代码]Exception[代码][代码] [代码][代码]{[代码][代码] [代码][代码]//创建ServerSocket对象,监听指定的端口[代码][代码] [代码][代码]ServerSocket serverSocket=[代码][代码]new[代码] [代码]ServerSocket(PORT);[代码][代码] [代码][代码]//使用while循环不停的接收客户端发送的请求[代码][代码] [代码][代码]while[代码][代码]([代码][代码]true[代码][代码])[代码][代码] [代码][代码]{[代码][代码] [代码][代码]//调用ServerSocket的accept()方法与客户端建立连接[代码][代码] [代码][代码]final[代码] [代码]Socket client=serverSocket.accept();[代码][代码] [代码][代码]//下面的代码用来开启一个新的线程[代码][代码] [代码][代码]new[代码] [代码]Thread()[代码][代码] [代码][代码]{[代码][代码] [代码][代码]public[代码] [代码]void[代码] [代码]run()[代码][代码] [代码][代码]{[代码][代码] [代码][代码]OutputStream os;[代码][代码]//定义一个输出流对象[代码][代码] [代码][代码]try[代码][代码] [代码][代码]{[代码][代码] [代码][代码]os=client.getOutputStream();[代码][代码]//获取客户端的输出流[代码][代码] [代码][代码]System.out.println([代码][代码]"开始与客户端交互数据"[代码][代码]);[代码][代码] [代码][代码]os.write(([代码][代码]"传智播客欢迎你!"[代码][代码]).getBytes());[代码][代码] [代码][代码]Thread.sleep([代码][代码]5000[代码][代码]);[代码][代码]//使线程休眠5000毫秒[代码][代码] [代码][代码]System.out.println([代码][代码]"结束与客户端的交互数据"[代码][代码]);[代码][代码] [代码][代码]os.close();[代码][代码]//关闭输出流[代码][代码] [代码][代码]client.close();[代码][代码]//关闭Socket对象[代码][代码] [代码][代码]}[代码][代码] [代码][代码]catch[代码] [代码](Exception e)[代码][代码] [代码][代码]{[代码][代码] [代码][代码]e.printStackTrace();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}.start();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]}[代码]java客户端代码如下: [代码]import[代码] [代码]java.io.*;[代码][代码]import[代码] [代码]java.net.*;[代码][代码]public[代码] [代码]class[代码] [代码]Example05[代码][代码]{[代码][代码] [代码][代码]public[代码] [代码]static[代码] [代码]void[代码] [代码]main(String[] args)[代码][代码]throws[代码] [代码]Exception[代码][代码] [代码][代码]{[代码][代码] [代码][代码]new[代码] [代码]TCPClient().connect();[代码][代码]//创建TCPClient对象,并调用connect()方法[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]//TCP客户端[代码][代码]class[代码] [代码]TCPClient[代码][代码]{[代码][代码] [代码][代码]private[代码] [代码]static[代码] [代码]final[代码] [代码]int[代码] [代码]PORT=[代码][代码]7788[代码][代码];[代码][代码]//服务端的端口号[代码][代码] [代码][代码]public[代码] [代码]void[代码] [代码]connect()[代码][代码]throws[代码] [代码]Exception[代码][代码] [代码][代码]{[代码][代码] [代码][代码]//创建一个Socket并连接到给出地址和端口号的计算机[代码][代码] [代码][代码]Socket client=[代码][代码]new[代码] [代码]Socket([代码][代码]"192.168.31.233"[代码][代码],PORT);[代码][代码] [代码][代码]InputStream is=client.getInputStream(); [代码][代码]//得到接收数据的流[代码][代码] [代码][代码]byte[代码][代码][] buf=[代码][代码]new[代码] [代码]byte[代码][代码][[代码][代码]1024[代码][代码]];[代码][代码]//定义1024个字节数组的缓冲区[代码][代码] [代码][代码]int[代码] [代码]len=is.read(buf);[代码][代码]//将数据读到缓冲区[代码][代码] [代码][代码]System.out.println([代码][代码]new[代码] [代码]String(buf,[代码][代码]0[代码][代码],len));[代码][代码]//将缓冲区的数据输出[代码][代码] [代码][代码]OutputStream os=client.getOutputStream();[代码][代码] [代码][代码]os.write(([代码][代码]"客户端发送消息给服务器"[代码][代码]).getBytes());[代码][代码] [代码][代码]os.close();[代码][代码] [代码][代码]is.close();[代码][代码] [代码][代码]client.close();[代码][代码]//关闭Socket对象,释放资源[代码][代码] [代码][代码]}[代码][代码]}[代码]请问各位,为什么java之间可以正常通信,微信无法连接上呢?
2018-12-12希望尽快加吧,不然现在测试环境和生产环境的一些接口要混着用,瑟瑟发抖的开发小程序
强烈要求官方给一个区分开发、体验、生产环境的API- 需求的场景描述 当我们的小程序连接线上后端API去测试的时候,我们可能会产生一些体验版formid。 当服务端下发消息通知后,因我们formid为体验版,所以点击消息模板打开的是体验版,而不是线上版本 。 - 希望提供的能力 提供一个区分开发、体验、生产环境的API,这样我们就可以在体验环境的时候,不把formid上传到服务器,而正式环境的时候再上传。 希望官方考虑下,开发者们表示非常感谢。
2018-09-25小游戏暂时不支持模板消息推送,也无法生成formId,form组件只是针对小程序的,小游戏木有form组件的。 可关注一下问题的官方后续回复。https://developers.weixin.qq.com/community/develop/doc/00046c49260970a79e8607d2f51c00?highLine=%25E5%25B0%258F%25E6%25B8%25B8%25E6%2588%258F%25E6%25A8%25A1%25E6%259D%25BF%25E6%25B6%2588%25E6%2581%25AF
微信小游戏中如何获取form_id?微信小游戏中要用到推送模板,获取form_id,请问这个form_id应该如何获取?
2018-09-25