- 发送图文消息,用户接收的时间为什么有3-5秒的延迟?
我们微信小程序的消息推送模块里,对用户进入客服窗口后发送消息,会推送一条介绍内容的图文消息。从技术那边的日志来看,在调用了发送图文消息接口并返回 成功后,用户在3-4秒后才会收到消息。我们对比了别人的应用小程序,这个间隔都是1秒内,为什么我们的会慢这么多。发送图文消息的接口,我们使用的是: https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESSTOKEN 发送消息参考的文档,选择的是: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/kf-mgnt/kf-message/sendCustomMessage.html 这里面的耗时,有可能体现在两点: 用户发送消息,到消息通过微信官方推送,到达我们的服务器,经过了很长时间。用户消息进来以后,发送图文消息,到用户触达很慢, 请问,这个怎么排查,有没有思路。
2023-07-27 - 小游戏数据助手,在2021年12月27日上午1点-3点,实时在线人数掉到0的问题
你好,我们的小程序数据助手显示,今天有实时在线掉0的情况。 经过了一番链路追踪后,各个环节都显示没问题。 排查了服务错误日志。查阅了我们自己的实时在线统计。查阅了元事件数据 (1分钟间隔采样)查阅了mq qps查阅了db sql执行 各个环节,均正常输出。 所以,想来问一问,小游戏数据助手里的实时在线,在今天早上1-3点。 是否存在官方的采样节点异常 (包括 采样服务重启,采样流程出错等)用户openid的实时在线长连接服务是否异常 (包括 长连接服务重启,架构调整等) 以下是问题截图, 实时访问人数存在掉0的情况 [图片]
2021-12-27 - 一个appid,能不能支持按照区服获取独立的accesstoken?
为了提高用户体验,我们的微信小游戏/小程序,在架构上,分了【西北区】【江西区】等。区与区之间,服务隔离,数据也是隔离的。 区很多,但是应用其实是同一个,因为具备完全一致的开发环境,服务版本,架构上下文,所以在申请时,其实是公用了appid。 那么问题来了,西北区应用服务,和江西区等各个区,因为公用了appid,导致会抢accesstoken。新刷的会将旧的顶掉。 所以,获取accesstoken的方式,官方可不可以支持增加一个区维度。 accesstoken = appid + area PS: 之所以会抢占,是因为这个服务,在不同的区里,数据和服务是隔离的,无互通情况。所以西北区是无法在服务层次上,去和其他区,幂等住。 想了一下,是否需要每个区,申请一个独立的appid。这个操作有点蠢。
2021-11-01 - 消息推送,收不到了消息了
appid: wx9a07c5856f3999e1 描述: 已开启消息推送,后台配置很久没有动过 我们用来接收消息的接口服务,也很久没有更新过,今天这个平台忽然收不到消息了。 经历了以下排错: 确认消息推送无人动过,登录微信后台,推送配置已本月未动。(发现故障后,我重新关闭开启了消息推送功能,未恢复)进入我们接受消息的服务器,接口入口,没有打印该平台的任何消息。进入微信后台,官方的客服网页版。我发送的消息,也没有显示在未接待列表里。进入微信后台,删除所有接待客服,只留下我自己一个,然后继续让别人发消息。仍然收不到。 emmmm,迷茫
2020-11-19 - 小游戏客服回复怎么发图片,如何获取media_id?
谢谢
2020-06-10 - 小程序客服消息推送,如何同时推送到服务器后台和微信公众号后台客服?
目前以下可以走通: 推送到服务器推送到服务器,并推到微信公众号后台。但是有一个问题,如果用户正在被后台客服接入,消息就走不到服务器了。 有办法保证消息一定会进入服务器吗? 业务场景是: 当用户在小程序客服,回复“金币”时,将在小程序里,给玩家赠送金币道具。部分玩家因为在回复金币时,接入了微信后台的客服,导致消息进不来服务器,导致无法赠送成功。
2020-03-09 - 服务端进行sessionkey校验时,部分用户返回签名非法
文档是以下: https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/login/auth.checkSessionKey.html 该接口获取signature的说明,真的是驴唇不对马嘴,我去网上搜的别人获取签名的方式,用的下面的方法。 func hmacHs256(message string, secret string) string { h := hmac.New(sha256.New, []byte(secret)) io.WriteString(h, message) return fmt.Sprintf("%x", h.Sum(nil)) } 该方法对大部分用户都可用,正常。但是经常会蹦出一些签名非法的用户,以下就是其中一个。 87009 invalid signature var openId = "oZKx35BPtZm_ANPLuqvjAVW7rQNo" var sessionKey = "1xLmVHJo4S1yxK7JayHDcA==" var accessToken = "30_uaVqxUD0gQr2dltg2S8-xnTysPe2d1Fu697y5rAMnyv9jaksw1-ub2xmySGSFscuf6dLH9d8zoZNOZSNXX5MGh5ERVNds8pwfQOgO5zCXhJjia2ARJnSbPIgTz8dVFinZG4wL47sRugNadyQFKUfAJAZEO" signature := hmacHs256("", sessionKey) 完整代码: func CheckSessionKey(cli *http.Client, openId, accessToken, sessionKey string) (bool, error) { if cli == nil { cli = c } signature := hmacHs256("", sessionKey) fmt.Println(signature) var result = struct { Errcode int `json:"errcode"` Errmsg string `json:"errmsg"` }{} req, e := http.NewRequest("GET", fmt.Sprintf("https://api.weixin.qq.com/wxa/checksession?access_token=%s&signature=%s&openid=%s&sig_method=hmac_sha256", accessToken, signature, openId), nil) if e != nil { return false, errorx.Wrap(e) } rsp, e := cli.Do(req) if e != nil { return false, errorx.Wrap(e) } if rsp != nil && rsp.Body != nil { defer rsp.Body.Close() } buf, e := ioutil.ReadAll(rsp.Body) if e != nil { return false, errorx.Wrap(e) } e = json.Unmarshal(buf, &result) if e != nil { return false, errorx.Wrap(e) } // 正常 if result.Errcode == 0 && result.Errmsg == "ok" { return true, nil } // 非法 if result.Errcode == 87009 || result.Errcode == 87007 || result.Errmsg == "invalid signature" { fmt.Println(result.Errcode, result.Errmsg) return false, fmt.Errorf("sessionKey expired") } return false, errorx.NewFromStringf("got errcode '%d', errmsg '%s'", result.Errcode, result.Errmsg) }
2020-02-18 - 想将小游戏的测试版,打包发布成web程序,部署在服务器上,有办法吗?
小游戏可以发布在本地,通过web http://localhost:8080/app 访问,也就是说,它理论上也能部署到服务器上。 想要将小游戏的不同版本,打包构建部署在服务器上,方便调试,怎么操作呀。 因为好像和普通的前端dist不太一样,本地打包后里面的内容分布大概是这样: [图片]
2020-01-20 - 想将小游戏的测试版,打包发布成web程序,部署在服务器上,有办法吗?
小游戏可以发布在本地,通过web http://localhost:8080/app 访问,也就是说,它理论上也能部署到服务器上。 想要将小游戏的不同版本,打包构建部署在服务器上,方便调试,怎么操作呀。 因为好像和普通的前端dist不太一样,本地打包后里面的内容分布大概是这样: [图片]
2020-01-20 - 小游戏虚拟支付沙箱环境,10倍钻石未到账
不好意思,找不到虚拟支付标签了,就在这里提出我的问题了 没有测试其他app_id,目前出现问题的app_id是wx160cff2b699d92fe 我们在沙箱进行充值时,充了1块钱,但是沙箱的钻石余额并没有返回到账的10钻石, 下面是后台订单参数: 交易单号: 4200000393201909251669904789 商户单号: AQAA8ITGs7aQCxMJDdxci-X_tv0F 用户ID(open_id): o3FyL5eHDVJwPjkbB68tpGbsOrwU 时间:2019/9/25 下午4:32:45 订单状态:支付成功
2019-09-25