网易首页 > 网易号 > 正文 申请入驻

M-Pesa沙盒埋了3年雷:支付成功却返回失败,开发者集体踩坑

0
分享至


上周跑对账脚本时,3笔交易全部撞墙——2笔明明扣款成功、回调确认、收据入库,STK查询接口却一口咬定"失败"。这不是代码bug,是非洲最大支付平台沙盒环境的系统性撒谎。

数据不会说谎,但接口会

开发者Chris在Daraja沙盒跑 reconciliation(对账)时,抓到了一组荒诞的返回:checkoutRequestId 尾号 29173 和 29173 的两笔交易,数据库存着 SUCCESS 状态和收据编号 UCQ5UAQ403、UCQ5UAPYRY,测试账户也确实扣了款。STK 回调当时给的 ResultCode 是 0——M-Pesa 的官方成功信号。

同一套系统,同一个 transaction ID,STK Query API 的回应却是 FAILED。

他翻遍 Stack Overflow、Safaricom 的 GitHub 仓库、所有社区集成方案。零记录。零讨论。零 issue。这个坑似乎从未被人公开报告过。

沙盒的回调和查询接口,根本不在读同一个数据源。

沙盒的"模拟"有多敷衍

Safaricom 文档承认过一件事:沙盒无法完整模拟 USSD 网络层。这就是第三方工具 Pesa Playground 存在的原因——开发者需要更真实的测试环境。但文档没说的是,沙盒的 STK Query 端点连"确认成功"都做不到。


它的默认策略是:只要无法明确解析交易状态,一律返回 FAILED。不管回调已经说了什么,不管钱有没有真的扣。

换句话说,沙盒查询接口的设计逻辑是"宁可错杀"——但错杀的是已经完成的支付。

Chris 写的 mpesa-stk@0.1.1 库处理得很克制:matched:0。发现查询响应和库存的 SUCCESS 冲突,选择不覆盖。那笔 orphaned(孤儿)的 PENDING 记录保持原样,而不是被强行改成 FAILED。

这个选择背后是个残酷事实:一个会覆盖 SUCCESS 的对账系统,比什么都不做的系统更危险。

生产环境会不会也这样

Chris 没跑过生产环境测试。Safaricom 文档暗示生产端的 STK Query 是准的——问题出在沙盒。但这个"暗示"本身就是问题:开发者被默许用一套撒谎的环境测试核心支付流程,然后被告知"生产应该不一样"。

非洲移动支付的基础设施里,M-Pesa 是事实标准。2.96 亿用户、年交易流水占肯尼亚 GDP 的 87%。它的开发者生态却长期被沙盒的粗糙对待——回调延迟、状态不一致、文档滞后。

这次暴露的是更底层的断裂:同一个平台内部,两个官方接口对同一笔交易给出矛盾结论。回调说成功,查询说失败。开发者该信谁?


Chris 的代码选择了信回调——因为那是交易发生时的第一手信号。查询是事后补录,只能用来处理那些从未收到回调的 PENDING 记录。这是防御性编程,也是对平台不信任的投票。

给你的对账系统两条铁律

第一,永远不要仅凭查询响应覆盖终态记录。 SUCCESS 或确认过的 FAILED 都是终态,查询只能动 PENDING。回调的权威性高于查询,这是架构设计问题,不是偏好问题。

第二,别在沙盒里测对账逻辑。 它的 STK Query 不是可靠的测试面。要么上生产环境测,要么接受沙盒这条路径的结果是噪音。

有开发者在这条 issue 下留言:"我们去年就被这个坑过,当时以为是自己的代码问题,重写三遍。"另一条回复更扎心:"生产环境确实没这问题——但发现这一点之前,我们已经浪费了两个月。"

平台方的沉默正在制造重复劳动。一个未被文档化的沙盒行为,让无数开发者陷入自我怀疑。

Chris 最后抛了个问题:有人在生产环境跑过 reconciliation 吗?STK Query 在那边真的可靠吗?

评论区至今没人给出确凿答案。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
历史欠的债2025年开始还了!新生儿跌破800万,未来我们怎么养老

历史欠的债2025年开始还了!新生儿跌破800万,未来我们怎么养老

呼呼历史论
2026-03-29 13:54:52
白酒再次被关注!医生研究发现:喝得越多,寿命或越短告诉你真相

白酒再次被关注!医生研究发现:喝得越多,寿命或越短告诉你真相

健康科普365
2026-03-29 18:30:09
善恶有报,移居英国仅2年,57岁吴秀波再迎噩耗,步入李易峰后尘

善恶有报,移居英国仅2年,57岁吴秀波再迎噩耗,步入李易峰后尘

有范又有料
2025-12-17 14:54:06
乒乓世界杯31日战报:张本智和3-1胜,国乒8连胜

乒乓世界杯31日战报:张本智和3-1胜,国乒8连胜

阿衃体育
2026-03-31 12:18:35
哈登“喂饼”莫布利吃撑!骑士主帅盛赞:有他在内线太舒服

哈登“喂饼”莫布利吃撑!骑士主帅盛赞:有他在内线太舒服

鸿锦篮球
2026-03-31 14:42:34
郑裕彤当年在恒大身上赚了多少钱?

郑裕彤当年在恒大身上赚了多少钱?

担扑
2026-03-29 14:45:27
比赖清德更狂的人出现了,只要她当上台湾领导人,解放军必定收台

比赖清德更狂的人出现了,只要她当上台湾领导人,解放军必定收台

共工之锚
2026-03-29 18:26:19
鲁比奥撒下弥天大谎,话音刚落,中国巨轮抵达古巴,最强防线成型

鲁比奥撒下弥天大谎,话音刚落,中国巨轮抵达古巴,最强防线成型

书纪文谭
2026-03-31 16:10:19
詹姆斯刷新最老三双纪录 胜场数追平贾巴尔并列第一

詹姆斯刷新最老三双纪录 胜场数追平贾巴尔并列第一

极目新闻
2026-03-31 16:38:09
中国游客到朝鲜游玩,朝鲜人充满疑问:为什么中国人是这样的?

中国游客到朝鲜游玩,朝鲜人充满疑问:为什么中国人是这样的?

蜉蝣说
2026-03-28 18:26:48
张雪机车夺冠带疯门店!4.3万起820RR同款预定排队两个月 驾龄不满一年不予销售

张雪机车夺冠带疯门店!4.3万起820RR同款预定排队两个月 驾龄不满一年不予销售

快科技
2026-03-31 14:26:42
广州暴雨:高架桥秒变"高架河",司机吐槽"开车如开船"

广州暴雨:高架桥秒变"高架河",司机吐槽"开车如开船"

大道微言
2026-03-31 08:20:47
男性长期禁欲,精子只产不排,最后会怎样?医生:或有4大后果

男性长期禁欲,精子只产不排,最后会怎样?医生:或有4大后果

健康之光
2026-03-06 13:11:59
祖孙遭混凝土车碾压 肇事方不赔偿还搞小动作

祖孙遭混凝土车碾压 肇事方不赔偿还搞小动作

看看新闻Knews
2026-03-31 16:23:49
1992 年,叶利钦将苏联最后的核心军事遗产交付中国

1992 年,叶利钦将苏联最后的核心军事遗产交付中国

磊子讲史
2026-03-30 17:06:41
美国安插在中国多年的间谍头子,居然是人人都想送锦旗的大善人。

美国安插在中国多年的间谍头子,居然是人人都想送锦旗的大善人。

阿七说史
2026-03-26 15:52:30
美军集结地遭袭击伤亡惨重!美媒:美国军力遭受二战后最严重削弱

美军集结地遭袭击伤亡惨重!美媒:美国军力遭受二战后最严重削弱

影孖看世界
2026-03-28 22:40:15
高层公开表达不满,利益冲突难以调和,两场冲突正撕裂欧美同盟

高层公开表达不满,利益冲突难以调和,两场冲突正撕裂欧美同盟

环球网资讯
2026-03-31 06:41:08
油价4月7日要下调!加满一箱能省多少钱,车主提前看

油价4月7日要下调!加满一箱能省多少钱,车主提前看

沙雕小琳琳
2026-03-31 09:20:49
苹果iOS26.5发布,电池史诗级提升,信号很强,建议升级

苹果iOS26.5发布,电池史诗级提升,信号很强,建议升级

库克啥都聊
2026-03-31 09:39:34
2026-03-31 17:23:00
灰度测试中
灰度测试中
生活正在重构,目前还在灰度测试阶段,暂不全量发布。
535文章数 3关注度
往期回顾 全部

科技要闻

尚未正式宣发,国行苹果AI半夜"意外闪现"

头条要闻

上海独身女子过世留600万遗产 法院宣判决定遗产归属

头条要闻

上海独身女子过世留600万遗产 法院宣判决定遗产归属

体育要闻

县城修车工,用20年成为世界冠军

娱乐要闻

丝芭传媒举报鞠婧祎:瞒报收入竟达85%

财经要闻

高薪内推藏陷阱!"招转培"骗局盯上求职者

汽车要闻

16万级最强2.0T 全新一代瑞虎9来了

态度原创

亲子
本地
手机
时尚
公开课

亲子要闻

过敏是因为免疫力差吗?儿童过敏能长大自愈?3月科学流言榜解答

本地新闻

用Color Walk的方式解锁城市春日

手机要闻

华为鸿蒙Harmony 6.0.0.328版本最新适配进度公布

妈妈们的人生,不该只有一个选项

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版