MTN DEP PHP取消订阅功能报错404 求正确删除订阅实现方法
问题根因与修复方案
从返回的错误日志可以看出,实际发起的DELETE请求地址为https://api.dep.mtn.co.za/subscription/,并未携带你拼接的订阅ID,这是触发404路由匹配错误的直接原因,可按以下步骤排查修复:
- 第一步:校验
$subscription_id变量是否存在有效值,若该变量为空、未初始化或者赋值异常,会直接导致路径拼接后缺失ID段,和服务端要求的/subscription/{订阅ID}路由规则不匹配。 - 第二步:调整路径拼接逻辑,避免多余的尾斜杠干扰路由匹配,部分接口对路由末尾是否带斜杠的校验规则严格,可以对订阅ID做去空格处理。
- 第三步:优化请求参数,DELETE请求通常不需要传递请求体,你当前传入的空数组
$requestBody可能会触发部分服务端的参数校验异常,可以将该参数改为null。
修改后可运行的参考代码如下:
// 确保$subscription_id已被正确赋值为有效订阅ID $path = '/subscription/' . trim($subscription_id); $depClient = new MTNDEP\DEPClient($accessKey, $accessSecret, $apiKey, $baseUrl); $response = $depClient->createRequest(MTNDEP\DEPClient::DELETE, $path, null, null)->send(); $responseArray = json_decode((string) $response->getBody(), true);
如果以上调整后还是报错,可确认MTN DEP开放平台的接口文档中取消订阅的路由规则,部分版本的接口删除订阅的路由可能为/subscriptions/{订阅ID}(复数形式),可对应修改路径前缀测试。
内容的提问来源于stack exchange,提问作者Chinmay235
相关产品推荐
相关产品推荐

