【小程序】接口请求异常pending记录

作者描述了一次在小程序中遇到的网络切换导致wx.login接口异常pending的问题,常规流程正常但在网络断开后重连时出现问题。通过排查发现频繁刷新token是触发异常的原因,调整为常规存储机制后问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我一直以为, 现在很难遇到什么奇怪的情况了(但从小程序这块来说)。

没曾想,今天又让我遇见一回。

tips:真的是翻来覆去的看,一直到问题解决,还是不太清楚异常的原因。

场景是这样的,最近在做活动,流量可能比较大,然后就在检查相关功能页面的性能,突然发现小程序如果网络切换的时候重新进的话(比如开飞行再切回4G), network里请求的接口就会pending住。

一开始以为是接口问题, 但是后端查了一下日志,发现什么都没有进去

再去看了一下别的小程序,随便看了几个,都没有这样的情况

整个人当时直接是就慌掉了。

又是断点又是真机找了半天原因, 发现了一个奇怪的地方

先讲一下我们的机制, 就很常规的,用户进来要先拿wx.login的code从我们自己的login接口里换用户信息什么的,拿到了之后别的接口才会调。

那个异常就是发生在上面👆划线的过程中

如果是常规进入的话,无论场景是什么, 整个取数据的流程都没有问题

唯独是断网再重连的情况下 在wx.login回调里的接口就会卡住(几番尝试发现和接口自身没有任何关系,换了很多不同的接口,包括域名/协议,最后甚至拿百度搜索引擎里随便拿个接口都一样会pending)

翻来覆去改代码发现就是这里的问题

看到这我感觉这可能是开发者解决不了的异常了, 可能是wx.login在弱网状态下和微信那边的通信触发了什么诡异的东西。

那么为什么别的小程序复现不出来这个问题呢?

想了差不多半个小时,我发现了一个不正常的地方。

常规的登录流程是不会每次打开小程序都去刷wx.login的 一般是把token之类的存到storage里, 在请求里封装token过期的刷新处理。

然后现在这个小程序是每次进来都会重新刷一遍token,

我把机制改成上面常规的之后,这个问题就没有了。

所以到底还是没有查粗来具体问题是什么。 ---- 先这样,能跑就行。

### 关于微信小程序点餐系统流程图设计 微信小程序点餐系统的流程图设计对于理解其工作原理至关重要。这类系统通常涉及多个交互环节,从用户下单到订单处理直至最终完成交易。 #### 用户操作流程 用户进入小程序后,可以通过浏览菜单选择菜品并加入购物车。确认所选商品无误后提交订单,在此过程中需填写必要的配送信息或堂食座位号等细节[^1]。 ```mermaid graph TD; A[开始] --> B(打开小程序); B --> C{是否有优惠活动}; C -- 是 --> D(显示优惠页面); C -- 否 --> E(正常显示菜单); D --> F(选择菜品); E --> F; F --> G(加入购物车); G --> H(查看购物车详情); H --> I{确认订单}; I -- 是 --> J(输入联系方式/地址); I -- 否 --> K(继续选购); J --> L(支付成功); K --> M(返回首页); ``` #### 订单处理流程 后台接收到用户的订单请求之后会进行一系列验证操作,比如库存检查、价格核算等。一旦所有条件满足,则正式创建订单记录,并通知厨房准备食物或者安排外卖派送服务[^2]。 ```mermaid graph TD; A[接收订单] --> B(校验参数合法性); B --> C{是否存在异常情况}; C -- 存在 --> D(反馈错误信息给客户端); C -- 不存在 --> E(查询库存状态); E --> F{库存充足?}; F -- 不足 --> G(提示缺货,建议替换选项); F -- 足够 --> H(计算总价); H --> I(保存至数据库); I --> J(发送消息给厨师/骑手); ``` #### 数据库交互逻辑 在整个业务流程里,MySQL作为关系型数据库被用来存储各类静态资源(如菜品图片)、动态数据(像每日特价菜)以及事务性记录(例如历史订单)。每次当有新的动作发生时都会触发相应的SQL语句执行更新操作,确保前后端之间保持同步一致的状态[^3]。 ```sql -- 插入新订单示例 INSERT INTO orders (user_id, total_price, status) VALUES (:userId, :totalPrice, 'pending'); -- 更新特定订单状态为已完成 UPDATE orders SET status='completed' WHERE id=:orderId AND status='processing'; ``` #### 安全机制考量 考虑到信息安全的重要性,特别是在涉及到个人隐私保护方面,必须采取严格的安全措施来保障通信链路加密传输和个人敏感资料妥善保管。这不仅限于HTTPS协议的应用,还包括但不限于API接口鉴权认证机制的设计实施[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

97pra

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值