贴一下PHP后端相关代码: <?php namespace app\index\controller; use think\Controller; use think\Request; use weixinwork\WXBizMsgCrypt; /** * 微信接口类 */ class Weixin extends Common{ public function _initialize(){ parent::_initialize(); } /** * 企业微信客服:接收消息和事件 */ public function msg(){ //1.验证URL //$this->verifyURL($_GET);exit; //2.接收用户发送的消息 $xmldata=file_get_contents("php://input"); $this->receiveMsg($_GET,$xmldata); } /** * 企业微信客服:验证链接 */ public function verifyURL($data){ $token = config("weixin.token"); $encodingAesKey = config("weixin.encodingAesKey"); $corpId = config("weixin.corpid"); //接收GET参数 $sReqMsgSig = $data['msg_signature']; $sReqTimeStamp = $data['timestamp']; $sReqNonce = $data['nonce']; $sVerifyEchoStr = $data['echostr']; $sEchoStr = ""; $wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId); $errCode = $wxcpt->VerifyURL($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sVerifyEchoStr, $sEchoStr); if ($errCode == 0) { //原样返回明文消息内容 echo $sEchoStr; } } /** * 企业微信客服:接收消息 */ public function receiveMsg($data,$xmldata){ $token = config("weixin.token"); $encodingAesKey = config("weixin.encodingAesKey"); $corpId = config("weixin.corpid"); //接收GET参数 $sReqMsgSig = $data['msg_signature']; $sReqTimeStamp = $data['timestamp']; $sReqNonce = $data['nonce']; try { $sMsg = ''; //解密后的明文内容 $wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId); //检验消息的真实性,并且获取解密后的明文 $errCode = $wxcpt->DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $xmldata,$sMsg); if ($errCode == 0 && !empty($sMsg)) { $xml = simplexml_load_string($sMsg, 'SimpleXMLElement', LIBXML_NOCDATA); $array = json_encode($xml); $array = json_decode($array,true); //读取消息内容 $Token = $array["Token"]; $OpenKfId = $array["OpenKfId"]; $result = WeixinBiz::getInstance()->readMsg($Token,$OpenKfId); printLog("读取到的消息内容:".json_encode($result,JSON_UNESCAPED_UNICODE)); }else{ printLog("接收消息失败,错误码: " . $errCode); } } catch (Exception $e) { printLog("接收消息异常,Error: " . $e); } }
点击访问企业微信客服账号的链接,没有触发“用户进入会话事件”,是什么原因呢?1、我用PHP生成了微信客服账号链接,如下: https://work.weixin.qq.com/kfid/kfcb8812df7efcfd709?enc_scene=ENC3NX3fazgsBa8J3ybGyiv7qj9y5miKguXgn7TMZtqyjkWD7qvhByZfpPDcL3VSRtLMV&scene_param=202405270534308645890 访问这个链接可以打开客服会话窗口,但为什么没有触发任何事件呢? 2、自创建的应用,并且已经设置接收消息事件的服务器配置,也允许应用调用API接口,如下图: [图片] 3、给客服账号发送消息,后端是可以接收到信息的,就是打开链接时,没有触发“用户进入会话事件” [图片]
05-27我站在一名资深程序员的角度帮你们分析这个问题产生的原因: 这是一个很大的bug漏洞,主要原因在于腾讯程序员写的算法太过死板。算法大概是这样的: 1、先统计您的微信支付商户前几天的支付订单数量,腾讯程序员的算法使用了group by,因此同一个人支付1万笔,也只能算为一笔; 2、比如算法计算出您的商户前三天,每天交易量都是大于10笔,第四天却少于10,就会判定为“涉嫌实时交易异常”; 我就想问问腾讯的程序员,你们的钱都是大风刮来的吗?钱真有这么好赚,大家天天进账几百万吗? 能不能有点脑子,能不能先判断商户性质,小微经济商户的收入又不是固定的,微信支付一大堆问题,你们解决了吗?拿着和阿里巴巴程序员 一样的工资,却整天摸鱼不写代码,人家支付宝有沙箱测试环境,你们微信支付有吗?别人的接口回调参数都改为比较方便的json,你们依然还在用xml,你们有啥骄傲的。
涉嫌实时交易异常是怎么回事?商户号:1516029501 一直运营的好好的,突然这样,客户报名线上课程,一下损失12000多,客户以为我们有问题,就取消报名了。 后台也不表明是什么原因,可以申请补偿损失?我们一个投诉都没。过不过分? [图片] 这个问题能怎么才不发生了?一下损失12000多,你们大公司不在乎,我一个小公司少这么一笔连工资都发不起!
2022-09-04问题我自己解决了,说一下具体原因和解决方法,给大家一些经验: 1、首先,我腾讯地图用的是别人的key,然后刚才我去腾讯位置服务平台看了一些,这个key是要绑定具体的小程序AppID的,所以千万不要直接使用别人key; [图片] 2、其次,我微信小程序服务器域名没有添加腾讯地图的接口域名,需要在request合法域名里添加https://apis.map.qq.com,如下图: [图片]
使用腾讯地图wx.chooseLocation接口选择地址,开发和体验版都正常,发布上线就报错?[图片] 1、如上图所描述,在微信开发者工具和体验版本上,都可以正确获取到地址,唯独发布上线版本选择不了地址,报错信息如下: MiniProgramError result is not defined ReferenceError: result is not defined at e.fail (https://usr/app-service.js:11299:1870) at https://lib/WASubContext.js:2:101623 at https://lib/WASubContext.js:2:101776 2、贴出具体代码,有微信小程序的技术员能帮找一下具体原因吗,万分感谢! chose_location: function() { var that = this; wx.chooseLocation({ success: function(e) { console.log("选中的地址:"+e.address); var lon_lat = e.longitude + ',' + e.latitude; var path = e.address; var s_region = that.data.region; var dol_path = ''; var str = path; var patt = new RegExp("(.*?省)(.*?市)(.*?区)", "g"); var result = patt.exec(str); if (result == null) { patt = new RegExp("(.*?省)(.*?市)(.*?市)", "g"); result = patt.exec(str); if (result == null) { patt = new RegExp("(.*?省)(.*?市)(.*县)", "g"); result = patt.exec(str); if (result != null) { s_region[0] = result[1]; s_region[1] = result[2]; s_region[2] = result[3]; dol_path = path.replace(result[0], ''); } } else { s_region[0] = result[1]; s_region[1] = result[2]; s_region[2] = result[3]; dol_path = path.replace(result[0], ''); } } else { s_region[0] = result[1]; s_region[1] = result[2]; s_region[2] = result[3]; dol_path = path.replace(result[0], ''); } var filename = dol_path + e.name; let addr_detail = filename; let address_component = ''; locat.getGpsLocation(e.latitude, e.longitude).then((res) => { address_component = res; if (address_component) { s_region[0] = address_component.province; s_region[1] = address_component.city; s_region[2] = address_component.district; addr_detail = filename || address_component.street; } that.setData({ region: s_region, lon_lat: lon_lat, addr_detail }) }); if (s_region[0] == '省') { wx.showToast({ title: '请重新选择省市区', icon: 'none', }) } }, fail: function(e) { wx.showToast({ title: '地址获取失败', icon: 'none', }) console.log('地址获取失败', e) } }) },
2022-05-17